rugged 1.4.5 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +34 -2
- data/ext/rugged/extconf.rb +1 -0
- data/ext/rugged/rugged.c +16 -0
- data/ext/rugged/rugged.h +4 -0
- data/ext/rugged/rugged_remote.c +10 -10
- data/ext/rugged/rugged_repo.c +2 -7
- data/ext/rugged/rugged_settings.c +5 -0
- data/lib/rugged/tree.rb +4 -0
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +16 -3
- data/vendor/libgit2/COPYING +40 -0
- data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
- data/vendor/libgit2/cmake/FindPCRE.cmake +3 -4
- data/vendor/libgit2/cmake/FindPCRE2.cmake +1 -1
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +1 -1
- data/vendor/libgit2/cmake/SelectHashes.cmake +62 -14
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +3 -1
- data/vendor/libgit2/include/git2/branch.h +2 -2
- data/vendor/libgit2/include/git2/common.h +11 -0
- data/vendor/libgit2/include/git2/config.h +6 -6
- data/vendor/libgit2/include/git2/deprecated.h +2 -0
- data/vendor/libgit2/include/git2/errors.h +17 -3
- data/vendor/libgit2/include/git2/merge.h +1 -1
- data/vendor/libgit2/include/git2/status.h +5 -2
- data/vendor/libgit2/include/git2/sys/remote.h +15 -0
- data/vendor/libgit2/include/git2/sys/transport.h +9 -5
- data/vendor/libgit2/include/git2/version.h +27 -6
- data/vendor/libgit2/src/CMakeLists.txt +104 -214
- data/vendor/libgit2/src/README.md +12 -0
- data/vendor/libgit2/src/cli/CMakeLists.txt +53 -0
- data/vendor/libgit2/src/cli/README.md +26 -0
- data/vendor/libgit2/src/cli/cli.h +20 -0
- data/vendor/libgit2/src/cli/cmd.c +21 -0
- data/vendor/libgit2/src/cli/cmd.h +33 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +204 -0
- data/vendor/libgit2/src/cli/cmd_clone.c +176 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +135 -0
- data/vendor/libgit2/src/cli/cmd_help.c +86 -0
- data/vendor/libgit2/src/cli/error.h +51 -0
- data/vendor/libgit2/src/cli/main.c +106 -0
- data/vendor/libgit2/src/cli/opt.c +669 -0
- data/vendor/libgit2/src/cli/opt.h +349 -0
- data/vendor/libgit2/src/cli/opt_usage.c +194 -0
- data/vendor/libgit2/src/cli/opt_usage.h +35 -0
- data/vendor/libgit2/src/cli/progress.c +345 -0
- data/vendor/libgit2/src/cli/progress.h +117 -0
- data/vendor/libgit2/src/cli/sighandler.h +20 -0
- data/vendor/libgit2/src/cli/unix/sighandler.c +36 -0
- data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
- data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
- data/vendor/libgit2/src/features.h.in +9 -0
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +131 -0
- data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +1 -1
- data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +14 -9
- data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +20 -17
- data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +1 -1
- data/vendor/libgit2/src/libgit2/common.h +55 -0
- data/vendor/libgit2/src/{config.c → libgit2/config.c} +2 -2
- data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +1 -1
- data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +1 -0
- data/vendor/libgit2/src/{errors.h → libgit2/errors.h} +1 -2
- data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +31 -1
- data/vendor/libgit2/src/{index.c → libgit2/index.c} +6 -6
- data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +2 -2
- data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +3 -3
- data/vendor/libgit2/src/{libgit2.c → libgit2/libgit2.c} +5 -0
- data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +20 -23
- data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +2 -1
- data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +9 -9
- data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +1 -1
- data/vendor/libgit2/src/{netops.c → libgit2/netops.c} +0 -1
- data/vendor/libgit2/src/{object.c → libgit2/object.c} +1 -0
- data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +2 -2
- data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +2 -21
- data/vendor/libgit2/src/{oid.h → libgit2/oid.h} +35 -2
- data/vendor/libgit2/src/{oidmap.c → libgit2/oidmap.c} +1 -1
- data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +24 -18
- data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +3 -2
- data/vendor/libgit2/src/{path.c → libgit2/path.c} +1 -0
- data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +11 -1
- data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +6 -2
- data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +1 -1
- data/vendor/libgit2/src/{remote.h → libgit2/remote.h} +1 -1
- data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +1 -0
- data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +15 -5
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +1 -1
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +12 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.c +91 -326
- data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +1 -1
- data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +16 -23
- data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +1 -1
- data/vendor/libgit2/src/util/CMakeLists.txt +74 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.h +1 -1
- data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
- data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{array.h → util/array.h} +1 -1
- data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
- data/vendor/libgit2/src/{date.c → util/date.c} +4 -3
- data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +1 -1
- data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +1 -1
- data/vendor/libgit2/src/{fs_path.c → util/fs_path.c} +17 -11
- data/vendor/libgit2/src/{fs_path.h → util/fs_path.h} +1 -1
- data/vendor/libgit2/src/{futils.c → util/futils.c} +44 -2
- data/vendor/libgit2/src/{futils.h → util/futils.h} +2 -1
- data/vendor/libgit2/src/{common.h → util/git2_util.h} +13 -59
- data/vendor/libgit2/src/util/hash/builtin.c +53 -0
- data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +1 -1
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.c +55 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.c +46 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
- data/vendor/libgit2/src/util/hash/openssl.c +194 -0
- data/vendor/libgit2/src/util/hash/openssl.h +45 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha.h +355 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
- data/vendor/libgit2/src/util/hash/sha.h +70 -0
- data/vendor/libgit2/src/util/hash/win32.c +549 -0
- data/vendor/libgit2/src/util/hash/win32.h +60 -0
- data/vendor/libgit2/src/{hash.c → util/hash.c} +17 -1
- data/vendor/libgit2/src/{hash.h → util/hash.h} +5 -3
- data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
- data/vendor/libgit2/src/{net.c → util/net.c} +0 -1
- data/vendor/libgit2/src/{net.h → util/net.h} +1 -1
- data/vendor/libgit2/src/{pool.h → util/pool.h} +1 -1
- data/vendor/libgit2/src/{posix.h → util/posix.h} +1 -1
- data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +1 -1
- data/vendor/libgit2/src/{rand.c → util/rand.c} +7 -3
- data/vendor/libgit2/src/{rand.h → util/rand.h} +1 -1
- data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
- data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
- data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
- data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +1 -1
- data/vendor/libgit2/src/{str.h → util/str.h} +1 -1
- data/vendor/libgit2/src/{strmap.h → util/strmap.h} +1 -1
- data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
- data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
- data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -1
- data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -1
- data/vendor/libgit2/src/{unix → util/unix}/realpath.c +1 -1
- data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
- data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
- data/vendor/libgit2/src/{util.c → util/util.c} +1 -1
- data/vendor/libgit2/src/{util.h → util/util.h} +1 -1
- data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
- data/vendor/libgit2/src/{vector.h → util/vector.h} +1 -1
- data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/findfile.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +1 -1
- data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
- data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
- data/vendor/libgit2/src/{zstream.h → util/zstream.h} +1 -1
- metadata +390 -361
- data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
- data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
- data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
- data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
- data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
- data/vendor/libgit2/src/hash/sha1.h +0 -40
- /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
- /data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +0 -0
- /data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +0 -0
- /data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +0 -0
- /data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +0 -0
- /data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +0 -0
- /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
- /data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +0 -0
- /data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +0 -0
- /data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +0 -0
- /data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +0 -0
- /data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +0 -0
- /data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +0 -0
- /data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +0 -0
- /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
- /data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +0 -0
- /data/vendor/libgit2/src/{branch.h → libgit2/branch.h} +0 -0
- /data/vendor/libgit2/src/{buf.c → libgit2/buf.c} +0 -0
- /data/vendor/libgit2/src/{buf.h → libgit2/buf.h} +0 -0
- /data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +0 -0
- /data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +0 -0
- /data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +0 -0
- /data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -0
- /data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +0 -0
- /data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +0 -0
- /data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +0 -0
- /data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +0 -0
- /data/vendor/libgit2/src/{commit.h → libgit2/commit.h} +0 -0
- /data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +0 -0
- /data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +0 -0
- /data/vendor/libgit2/src/{config.h → libgit2/config.h} +0 -0
- /data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +0 -0
- /data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +0 -0
- /data/vendor/libgit2/src/{config_entries.c → libgit2/config_entries.c} +0 -0
- /data/vendor/libgit2/src/{config_entries.h → libgit2/config_entries.h} +0 -0
- /data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +0 -0
- /data/vendor/libgit2/src/{config_mem.c → libgit2/config_mem.c} +0 -0
- /data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +0 -0
- /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
- /data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +0 -0
- /data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +0 -0
- /data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
- /data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
- /data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +0 -0
- /data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +0 -0
- /data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +0 -0
- /data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +0 -0
- /data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +0 -0
- /data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
- /data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +0 -0
- /data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +0 -0
- /data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +0 -0
- /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
- /data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +0 -0
- /data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +0 -0
- /data/vendor/libgit2/src/{diff_stats.h → libgit2/diff_stats.h} +0 -0
- /data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +0 -0
- /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
- /data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +0 -0
- /data/vendor/libgit2/src/{email.c → libgit2/email.c} +0 -0
- /data/vendor/libgit2/src/{email.h → libgit2/email.h} +0 -0
- /data/vendor/libgit2/src/{errors.c → libgit2/errors.c} +0 -0
- /data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +0 -0
- /data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +0 -0
- /data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +0 -0
- /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
- /data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +0 -0
- /data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +0 -0
- /data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +0 -0
- /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
- /data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +0 -0
- /data/vendor/libgit2/src/{idxmap.c → libgit2/idxmap.c} +0 -0
- /data/vendor/libgit2/src/{idxmap.h → libgit2/idxmap.h} +0 -0
- /data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +0 -0
- /data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +0 -0
- /data/vendor/libgit2/src/{index.h → libgit2/index.h} +0 -0
- /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
- /data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +0 -0
- /data/vendor/libgit2/src/{libgit2.h → libgit2/libgit2.h} +0 -0
- /data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +0 -0
- /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
- /data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +0 -0
- /data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +0 -0
- /data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +0 -0
- /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
- /data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +0 -0
- /data/vendor/libgit2/src/{message.c → libgit2/message.c} +0 -0
- /data/vendor/libgit2/src/{netops.h → libgit2/netops.h} +0 -0
- /data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +0 -0
- /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
- /data/vendor/libgit2/src/{object.h → libgit2/object.h} +0 -0
- /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
- /data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +0 -0
- /data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +0 -0
- /data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +0 -0
- /data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +0 -0
- /data/vendor/libgit2/src/{offmap.c → libgit2/offmap.c} +0 -0
- /data/vendor/libgit2/src/{offmap.h → libgit2/offmap.h} +0 -0
- /data/vendor/libgit2/src/{oidarray.c → libgit2/oidarray.c} +0 -0
- /data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +0 -0
- /data/vendor/libgit2/src/{oidmap.h → libgit2/oidmap.h} +0 -0
- /data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +0 -0
- /data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +0 -0
- /data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +0 -0
- /data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +0 -0
- /data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +0 -0
- /data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +0 -0
- /data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +0 -0
- /data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +0 -0
- /data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +0 -0
- /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
- /data/vendor/libgit2/src/{path.h → libgit2/path.h} +0 -0
- /data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +0 -0
- /data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +0 -0
- /data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +0 -0
- /data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +0 -0
- /data/vendor/libgit2/src/{push.c → libgit2/push.c} +0 -0
- /data/vendor/libgit2/src/{push.h → libgit2/push.h} +0 -0
- /data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +0 -0
- /data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +0 -0
- /data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
- /data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
- /data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +0 -0
- /data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +0 -0
- /data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +0 -0
- /data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +0 -0
- /data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +0 -0
- /data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +0 -0
- /data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
- /data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +0 -0
- /data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +0 -0
- /data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +0 -0
- /data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +0 -0
- /data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +0 -0
- /data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +0 -0
- /data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +0 -0
- /data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +0 -0
- /data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +0 -0
- /data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +0 -0
- /data/vendor/libgit2/src/{status.c → libgit2/status.c} +0 -0
- /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
- /data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +0 -0
- /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/socket.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
- /data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +0 -0
- /data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +0 -0
- /data/vendor/libgit2/src/{sysdir.c → libgit2/sysdir.c} +0 -0
- /data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +0 -0
- /data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +0 -0
- /data/vendor/libgit2/src/{threadstate.c → libgit2/threadstate.c} +0 -0
- /data/vendor/libgit2/src/{threadstate.h → libgit2/threadstate.h} +0 -0
- /data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +0 -0
- /data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +0 -0
- /data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +0 -0
- /data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +0 -0
- /data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +0 -0
- /data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.h +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +0 -0
- /data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +0 -0
- /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
- /data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +0 -0
- /data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/git-xdiff.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiff.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.c +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.c +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xhistogram.c +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xinclude.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmacros.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmerge.c +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xpatience.c +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.c +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xtypes.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.c +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.h +0 -0
- /data/vendor/libgit2/src/{alloc.c → util/alloc.c} +0 -0
- /data/vendor/libgit2/src/{alloc.h → util/alloc.h} +0 -0
- /data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.c +0 -0
- /data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.c +0 -0
- /data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.c +0 -0
- /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
- /data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +0 -0
- /data/vendor/libgit2/src/{date.h → util/date.h} +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
- /data/vendor/libgit2/src/{integer.h → util/integer.h} +0 -0
- /data/vendor/libgit2/src/{khash.h → util/khash.h} +0 -0
- /data/vendor/libgit2/src/{pool.c → util/pool.c} +0 -0
- /data/vendor/libgit2/src/{posix.c → util/posix.c} +0 -0
- /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
- /data/vendor/libgit2/src/{regexp.c → util/regexp.c} +0 -0
- /data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +0 -0
- /data/vendor/libgit2/src/{str.c → util/str.c} +0 -0
- /data/vendor/libgit2/src/{strmap.c → util/strmap.c} +0 -0
- /data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
- /data/vendor/libgit2/src/{thread.h → util/thread.h} +0 -0
- /data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
- /data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
- /data/vendor/libgit2/src/{vector.c → util/vector.c} +0 -0
- /data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/error.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/findfile.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
- /data/vendor/libgit2/src/{zstream.c → util/zstream.c} +0 -0
@@ -187,8 +187,7 @@ int git_oid_fromraw(git_oid *out, const unsigned char *raw)
|
|
187
187
|
|
188
188
|
int git_oid_cpy(git_oid *out, const git_oid *src)
|
189
189
|
{
|
190
|
-
|
191
|
-
return 0;
|
190
|
+
return git_oid_raw_cpy(out->id, src->id);
|
192
191
|
}
|
193
192
|
|
194
193
|
int git_oid_cmp(const git_oid *a, const git_oid *b)
|
@@ -203,25 +202,7 @@ int git_oid_equal(const git_oid *a, const git_oid *b)
|
|
203
202
|
|
204
203
|
int git_oid_ncmp(const git_oid *oid_a, const git_oid *oid_b, size_t len)
|
205
204
|
{
|
206
|
-
|
207
|
-
const unsigned char *b = oid_b->id;
|
208
|
-
|
209
|
-
if (len > GIT_OID_HEXSZ)
|
210
|
-
len = GIT_OID_HEXSZ;
|
211
|
-
|
212
|
-
while (len > 1) {
|
213
|
-
if (*a != *b)
|
214
|
-
return 1;
|
215
|
-
a++;
|
216
|
-
b++;
|
217
|
-
len -= 2;
|
218
|
-
};
|
219
|
-
|
220
|
-
if (len)
|
221
|
-
if ((*a ^ *b) & 0xf0)
|
222
|
-
return 1;
|
223
|
-
|
224
|
-
return 0;
|
205
|
+
return git_oid_raw_ncmp(oid_a->id, oid_b->id, len);
|
225
206
|
}
|
226
207
|
|
227
208
|
int git_oid_strcmp(const git_oid *oid_a, const char *str)
|
@@ -25,11 +25,44 @@ extern const git_oid git_oid__empty_tree_sha1;
|
|
25
25
|
*/
|
26
26
|
char *git_oid_allocfmt(const git_oid *id);
|
27
27
|
|
28
|
-
GIT_INLINE(int)
|
28
|
+
GIT_INLINE(int) git_oid_raw_ncmp(
|
29
|
+
const unsigned char *sha1,
|
30
|
+
const unsigned char *sha2,
|
31
|
+
size_t len)
|
32
|
+
{
|
33
|
+
if (len > GIT_OID_HEXSZ)
|
34
|
+
len = GIT_OID_HEXSZ;
|
35
|
+
|
36
|
+
while (len > 1) {
|
37
|
+
if (*sha1 != *sha2)
|
38
|
+
return 1;
|
39
|
+
sha1++;
|
40
|
+
sha2++;
|
41
|
+
len -= 2;
|
42
|
+
};
|
43
|
+
|
44
|
+
if (len)
|
45
|
+
if ((*sha1 ^ *sha2) & 0xf0)
|
46
|
+
return 1;
|
47
|
+
|
48
|
+
return 0;
|
49
|
+
}
|
50
|
+
|
51
|
+
GIT_INLINE(int) git_oid_raw_cmp(
|
52
|
+
const unsigned char *sha1,
|
53
|
+
const unsigned char *sha2)
|
29
54
|
{
|
30
55
|
return memcmp(sha1, sha2, GIT_OID_RAWSZ);
|
31
56
|
}
|
32
57
|
|
58
|
+
GIT_INLINE(int) git_oid_raw_cpy(
|
59
|
+
unsigned char *dst,
|
60
|
+
const unsigned char *src)
|
61
|
+
{
|
62
|
+
memcpy(dst, src, GIT_OID_RAWSZ);
|
63
|
+
return 0;
|
64
|
+
}
|
65
|
+
|
33
66
|
/*
|
34
67
|
* Compare two oid structures.
|
35
68
|
*
|
@@ -39,7 +72,7 @@ GIT_INLINE(int) git_oid__hashcmp(const unsigned char *sha1, const unsigned char
|
|
39
72
|
*/
|
40
73
|
GIT_INLINE(int) git_oid__cmp(const git_oid *a, const git_oid *b)
|
41
74
|
{
|
42
|
-
return
|
75
|
+
return git_oid_raw_cmp(a->id, b->id);
|
43
76
|
}
|
44
77
|
|
45
78
|
GIT_INLINE(void) git_oid__cpy_prefix(
|
@@ -1001,13 +1001,14 @@ int get_delta_base(
|
|
1001
1001
|
base_offset = delta_obj_offset - unsigned_base_offset;
|
1002
1002
|
*curpos += used;
|
1003
1003
|
} else if (type == GIT_OBJECT_REF_DELTA) {
|
1004
|
+
git_oid base_oid;
|
1005
|
+
git_oid_fromraw(&base_oid, base_info);
|
1006
|
+
|
1004
1007
|
/* If we have the cooperative cache, search in it first */
|
1005
1008
|
if (p->has_cache) {
|
1006
1009
|
struct git_pack_entry *entry;
|
1007
|
-
git_oid oid;
|
1008
1010
|
|
1009
|
-
|
1010
|
-
if ((entry = git_oidmap_get(p->idx_cache, &oid)) != NULL) {
|
1011
|
+
if ((entry = git_oidmap_get(p->idx_cache, &base_oid)) != NULL) {
|
1011
1012
|
if (entry->offset == 0)
|
1012
1013
|
return packfile_error("delta offset is zero");
|
1013
1014
|
|
@@ -1024,7 +1025,7 @@ int get_delta_base(
|
|
1024
1025
|
}
|
1025
1026
|
|
1026
1027
|
/* The base entry _must_ be in the same pack */
|
1027
|
-
if (pack_entry_find_offset(&base_offset, &unused, p,
|
1028
|
+
if (pack_entry_find_offset(&base_offset, &unused, p, &base_oid, GIT_OID_HEXSZ) < 0)
|
1028
1029
|
return packfile_error("base entry delta is not in the same pack");
|
1029
1030
|
*curpos += 20;
|
1030
1031
|
} else
|
@@ -1082,7 +1083,7 @@ static int packfile_open_locked(struct git_pack_file *p)
|
|
1082
1083
|
{
|
1083
1084
|
struct stat st;
|
1084
1085
|
struct git_pack_header hdr;
|
1085
|
-
|
1086
|
+
unsigned char sha1[GIT_OID_RAWSZ];
|
1086
1087
|
unsigned char *idx_sha1;
|
1087
1088
|
|
1088
1089
|
if (pack_index_open_locked(p) < 0)
|
@@ -1130,12 +1131,12 @@ static int packfile_open_locked(struct git_pack_file *p)
|
|
1130
1131
|
|
1131
1132
|
/* Verify the pack matches its index. */
|
1132
1133
|
if (p->num_objects != ntohl(hdr.hdr_entries) ||
|
1133
|
-
|
1134
|
+
p_pread(p->mwf.fd, sha1, GIT_OID_RAWSZ, p->mwf.size - GIT_OID_RAWSZ) < 0)
|
1134
1135
|
goto cleanup;
|
1135
1136
|
|
1136
1137
|
idx_sha1 = ((unsigned char *)p->index_map.data) + p->index_map.len - 40;
|
1137
1138
|
|
1138
|
-
if (
|
1139
|
+
if (git_oid_raw_cmp(sha1, idx_sha1) != 0)
|
1139
1140
|
goto cleanup;
|
1140
1141
|
|
1141
1142
|
if (git_mwindow_file_register(&p->mwf) < 0)
|
@@ -1340,10 +1341,14 @@ int git_pack_foreach_entry(
|
|
1340
1341
|
}
|
1341
1342
|
|
1342
1343
|
git_vector_free(&offsets);
|
1343
|
-
p->oids = (
|
1344
|
+
p->oids = (unsigned char **)git_vector_detach(NULL, NULL, &oids);
|
1344
1345
|
}
|
1345
1346
|
|
1346
|
-
/*
|
1347
|
+
/*
|
1348
|
+
* We need to copy the OIDs to another array before we
|
1349
|
+
* relinquish the lock to avoid races. We can also take
|
1350
|
+
* this opportunity to put them into normal form.
|
1351
|
+
*/
|
1347
1352
|
git_array_init_to_size(oids, p->num_objects);
|
1348
1353
|
if (!oids.ptr) {
|
1349
1354
|
git_mutex_unlock(&p->lock);
|
@@ -1357,7 +1362,7 @@ int git_pack_foreach_entry(
|
|
1357
1362
|
git_array_clear(oids);
|
1358
1363
|
GIT_ERROR_CHECK_ALLOC(oid);
|
1359
1364
|
}
|
1360
|
-
|
1365
|
+
git_oid_fromraw(oid, p->oids[i]);
|
1361
1366
|
}
|
1362
1367
|
|
1363
1368
|
git_mutex_unlock(&p->lock);
|
@@ -1380,7 +1385,7 @@ int git_pack_foreach_entry_offset(
|
|
1380
1385
|
{
|
1381
1386
|
const unsigned char *index;
|
1382
1387
|
off64_t current_offset;
|
1383
|
-
|
1388
|
+
git_oid current_oid;
|
1384
1389
|
uint32_t i;
|
1385
1390
|
int error = 0;
|
1386
1391
|
|
@@ -1422,8 +1427,9 @@ int git_pack_foreach_entry_offset(
|
|
1422
1427
|
current_offset = (((off64_t)ntohl(*((uint32_t *)(large_offset_ptr + 0)))) << 32) |
|
1423
1428
|
ntohl(*((uint32_t *)(large_offset_ptr + 4)));
|
1424
1429
|
}
|
1425
|
-
|
1426
|
-
|
1430
|
+
|
1431
|
+
git_oid_fromraw(¤t_oid, (index + 20 * i));
|
1432
|
+
if ((error = cb(¤t_oid, current_offset, data)) != 0) {
|
1427
1433
|
error = git_error_set_after_callback(error);
|
1428
1434
|
goto cleanup;
|
1429
1435
|
}
|
@@ -1431,8 +1437,8 @@ int git_pack_foreach_entry_offset(
|
|
1431
1437
|
} else {
|
1432
1438
|
for (i = 0; i < p->num_objects; i++) {
|
1433
1439
|
current_offset = ntohl(*(const uint32_t *)(index + 24 * i));
|
1434
|
-
current_oid
|
1435
|
-
if ((error = cb(current_oid, current_offset, data)) != 0) {
|
1440
|
+
git_oid_fromraw(¤t_oid, (index + 24 * i + 4));
|
1441
|
+
if ((error = cb(¤t_oid, current_offset, data)) != 0) {
|
1436
1442
|
error = git_error_set_after_callback(error);
|
1437
1443
|
goto cleanup;
|
1438
1444
|
}
|
@@ -1451,7 +1457,7 @@ int git_pack__lookup_sha1(const void *oid_lookup_table, size_t stride, unsigned
|
|
1451
1457
|
|
1452
1458
|
while (lo < hi) {
|
1453
1459
|
unsigned mi = (lo + hi) / 2;
|
1454
|
-
int cmp =
|
1460
|
+
int cmp = git_oid_raw_cmp(base + mi * stride, oid_prefix);
|
1455
1461
|
|
1456
1462
|
if (!cmp)
|
1457
1463
|
return mi;
|
@@ -1530,7 +1536,7 @@ static int pack_entry_find_offset(
|
|
1530
1536
|
if (pos < (int)p->num_objects) {
|
1531
1537
|
current = index + pos * stride;
|
1532
1538
|
|
1533
|
-
if (!
|
1539
|
+
if (!git_oid_raw_ncmp(short_oid->id, current, len))
|
1534
1540
|
found = 1;
|
1535
1541
|
}
|
1536
1542
|
}
|
@@ -1539,7 +1545,7 @@ static int pack_entry_find_offset(
|
|
1539
1545
|
/* Check for ambiguousity */
|
1540
1546
|
const unsigned char *next = current + stride;
|
1541
1547
|
|
1542
|
-
if (!
|
1548
|
+
if (!git_oid_raw_ncmp(short_oid->id, next, len)) {
|
1543
1549
|
found = 2;
|
1544
1550
|
}
|
1545
1551
|
}
|
@@ -19,6 +19,7 @@
|
|
19
19
|
#include "offmap.h"
|
20
20
|
#include "oidmap.h"
|
21
21
|
#include "zstream.h"
|
22
|
+
#include "oid.h"
|
22
23
|
|
23
24
|
/**
|
24
25
|
* Function type for callbacks from git_pack_foreach_entry_offset.
|
@@ -32,7 +33,7 @@ typedef int git_pack_foreach_entry_offset_cb(
|
|
32
33
|
|
33
34
|
#define PACK_SIGNATURE 0x5041434b /* "PACK" */
|
34
35
|
#define PACK_VERSION 2
|
35
|
-
#define pack_version_ok(v) ((v) == htonl(2)
|
36
|
+
#define pack_version_ok(v) ((v) == htonl(2))
|
36
37
|
struct git_pack_header {
|
37
38
|
uint32_t hdr_signature;
|
38
39
|
uint32_t hdr_version;
|
@@ -104,7 +105,7 @@ struct git_pack_file {
|
|
104
105
|
git_time_t mtime;
|
105
106
|
unsigned pack_local:1, pack_keep:1, has_cache:1;
|
106
107
|
git_oidmap *idx_cache;
|
107
|
-
|
108
|
+
unsigned char **oids;
|
108
109
|
|
109
110
|
git_pack_cache bases; /* delta base cache */
|
110
111
|
|
@@ -35,6 +35,7 @@
|
|
35
35
|
#define ONTO_FILE "onto"
|
36
36
|
#define ONTO_NAME_FILE "onto_name"
|
37
37
|
#define QUIET_FILE "quiet"
|
38
|
+
#define INTERACTIVE_FILE "interactive"
|
38
39
|
|
39
40
|
#define MSGNUM_FILE "msgnum"
|
40
41
|
#define END_FILE "end"
|
@@ -92,6 +93,7 @@ static int rebase_state_type(
|
|
92
93
|
git_repository *repo)
|
93
94
|
{
|
94
95
|
git_str path = GIT_STR_INIT;
|
96
|
+
git_str interactive_path = GIT_STR_INIT;
|
95
97
|
git_rebase_t type = GIT_REBASE_NONE;
|
96
98
|
|
97
99
|
if (git_str_joinpath(&path, repo->gitdir, REBASE_APPLY_DIR) < 0)
|
@@ -107,7 +109,14 @@ static int rebase_state_type(
|
|
107
109
|
return -1;
|
108
110
|
|
109
111
|
if (git_fs_path_isdir(git_str_cstr(&path))) {
|
110
|
-
|
112
|
+
if (git_str_joinpath(&interactive_path, path.ptr, INTERACTIVE_FILE) < 0)
|
113
|
+
return -1;
|
114
|
+
|
115
|
+
if (git_fs_path_isfile(interactive_path.ptr))
|
116
|
+
type = GIT_REBASE_INTERACTIVE;
|
117
|
+
else
|
118
|
+
type = GIT_REBASE_MERGE;
|
119
|
+
|
111
120
|
goto done;
|
112
121
|
}
|
113
122
|
|
@@ -118,6 +127,7 @@ done:
|
|
118
127
|
*path_out = git_str_detach(&path);
|
119
128
|
|
120
129
|
git_str_dispose(&path);
|
130
|
+
git_str_dispose(&interactive_path);
|
121
131
|
|
122
132
|
return 0;
|
123
133
|
}
|
@@ -740,7 +740,7 @@ static int packed_lookup(
|
|
740
740
|
return 0;
|
741
741
|
}
|
742
742
|
}
|
743
|
-
return
|
743
|
+
return ref_error_notfound(ref_name);
|
744
744
|
|
745
745
|
parse_failed:
|
746
746
|
git_error_set(GIT_ERROR_REFERENCE, "corrupted packed references file");
|
@@ -1361,7 +1361,11 @@ static int packed_write(refdb_fs_backend *backend)
|
|
1361
1361
|
|
1362
1362
|
for (i = 0; i < git_sortedcache_entrycount(refcache); ++i) {
|
1363
1363
|
struct packref *ref = git_sortedcache_entry(refcache, i);
|
1364
|
-
|
1364
|
+
|
1365
|
+
GIT_ASSERT_WITH_CLEANUP(ref, {
|
1366
|
+
error = -1;
|
1367
|
+
goto fail;
|
1368
|
+
});
|
1365
1369
|
|
1366
1370
|
if ((error = packed_find_peel(backend, ref)) < 0)
|
1367
1371
|
goto fail;
|
@@ -11,6 +11,7 @@
|
|
11
11
|
|
12
12
|
#include "git2/remote.h"
|
13
13
|
#include "git2/transport.h"
|
14
|
+
#include "git2/sys/remote.h"
|
14
15
|
#include "git2/sys/transport.h"
|
15
16
|
|
16
17
|
#include "refspec.h"
|
@@ -53,7 +54,6 @@ int git_remote_connect_options_normalize(
|
|
53
54
|
git_remote_connect_options *dst,
|
54
55
|
git_repository *repo,
|
55
56
|
const git_remote_connect_options *src);
|
56
|
-
void git_remote_connect_options_dispose(git_remote_connect_options *opts);
|
57
57
|
|
58
58
|
int git_remote_capabilities(unsigned int *out, git_remote *remote);
|
59
59
|
|
@@ -1581,6 +1581,7 @@ static int check_valid_extension(const git_config_entry *entry, void *payload)
|
|
1581
1581
|
}
|
1582
1582
|
|
1583
1583
|
for (i = 0; i < ARRAY_SIZE(builtin_extensions); i++) {
|
1584
|
+
git_str_clear(&cfg);
|
1584
1585
|
extension = builtin_extensions[i];
|
1585
1586
|
|
1586
1587
|
if ((error = git_str_printf(&cfg, "extensions.%s", extension)) < 0)
|
@@ -244,6 +244,15 @@ on_error:
|
|
244
244
|
return -1;
|
245
245
|
}
|
246
246
|
|
247
|
+
static bool tag_name_is_valid(const char *tag_name)
|
248
|
+
{
|
249
|
+
/*
|
250
|
+
* Discourage tag name starting with dash,
|
251
|
+
* https://github.com/git/git/commit/4f0accd638b8d2
|
252
|
+
*/
|
253
|
+
return tag_name[0] != '-';
|
254
|
+
}
|
255
|
+
|
247
256
|
static int git_tag_create__internal(
|
248
257
|
git_oid *oid,
|
249
258
|
git_repository *repo,
|
@@ -269,6 +278,11 @@ static int git_tag_create__internal(
|
|
269
278
|
return -1;
|
270
279
|
}
|
271
280
|
|
281
|
+
if (!tag_name_is_valid(tag_name)) {
|
282
|
+
git_error_set(GIT_ERROR_TAG, "'%s' is not a valid tag name", tag_name);
|
283
|
+
return -1;
|
284
|
+
}
|
285
|
+
|
272
286
|
error = retrieve_tag_reference_oid(oid, &ref_name, repo, tag_name);
|
273
287
|
if (error < 0 && error != GIT_ENOTFOUND)
|
274
288
|
goto cleanup;
|
@@ -542,11 +556,7 @@ int git_tag_name_is_valid(int *valid, const char *name)
|
|
542
556
|
|
543
557
|
*valid = 0;
|
544
558
|
|
545
|
-
|
546
|
-
* Discourage tag name starting with dash,
|
547
|
-
* https://github.com/git/git/commit/4f0accd638b8d2
|
548
|
-
*/
|
549
|
-
if (!name || name[0] == '-')
|
559
|
+
if (!name || !tag_name_is_valid(name))
|
550
560
|
goto done;
|
551
561
|
|
552
562
|
if ((error = git_str_puts(&ref_name, GIT_REFS_TAGS_DIR)) < 0 ||
|
@@ -395,7 +395,7 @@ static int on_body(http_parser *parser, const char *buf, size_t len)
|
|
395
395
|
size_t max_len;
|
396
396
|
|
397
397
|
/* Saw data when we expected not to (eg, in consume_response_body) */
|
398
|
-
if (ctx->output_buf == NULL
|
398
|
+
if (ctx->output_buf == NULL || ctx->output_size == 0) {
|
399
399
|
ctx->parse_status = PARSE_STATUS_NO_OUTPUT;
|
400
400
|
return 0;
|
401
401
|
}
|
@@ -425,6 +425,18 @@ int git_transport_smart_credentials(git_credential **out, git_transport *transpo
|
|
425
425
|
return connect_opts->callbacks.credentials(out, t->url, user, methods, connect_opts->callbacks.payload);
|
426
426
|
}
|
427
427
|
|
428
|
+
int git_transport_remote_connect_options(
|
429
|
+
git_remote_connect_options *out,
|
430
|
+
git_transport *transport)
|
431
|
+
{
|
432
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
433
|
+
|
434
|
+
GIT_ASSERT_ARG(out);
|
435
|
+
GIT_ASSERT_ARG(transport);
|
436
|
+
|
437
|
+
return git_remote_connect_options_dup(out, &t->connect_opts);
|
438
|
+
}
|
439
|
+
|
428
440
|
int git_transport_smart(git_transport **out, git_remote *owner, void *param)
|
429
441
|
{
|
430
442
|
transport_smart *t;
|