1. 13 Jan, 2013 1 commit
  2. 12 Jan, 2013 1 commit
  3. 05 Jan, 2013 2 commits
  4. 04 Jan, 2013 3 commits
    • Fix checkout of index-only dirs and prefixed paths · 817d6251
      There are a couple of checkout bugs fixed here.  One is with
      untracked working directory entries that are prefixes of tree
      entries but not in a meaningful way (i.e. "read" is a prefix of
      "readme.txt" but doesn't interfere in any way).  The second bug
      is actually a redo of 07edfa0fc640f85f95507c3101e77accd7d2bf0d
      where directory entries in the index that are not in the diff
      were not being removed correctly.  That fix remedied one case
      but broke another.
      Russell Belfer committed
    • More checkout improvements · 7e5c8a5b
      This flips checkout back to be driven off the changes between
      the baseline and the target trees.  This reinstates the complex
      code for tracking the contents of the working directory, but
      overall, I think the resulting logic is easier to follow.
      Russell Belfer committed
    • Rework checkout internals (again) · cf208031
      I've tried to map out the detailed behaviors of checkout and make
      sure that we're handling the various cases correctly, along with
      providing options to allow us to emulate "git checkout" and "git
      checkout-index" with the various flags.  I've thrown away flags
      in the checkout API that seemed like clutter and added some new
      ones.  Also, I've converted the conflict callback to a general
      notification callback so we can emulate "git checkout" output and
      display "dirty" files.
      
      As of this commit, the new behavior is not working 100% but some
      of that is probably baked into tests that are not testing the
      right thing.  This is a decent snapshot point, I think, along the
      way to getting the update done.
      Russell Belfer committed
  5. 01 Dec, 2012 1 commit
  6. 30 Nov, 2012 1 commit
  7. 27 Nov, 2012 1 commit
  8. 15 Nov, 2012 1 commit
    • Add explicit git_index ptr to diff and checkout · bbe6dbec
      A number of diff APIs and the `git_checkout_index` API take a
      `git_repository` object an operate on the index.  This updates
      them to take a `git_index` pointer explicitly and only fall back
      on the `git_repository` index if the index input is NULL.  This
      makes it easier to operate on a temporary index.
      Russell Belfer committed
  9. 09 Nov, 2012 2 commits
    • Rework checkout with new strategy options · ad9a921b
      This is a major reworking of checkout strategy options.  The
      checkout code is now sensitive to the contents of the HEAD tree
      and the new options allow you to update the working tree so that
      it will match the index content only when it previously matched
      the contents of the HEAD.  This allows you to, for example, to
      distinguish between removing files that are in the HEAD but not
      in the index, vs just removing all untracked files.
      
      Because of various corner cases that arise, etc., this required
      some additional capabilities in rmdir and other utility functions.
      
      This includes the beginnings of an implementation of code to read
      a partial tree into the index based on a pathspec, but that is
      not enabled because of the possibility of creating conflicting
      index entries.
      Russell Belfer committed
    • Fix checkout behavior when its hands are tied · 32def5af
      So, @nulltoken created a failing test case for checkout that
      proved to be particularly daunting.  If checkout is given only
      a very limited strategy mask (e.g. just GIT_CHECKOUT_CREATE_MISSING)
      then it is possible for typechange/rename modifications to leave it
      unable to complete the request.  That's okay, but the existing code
      did not have enough information not to generate an error (at least
      for tree/blob conflicts).
      
      This led me to a significant reorganization of the code to handle
      the failing case, but it has three benefits:
      
      1. The test case is handled correctly (I think)
      2. The new code should actually be much faster than the old code
         since I decided to make checkout aware of diff list internals.
      3. The progress value accuracy is hugely increased since I added
         a fourth pass which calculates exactly what work needs to be
         done before doing anything.
      Russell Belfer committed
  10. 25 Oct, 2012 1 commit
  11. 20 Oct, 2012 4 commits
  12. 21 Sep, 2012 1 commit
  13. 17 Sep, 2012 4 commits