1. 08 Sep, 2015 2 commits
    • git_index_add: allow case changing renames · a32bc85e
      On case insensitive platforms, allow `git_index_add` to provide a new
      path for an existing index entry.  Previously, we would maintain the
      case in an index entry without the ability to change it (except by
      removing an entry and re-adding it.)
      
      Higher-level functions (like `git_index_add_bypath` and
      `git_index_add_frombuffers`) continue to keep the old path for easier
      usage.
      Edward Thomson committed
    • index: canonicalize directory case when adding · 280adb3f
      On case insensitive systems, when given a user-provided path in the
      higher-level index addition functions (eg `git_index_add_bypath` /
      `git_index_add_frombuffer`), examine the index to try to match the
      given path to an existing directory.
      
      Various mechanisms can cause the on-disk representation of a folder
      to not match the representation in HEAD or the index - for example,
      a case changing rename of some file `a/file.txt` to `A/file.txt`
      will update the paths in the index, but not rename the folder on
      disk.
      
      If a user subsequently adds `a/other.txt`, then this should be stored
      in the index as `A/other.txt`.
      Edward Thomson committed
  2. 04 Sep, 2015 1 commit
  3. 14 Aug, 2015 1 commit
  4. 03 Aug, 2015 1 commit
  5. 01 Aug, 2015 2 commits
  6. 12 Jul, 2015 2 commits
  7. 30 Jun, 2015 1 commit
  8. 29 Jun, 2015 1 commit
  9. 26 Jun, 2015 1 commit
  10. 22 Jun, 2015 2 commits
  11. 19 Jun, 2015 1 commit
  12. 02 Jun, 2015 1 commit
  13. 28 May, 2015 5 commits
  14. 21 May, 2015 1 commit
  15. 14 May, 2015 1 commit
  16. 11 May, 2015 1 commit
  17. 21 Apr, 2015 1 commit
    • Fix index-adding functions to know when to trust filemodes. · d3282680
      The idea...sometimes, a filemode is user-specified via an
      explicit git_index_entry.  In this case, believe the user, always.
      
      Sometimes, it is instead built up by statting the file system.  In
      those cases, go with the existing logic we have to determine
      whether the file system supports all filemodes and symlinks, and
      make the best guess.
      
      On file systems which have full filemode and symlink support, this
      commit should make no difference.  On others (most notably Windows),
      this will fix problems things like:
      * git_index_add and git_index_add_frombuffer() should be believed.
      * As a consequence, git_checkout_tree should make the filemodes in
      the index match the ones in the tree.
      * And diffs with GIT_DIFF_UPDATE_INDEX don't write the wrong filemodes.
      * And merges, and probably other downstream stuff now fixed, too.
      
      This makes my previous changes to checkout.c unnecessary,
      so they are now reverted.
      
      Also, added a test for index_entry permissions from git_index_add
      and git_index_add_frombuffer, both of which failed before these changes.
      John Fultz committed
  18. 03 Mar, 2015 2 commits
  19. 25 Feb, 2015 1 commit
  20. 14 Feb, 2015 1 commit
  21. 18 Dec, 2014 3 commits
  22. 17 Dec, 2014 1 commit
  23. 16 Dec, 2014 1 commit
  24. 05 Dec, 2014 1 commit
  25. 27 Oct, 2014 1 commit
  26. 22 Oct, 2014 1 commit
    • tree-cache: correct the entry_count calculation · bb0757d5
      The entry_count field is the amount of index entries covered by a
      particular cache entry, that is how many files are there (recursively)
      under a particular directory.
      
      The current code that attemps to do this is severely defincient and is
      trying to count the amount of children, which always comes up to zero.
      
      We don't even need to recount, since we have the information during the
      cache creation. We can take that number and keep it, as we only ever
      invalidate or replace.
      Carlos Martín Nieto committed
  27. 10 Oct, 2014 3 commits