Commits on Jun 24, 2013
  1. @vmg

    Merge pull request #1672 from TheRealKerni/fix/header_docs

    Fixed most documentation header bugs
    vmg committed Jun 24, 2013
  2. @vmg

    Merge pull request #1670 from arrbee/open-cloexec

    Add O_CLOEXEC to open calls
    vmg committed Jun 24, 2013
  3. @vmg

    Merge pull request #1669 from arrbee/fix-index-add-bypath

    In loose objects backend, constrain mkdir calls to avoid extra mkdirs
    vmg committed Jun 24, 2013
  4. @arrbee

    Work around reparse point stat issues

    In theory, p_stat should never return an S_ISLNK result, but due
    to the current implementation on Windows with mount points it is
    possible that it will.  For now, work around that by allowing a
    link in the path to a directory being created.  If it is really a
    problem, then the issue will be caught on the next iteration of
    the loop, but typically this will be the right thing to do.
    arrbee committed Jun 24, 2013
  5. @TheRealKerni

    Fixed most documentation header bugs

    Fixed a few header @param and @return typos with the help of -Wdocumentation in Xcode.
    The following warnings have not been fixed:
    common.h:213 - Not sure how the documentation format is for '...'
    notes.h:102 - Correct @param name but empty text
    notes.h:111 - Correct @param name but empty text
    pack.h:140 - @return missing text
    pack.h:148 - @return missing text
    TheRealKerni committed Jun 24, 2013
Commits on Jun 23, 2013
  1. @arrbee

    Add O_CLOEXEC to open calls

    arrbee committed Jun 22, 2013
  2. @arrbee

    Merge pull request #1668 from csware/WC_ERR_INVALID_CHARS

    Do not redefine WC_ERR_INVALID_CHARS
    arrbee committed Jun 22, 2013
  3. @arrbee

    Constrain mkdir calls to avoid extra mkdirs

    This updates the calls that make the subdirectories for objects
    to use a base directory above which git_futils_mkdir won't walk
    any higher.  This prevents attempts to mkdir all the way up to
    the root of the filesystem.
    Also, this moves the objects_dir into the loose backend structure
    and removes the separate allocation, plus does some preformatting
    of the objects_dir value to guarantee a trailing slash, etc.
    arrbee committed Jun 22, 2013
Commits on Jun 22, 2013
  1. @csware

    Do not redefine WC_ERR_INVALID_CHARS

    WC_ERR_INVALID_CHARS might be already defined by the Windows SDK.
    Signed-off-by: Sven Strickroth <>
    csware committed Jun 23, 2013
Commits on Jun 21, 2013
  1. @vmg

    Merge pull request #1665 from arrbee/checkout-target-directory

    Add target directory to checkout options
    vmg committed Jun 21, 2013
  2. @arrbee

    Addition checkout target directory tests

    This adds additonal tests of the checkout target directory option
    including using it to dump data from bare repos.
    arrbee committed Jun 21, 2013
  3. @arrbee

    Loosen ensure_not_bare rules in checkout

    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).
    arrbee committed Jun 21, 2013
  4. @arrbee

    Add target directory to checkout

    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
    arrbee committed Jun 21, 2013
  5. @vmg

    Merge pull request #1664 from arrbee/checkout-deleted-with-fix

    Checkout should not recreate deleted files - with fix
    vmg committed Jun 21, 2013
  6. @arrbee

    Fix checkout of modified file when missing from wd

    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.
    arrbee committed Jun 21, 2013
  7. @ethomson
Commits on Jun 20, 2013
  1. @vmg

    Merge pull request #1662 from arrbee/examples-like-git

    Command line status example (with bug fixes)
    vmg committed Jun 20, 2013
  2. @arrbee

    Add test for fixed diff bug

    Add test for bug fixed in 852ded9
    Sorry, I wrote that bug fix and forgot to check in a test at the
    same time.  Here is one that fails on the old version of the code
    and now works.
    arrbee committed Jun 20, 2013
  3. @arrbee
  4. @arrbee
  5. @arrbee

    Add status flags to force output sort order

    Files in status will, be default, be sorted according to the case
    insensitivity of the filesystem that we're running on.  However,
    in some cases, this is not desirable.  Even on case insensitive
    file systems, 'git status' at the command line will generally use
    a case sensitive sort (like 'ls').  Some GUIs prefer to display a
    list of file case insensitively even on case-sensitive platforms.
    This adds two new flags: GIT_STATUS_OPT_SORT_CASE_SENSITIVELY
    and GIT_STATUS_OPT_SORT_CASE_INSENSITIVELY that will override the
    default sort order of the status output and give the user control.
    This includes tests for exercising these new options and makes
    the examples/status.c program emulate core Git and always use a
    case sensitive sort.
    arrbee committed Jun 20, 2013
  6. @arrbee
  7. @arrbee

    Fix bug in diff untracked dir scan

    When scanning untracked directories looking for non-ignored files
    there was a bug where an empty directory would generate a false
    arrbee committed Jun 20, 2013
Commits on Jun 19, 2013
  1. @vmg

    Merge pull request #1661 from arrbee/index-add-all

    Index operations using globs
    vmg committed Jun 19, 2013
  2. @arrbee

    Add tests and fix use of freed memory

    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.
    arrbee committed Jun 19, 2013
  3. @arrbee

    Add index pathspec-based operations

    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.
    arrbee committed Jun 19, 2013
  4. @arrbee

    Add fn to check pathspec for ignored files

    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.
    arrbee committed Jun 19, 2013
  5. @arrbee

    Add higher level pathspec API

    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.
    arrbee committed Jun 19, 2013
  6. @vmg

    Merge pull request #1660 from trast/tr/fix-zlib-configuration

    CMakeLists: fix zlib linker setup
    vmg committed Jun 19, 2013
  7. CMakeLists: fix zlib linker setup

    b53671a (Search for zlib unconditional, 2012-12-18) changed things
    around to always (even on windows, that's what the subject refers to)
    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.
    000e689 (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 Jun 19, 2013
Commits on Jun 18, 2013
  1. @vmg

    Merge pull request #1659 from arrbee/rename-cycle-fixes

    Diff rename detection cycle fixes
    vmg committed Jun 18, 2013
  2. @arrbee

    Fix rename looped reference issues

    This makes the diff rename tracking code more careful about the
    order in which it processes renames and more thorough in updating
    the mapping of correct renames when an earlier rename update
    alters the index of a later matched pair.
    arrbee committed Jun 18, 2013
  3. @ethomson @arrbee
  4. @ethomson @arrbee
  5. @vmg

    Merge pull request #1657 from arrbee/diff-blob-as-path

    Add "as_path" parameters to blob and buffer diff APIs
    vmg committed Jun 18, 2013