1. 26 Jun, 2015 2 commits
  2. 25 Jun, 2015 1 commit
  3. 24 Jun, 2015 2 commits
  4. 23 Jun, 2015 2 commits
  5. 22 Jun, 2015 6 commits
  6. 16 Jun, 2015 2 commits
    • tests: tick the index when we count OID calculations · e44abe16
      These tests want to test that we don't recalculate entries which match
      the index already. This is however something we force when truncating
      racily-clean entries.
      
      Tick the index forward as we know that we don't perform the
      modifications which the racily-clean code is trying to avoid.
      Carlos Martín Nieto committed
    • diff: add failing test for racy-git in the index · 77596fcf
      We update the index and then immediately change the contents of the
      file. This makes the diff think there are no changes, as the timestamp
      of the file agrees with the cached data. This is however a bug, as the
      file has obviously changed contents.
      
      The test is a bit fragile, as it assumes that the index writing and the
      following modification of the file happen in the same second, but it's
      enough to show the issue.
      Carlos Martín Nieto committed
  7. 15 Jun, 2015 1 commit
  8. 12 Jun, 2015 3 commits
  9. 02 Jun, 2015 1 commit
  10. 28 May, 2015 2 commits
  11. 01 May, 2015 1 commit
  12. 04 Mar, 2015 1 commit
  13. 03 Mar, 2015 2 commits
  14. 14 Jan, 2015 1 commit
  15. 23 Nov, 2014 1 commit
  16. 07 Nov, 2014 1 commit
    • iterator: submodules are determined by an index or tree · 62a617dc
      We cannot know from looking at .gitmodules whether a directory is a
      submodule or not. We need the index or tree we are comparing against to
      tell us. Otherwise we have to assume the entry in .gitmodules is stale
      or otherwise invalid.
      
      Thus we pass the index of the repository into the workdir iterator, even
      if we do not want to compare against it. This follows what git does,
      which even for `git diff <tree>`, it will consider staged submodules as
      such.
      Carlos Martín Nieto committed
  17. 01 Jul, 2014 1 commit
  18. 27 May, 2014 1 commit
  19. 16 May, 2014 1 commit
  20. 12 May, 2014 1 commit
  21. 06 May, 2014 1 commit
    • Improve checks for ignore containment · f554611a
      The diff code was using an "ignored_prefix" directory to track if
      a parent directory was ignored that contained untracked files
      alongside tracked files. Unfortunately, when negative ignore rules
      were used for directories inside ignored parents, the wrong rules
      were applied to untracked files inside the negatively ignored
      child directories.
      
      This commit moves the logic for ignore containment into the workdir
      iterator (which is a better place for it), so the ignored-ness of
      a directory is contained in the frame stack during traversal.  This
      allows a child directory to override with a negative ignore and yet
      still restore the ignored state of the parent when we traverse out
      of the child.
      
      Along with this, there are some problems with "directory only"
      ignore rules on container directories.  Given "a/*" and "!a/b/c/"
      (where the second rule is a directory rule but the first rule is
      just a generic prefix rule), then the directory only constraint
      was having "a/b/c/d/file" match the first rule and not the second.
      This was fixed by having ignore directory-only rules test a rule
      against the prefix of a file with LEADINGDIR enabled.
      
      Lastly, spot checks for ignores using `git_ignore_path_is_ignored`
      were tested from the top directory down to the bottom to deal with
      the containment problem, but this is wrong. We have to test bottom
      to top so that negative subdirectory rules will be checked before
      parent ignore rules.
      
      This does change the behavior of some existing tests, but it seems
      only to bring us more in line with core Git, so I think those
      changes are acceptable.
      Russell Belfer committed
  22. 02 May, 2014 6 commits