Permalink
Commits on Sep 13, 2016
  1. Merge pull request #3929 from libgit2/vmg/time

    time: Export `git_time_monotonic`
    ethomson committed on GitHub Sep 13, 2016
  2. time: Export `git_time_monotonic`

    vmg committed Sep 13, 2016
Commits on Sep 9, 2016
  1. Merge pull request #3925 from pks-t/pks/cmake-library-dirs

    cmake: add curl library path
    pks-t committed on GitHub Sep 9, 2016
Commits on Sep 6, 2016
  1. Merge pull request #3923 from libgit2/ethomson/diff-read-empty-binary

    Read binary patches (with no binary data)
    ethomson committed on GitHub Sep 6, 2016
  2. Merge pull request #3882 from pks-t/pks/fix-fetch-refspec-dst-parsing

    refspec: do not set empty rhs for fetch refspecs
    pks-t committed on GitHub Sep 6, 2016
Commits on Sep 5, 2016
  1. diff: treat binary patches with no data special

    When creating and printing diffs, deal with binary deltas that have
    binary data specially, versus diffs that have a binary file but lack the
    actual binary data.
    ethomson committed Sep 2, 2016
  2. cmake: add curl library path

    The `PKG_CHECK_MODULES` function searches a pkg-config module and
    then proceeds to set various variables containing information on
    how to link to the library. In contrast to the `FIND_PACKAGE`
    function, the library path set by `PKG_CHECK_MODULES` will not
    necessarily contain linking instructions with a complete path to
    the library, though. So when a library is not installed in a
    standard location, the linker might later fail due to being
    unable to locate it.
    
    While we already honor this when configuring libssh2 by adding
    `LIBSSH2_LIBRARY_DIRS` to the link directories, we fail to do so
    for libcurl, preventing us to build libgit2 on e.g. FreeBSD. Fix
    the issue by adding the curl library directory to the linker
    search path.
    pks-t committed Sep 5, 2016
Commits on Sep 2, 2016
  1. diff_print: change test for skipping binary printing

    Instead of skipping printing a binary diff when there is no data, skip
    printing when we have a status of `UNMODIFIED`.  This is more in-line
    with our internal data model and allows us to expand the notion of
    binary data.
    
    In the future, there may have no data because the files were unmodified
    (there was no data to produce) or it may have no data because there was
    no data given to us in a patch.  We want to treat these cases
    separately.
    ethomson committed Sep 2, 2016
  2. Merge pull request #3922 from pks-t/pks/diff-only-load-binaries-when-…

    …requested
    
    patch_generate: only calculate binary diffs if requested
    ethomson committed on GitHub Sep 2, 2016
Commits on Sep 1, 2016
  1. patch_generate: only calculate binary diffs if requested

    When generating diffs for binary files, we load and decompress
    the blobs in order to generate the actual diff, which can be very
    costly. While we cannot avoid this for the case when we are
    called with the `GIT_DIFF_SHOW_BINARY` flag, we do not have to
    load the blobs in the case where this flag is not set, as the
    caller is expected to have no interest in the actual content of
    binary files.
    
    Fix the issue by only generating a binary diff when the caller is
    actually interested in the diff. As libgit2 uses heuristics to
    determine that a blob contains binary data by inspecting its size
    without loading from the ODB, this saves us quite some time when
    diffing in a repository with binary files.
    pks-t committed Sep 1, 2016
Commits on Aug 30, 2016
  1. Merge pull request #3915 from pks-t/pks/index-collision-test-leak

    tests: index: do not re-allocate index
    carlosmn committed on GitHub Aug 30, 2016
  2. Merge pull request #3907 from steffhip/git_checkout_tree-fix

    pks-t committed Aug 30, 2016
  3. git_checkout_tree options fix

    According to the reference the git_checkout_tree and git_checkout_head
    functions should accept NULL in the opts field
    
    This was broken since the opts field was dereferenced and thus lead to a
    crash.
    steffhip committed with pks-t Aug 23, 2016
Commits on Aug 29, 2016
  1. Merge pull request #3914 from pks-t/pks/libqgit2-binding-url

    README: adjust URL to libqgit2 repository
    ethomson committed on GitHub Aug 29, 2016
  2. tests: index: do not re-allocate index

    Plug a memory leak caused by re-allocating a `git_index`
    structure which has already been allocated by the test suite's
    initializer.
    pks-t committed Aug 29, 2016
  3. README: adjust URL to libqgit2 repository

    pks-t committed Aug 29, 2016
  4. Merge pull request #3900 from pks-t/pks/http-close-substream-on-connect

    transports: http: set substream as disconnected after closing
    pks-t committed on GitHub Aug 29, 2016
