1. 17 May, 2012 6 commits
    • Other optimization and warning fixes · a0d95962
      This fixes a warning left by the earlier optimization and
      addresses one of the other hotspots identified by GProf.
      Russell Belfer committed
    • Optimize away git_text_gather_stats in diff · b59c73d3
      GProf shows `git_text_gather_stats` as the most expensive call
      in large diffs.  The function calculates a lot of information
      that is not actually used and does not do so in a optimal
      order.  This introduces a tuned `git_buf_is_binary` function
      that executes the same algorithm in a fraction of the time.
      Russell Belfer committed
    • Basic setup for profiling · 706a9974
      This fixes the examples so they will build and adds a PROFILE
      option to the CMakeFile that enabled gprof info on non-Windows
      Russell Belfer committed
    • Merge pull request #706 from arrbee/fix_592_again · db756d58
      Fix status for files under ignored dirs
      Vicent Martí committed
    • Fix status for files under ignored dirs · bd4ca902
      There was a bug where tracked files inside directories that were
      inside ignored directories where not being found by status.  To
      make that a little clearer, if you have a .gitignore with:
      
          ignore/
      
      And then have the following files:
      
          ignore/dir/tracked     <-- actually a tracked file
          ignore/dir/untracked   <-- should be ignored
      
      Then we would show the tracked file as being removed (because
      when we got the to contained item "dir/" inside the ignored
      directory, we decided it was safe to skip -- bzzt, wrong!).
      
      This update is much more careful about checking that we are
      not skipping over any prefix of a tracked item, regardless of
      whether it is ignored or not.
      
      As documented in diff.c, this commit does create behavior that
      still differs from core git with regards to the handling of
      untracked files contained inside ignored directories.  With
      libgit2, those files will just not show up in status or diff.
      With core git, those files don't show up in status or diff
      either *unless* they are explicitly ignored by a .gitignore
      pattern in which case they show up as ignored files.
      
      Needless to say, this is a local behavior difference only, so
      it should not be important and (to me) the libgit2 behavior
      seems more consistent.
      Russell Belfer committed
  2. 16 May, 2012 8 commits
  3. 15 May, 2012 6 commits
  4. 14 May, 2012 17 commits
  5. 13 May, 2012 3 commits