1. 21 Jun, 2013 5 commits
    • Loosen ensure_not_bare rules in checkout · 6a15e8d2
      With the new target directory option to checkout, the non-bareness
      of the repository should be checked much later in the parameter
      validation process - actually that check was already in place, but
      I was doing it redundantly in the checkout APIs.
      
      This removes the now unnecessary early check for bare repos.  It
      also adds some other parameter validation and makes it so that
      implied parameters can actually be passed as NULL (i.e. if you
      pass a git_index, you don't have to pass the git_repository - we
      can get it from index).
      Russell Belfer committed
    • Add target directory to checkout · 9094ae5a
      This adds the ability for checkout to write to a target directory
      instead of having to use the working directory of the repository.
      This makes it easier to do exports of repository data and the like.
      
      This is similar to, but not quite the same as, the --prefix option
      to `git checkout-index` (this will always be treated as a directory
      name, not just as a simple text prefix).
      
      As part of this, the workdir iterator was extended to take the
      path to the working directory as a parameter and fallback on the
      git_repository_workdir result only if it's not specified.
      
      Fixes #1332
      Russell Belfer committed
    • Merge pull request #1664 from arrbee/checkout-deleted-with-fix · 00197c34
      Checkout should not recreate deleted files - with fix
      Vicent Martí committed
    • Fix checkout of modified file when missing from wd · 36fd9e30
      This fixes the checkout case when a file is modified between the
      baseline and the target and yet missing in the working directory.
      The logic for that case appears to have been wrong.
      
      This also adds a useful checkout notify callback to the checkout
      test helpers that will count notifications and also has a debug
      mode to visualize what checkout thinks that it's doing.
      Russell Belfer committed
  2. 20 Jun, 2013 7 commits
  3. 19 Jun, 2013 7 commits
    • Merge pull request #1661 from arrbee/index-add-all · 8b2fa181
      Index operations using globs
      Vicent Martí committed
    • Add tests and fix use of freed memory · 7863523a
      This adds some tests for updating the index and having it remove
      items to make sure that the iteration over the index still works
      even as earlier items are removed.
      
      In testing with valgrind, this found a path that would use the
      path string from the index entry after it had been freed.  The
      bug fix is simply to copy the path of the index entry before
      doing any actual index manipulation.
      Russell Belfer committed
    • Add index pathspec-based operations · f30fff45
      This adds three new public APIs for manipulating the index:
      
      1. `git_index_add_all` is similar to `git add -A` and will add
         files in the working directory that match a pathspec to the
         index while honoring ignores, etc.
      2. `git_index_remove_all` removes files from the index that match
         a pathspec.
      3. `git_index_update_all` updates entries in the index based on
         the current contents of the working directory, either added
         the new information or removing the entry from the index.
      Russell Belfer committed
    • Add fn to check pathspec for ignored files · 85b8b18b
      Command line Git sometimes generates an error message if given a
      pathspec that contains an exact match to an ignored file (provided
      --force isn't also given).  This adds an internal function that
      makes it easy to check it that has happened.  Right now, I'm not
      creating a public API for this because that would get a little
      more complicated with a need for callbacks for all invalid paths.
      Russell Belfer committed
    • Add higher level pathspec API · e91f9a8f
      Right now, setting up a pathspec to be parsed and processed
      requires several data structures and a couple of API calls.  This
      adds a new high level data structure that contains all the items
      that you'll need and high-level APIs that do all of the setup and
      all of the teardown.  This will make it easier to use pathspecs
      in various places with less repeated code.
      Russell Belfer committed
    • Merge pull request #1660 from trast/tr/fix-zlib-configuration · 5144850c
      CMakeLists: fix zlib linker setup
      Vicent Martí committed
    • CMakeLists: fix zlib linker setup · c41281ad
      b53671ae (Search for zlib unconditional, 2012-12-18) changed things
      around to always (even on windows, that's what the subject refers to)
      call FIND_PACKAGE(ZLIB).
      
      However, it did not correctly handle the case where ZLIB_LIBRARY is
      cached, either by the user setting it manually or by an earlier
      search.  In that case, the IF(ZLIB_FOUND) would not trigger (that
      variable is not cached) and we'd instead use the built-in version.
      
      000e6896 (CMake: don't try to use bundled zlib when the system's path
      is in the cache, 2013-05-12) tried to fix that, but it actually made
      the problem worse: now with ZLIB_LIBRARY cached, _neither_ of the
      blocks would execute, resulting in a linker error for me when trying
      to build such a doubly-configured setup.
      
      To fix the issue, we just trust CMake to do the right thing.  If
      ZLIB_LIBRARY is set (either from user or cache) then the find_library
      in FindZLIB.cmake will use that instead of searching again.  So we can
      unconditionally (for real this time) call FIND_PACKAGE(ZLIB), and just
      check its result.
      Thomas Rast committed
  4. 18 Jun, 2013 6 commits
  5. 17 Jun, 2013 15 commits