Commits on Aug 26, 2016
  1. Merge pull request #3908 from libgit2/ethomson/patch_from_diff

    Teach `git_patch_from_diff` about parsed diffs
    ethomson committed on GitHub Aug 26, 2016
Commits on Aug 24, 2016
  1. Teach `git_patch_from_diff` about parsed diffs

    Ensure that `git_patch_from_diff` can return the patch for parsed diffs,
    not just generate a patch for a generated diff.
    ethomson committed Aug 24, 2016
  2. Merge pull request #3904 from stinb/filesystem-iterator-double-free

    filesystem_iterator: fixed double free on error
    pks-t committed on GitHub Aug 24, 2016
Commits on Aug 22, 2016
  1. filesystem_iterator: fixed double free on error

    hackhaslam committed Aug 22, 2016
Commits on Aug 17, 2016
  1. Merge pull request #3837 from novalis/dturner/indexv4

    Support index v4
    ethomson committed on GitHub Aug 17, 2016
  2. Merge pull request #3895 from pks-t/pks/negate-basename-in-subdirs

    ignore: allow unignoring basenames in subdirectories
    ethomson committed on GitHub Aug 17, 2016
  3. transports: http: reset `connected` flag when closing transport

    pks-t committed Aug 17, 2016
  4. transports: http: reset `connected` flag when re-connecting transport

    When calling `http_connect` on a subtransport whose stream is already
    connected, we first close the stream in case no keep-alive is in use.
    When doing so, we do not reset the transport's connection state,
    though. Usually, this will do no harm in case the subsequent connect
    will succeed. But when the connection fails we are left with a
    substransport which is tagged as connected but which has no valid
    stream attached.
    
    Fix the issue by resetting the subtransport's connected-state when
    closing its stream in `http_connect`.
    pks-t committed Aug 17, 2016
Commits on Aug 12, 2016
  1. ignore: allow unignoring basenames in subdirectories

    The .gitignore file allows for patterns which unignore previous
    ignore patterns. When unignoring a previous pattern, there are
    basically three cases how this is matched when no globbing is
    used:
    
    1. when a previous file has been ignored, it can be unignored by
       using its exact name, e.g.
    
       foo/bar
       !foo/bar
    
    2. when a file in a subdirectory has been ignored, it can be
       unignored by using its basename, e.g.
    
       foo/bar
       !bar
    
    3. when all files with a basename are ignored, a specific file
       can be unignored again by specifying its path in a
       subdirectory, e.g.
    
       bar
       !foo/bar
    
    The first problem in libgit2 is that we did not correctly treat
    the second case. While we verified that the negative pattern
    matches the tail of the positive one, we did not verify if it
    only matches the basename of the positive pattern. So e.g. we
    would have also negated a pattern like
    
        foo/fruz_bar
        !bar
    
    Furthermore, we did not check for the third case, where a
    basename is being unignored in a certain subdirectory again.
    
    Both issues are fixed with this commit.
    pks-t committed Aug 12, 2016
Commits on Aug 10, 2016
  1. index: support index v4

    Support reading and writing index v4.  Index v4 uses a very simple
    compression scheme for pathnames, but is otherwise similar to index v3.
    
    Signed-off-by: David Turner <dturner@twitter.com>
    dturner-tw committed with novalis May 17, 2016
  2. varint: Add varint encoding/decoding

    This code is ported from git.git
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    Signed-off-by: David Turner <dturner@twopensource.com>
    dturner-tw committed with novalis May 17, 2016
Commits on Aug 9, 2016
  1. Merge pull request #3891 from pks-t/pks/stransport-memory-management-…

    …improvements
    
    stransport memory management improvements
    carlosmn committed on GitHub Aug 9, 2016
  2. Merge pull request #3893 from pks-t/pks/remove-unused-test-cb

    tests: blob: remove unused callback function
    ethomson committed on GitHub Aug 9, 2016
  3. tests: blob: remove unused callback function

    pks-t committed Aug 9, 2016
  4. stransport: do not use `git_stream_free` on uninitialized stransport

    When failing to initialize a new stransport stream, we try to
    release already allocated memory by calling out to
    `git_stream_free`, which in turn called out to the stream's
    `free` function pointer. As we only initialize the function
    pointer later on, this leads to a `NULL` pointer exception.
    
    Furthermore, plug another memory leak when failing to create the
    SSL context.
    pks-t committed Aug 8, 2016
Commits on Aug 8, 2016
  1. Merge pull request #3887 from libgit2/ethomson/empty_blob

    odb: only provide the empty tree
    carlosmn committed on GitHub Aug 8, 2016
  2. Merge pull request #3890 from pks-t/pks/stransport-static-linkage

    stransport: make internal functions static
    ethomson committed on GitHub Aug 8, 2016