rugged 1.7.2 → 1.9.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/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +23 -10
- data/vendor/libgit2/COPYING +195 -1
- data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +17 -8
- data/vendor/libgit2/cmake/SelectHashes.cmake +28 -11
- data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
- data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
- data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
- data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
- data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
- data/vendor/libgit2/deps/llhttp/api.c +510 -0
- data/vendor/libgit2/deps/llhttp/http.c +170 -0
- data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
- data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
- data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +1 -0
- data/vendor/libgit2/deps/xdiff/xmerge.c +2 -2
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
- data/vendor/libgit2/deps/zlib/LICENSE +22 -0
- data/vendor/libgit2/deps/zlib/adler32.c +5 -27
- data/vendor/libgit2/deps/zlib/crc32.c +94 -167
- data/vendor/libgit2/deps/zlib/deflate.c +358 -435
- data/vendor/libgit2/deps/zlib/deflate.h +41 -10
- data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
- data/vendor/libgit2/deps/zlib/infback.c +17 -30
- data/vendor/libgit2/deps/zlib/inffast.c +1 -4
- data/vendor/libgit2/deps/zlib/inffast.h +1 -1
- data/vendor/libgit2/deps/zlib/inflate.c +36 -102
- data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
- data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
- data/vendor/libgit2/deps/zlib/trees.c +287 -352
- data/vendor/libgit2/deps/zlib/zconf.h +23 -14
- data/vendor/libgit2/deps/zlib/zlib.h +202 -202
- data/vendor/libgit2/deps/zlib/zutil.c +18 -44
- data/vendor/libgit2/deps/zlib/zutil.h +13 -33
- data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
- data/vendor/libgit2/include/git2/apply.h +27 -6
- data/vendor/libgit2/include/git2/attr.h +17 -4
- data/vendor/libgit2/include/git2/blame.h +133 -28
- data/vendor/libgit2/include/git2/blob.h +71 -28
- data/vendor/libgit2/include/git2/branch.h +22 -15
- data/vendor/libgit2/include/git2/buffer.h +6 -4
- data/vendor/libgit2/include/git2/cert.h +2 -1
- data/vendor/libgit2/include/git2/checkout.h +83 -32
- data/vendor/libgit2/include/git2/cherrypick.h +10 -3
- data/vendor/libgit2/include/git2/clone.h +25 -9
- data/vendor/libgit2/include/git2/commit.h +132 -3
- data/vendor/libgit2/include/git2/common.h +120 -63
- data/vendor/libgit2/include/git2/config.h +93 -23
- data/vendor/libgit2/include/git2/credential.h +30 -2
- data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
- data/vendor/libgit2/include/git2/deprecated.h +133 -3
- data/vendor/libgit2/include/git2/describe.h +13 -1
- data/vendor/libgit2/include/git2/diff.h +38 -8
- data/vendor/libgit2/include/git2/email.h +9 -29
- data/vendor/libgit2/include/git2/errors.h +46 -73
- data/vendor/libgit2/include/git2/filter.h +14 -7
- data/vendor/libgit2/include/git2/global.h +8 -1
- data/vendor/libgit2/include/git2/graph.h +3 -2
- data/vendor/libgit2/include/git2/ignore.h +10 -0
- data/vendor/libgit2/include/git2/index.h +99 -14
- data/vendor/libgit2/include/git2/indexer.h +21 -4
- data/vendor/libgit2/include/git2/mailmap.h +7 -1
- data/vendor/libgit2/include/git2/merge.h +46 -1
- data/vendor/libgit2/include/git2/message.h +2 -2
- data/vendor/libgit2/include/git2/net.h +3 -1
- data/vendor/libgit2/include/git2/notes.h +9 -6
- data/vendor/libgit2/include/git2/object.h +9 -8
- data/vendor/libgit2/include/git2/odb.h +91 -49
- data/vendor/libgit2/include/git2/odb_backend.h +80 -52
- data/vendor/libgit2/include/git2/oid.h +23 -24
- data/vendor/libgit2/include/git2/oidarray.h +7 -1
- data/vendor/libgit2/include/git2/pack.h +13 -1
- data/vendor/libgit2/include/git2/patch.h +2 -3
- data/vendor/libgit2/include/git2/pathspec.h +9 -0
- data/vendor/libgit2/include/git2/proxy.h +10 -0
- data/vendor/libgit2/include/git2/rebase.h +9 -6
- data/vendor/libgit2/include/git2/refdb.h +2 -2
- data/vendor/libgit2/include/git2/reflog.h +3 -2
- data/vendor/libgit2/include/git2/refs.h +9 -6
- data/vendor/libgit2/include/git2/refspec.h +14 -4
- data/vendor/libgit2/include/git2/remote.h +94 -18
- data/vendor/libgit2/include/git2/repository.h +57 -21
- data/vendor/libgit2/include/git2/reset.h +16 -3
- data/vendor/libgit2/include/git2/revert.h +9 -4
- data/vendor/libgit2/include/git2/revparse.h +3 -3
- data/vendor/libgit2/include/git2/revwalk.h +3 -2
- data/vendor/libgit2/include/git2/signature.h +46 -1
- data/vendor/libgit2/include/git2/stash.h +17 -3
- data/vendor/libgit2/include/git2/status.h +10 -6
- data/vendor/libgit2/include/git2/stdint.h +87 -85
- data/vendor/libgit2/include/git2/strarray.h +2 -3
- data/vendor/libgit2/include/git2/submodule.h +20 -9
- data/vendor/libgit2/include/git2/sys/alloc.h +12 -0
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +103 -62
- data/vendor/libgit2/include/git2/sys/config.h +80 -4
- data/vendor/libgit2/include/git2/sys/credential.h +4 -3
- data/vendor/libgit2/include/git2/sys/diff.h +21 -1
- data/vendor/libgit2/include/git2/sys/email.h +7 -0
- data/vendor/libgit2/include/git2/sys/errors.h +76 -0
- data/vendor/libgit2/include/git2/sys/filter.h +66 -3
- data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
- data/vendor/libgit2/include/git2/sys/index.h +3 -2
- data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
- data/vendor/libgit2/include/git2/sys/merge.h +55 -7
- data/vendor/libgit2/include/git2/sys/midx.h +43 -4
- data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
- data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
- data/vendor/libgit2/include/git2/sys/path.h +12 -1
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
- data/vendor/libgit2/include/git2/sys/refs.h +3 -2
- data/vendor/libgit2/include/git2/sys/remote.h +8 -1
- data/vendor/libgit2/include/git2/sys/repository.h +63 -3
- data/vendor/libgit2/include/git2/sys/stream.h +11 -2
- data/vendor/libgit2/include/git2/sys/transport.h +24 -3
- data/vendor/libgit2/include/git2/tag.h +3 -1
- data/vendor/libgit2/include/git2/trace.h +9 -3
- data/vendor/libgit2/include/git2/transaction.h +3 -2
- data/vendor/libgit2/include/git2/transport.h +11 -3
- data/vendor/libgit2/include/git2/tree.h +16 -5
- data/vendor/libgit2/include/git2/types.h +19 -3
- data/vendor/libgit2/include/git2/version.h +44 -8
- data/vendor/libgit2/include/git2/worktree.h +16 -6
- data/vendor/libgit2/src/CMakeLists.txt +6 -4
- data/vendor/libgit2/src/cli/CMakeLists.txt +2 -2
- data/vendor/libgit2/src/cli/cmd.c +1 -1
- data/vendor/libgit2/src/cli/cmd.h +4 -0
- data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
- data/vendor/libgit2/src/cli/cmd_clone.c +5 -7
- data/vendor/libgit2/src/cli/cmd_config.c +241 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
- data/vendor/libgit2/src/cli/cmd_help.c +6 -7
- data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
- data/vendor/libgit2/src/cli/cmd_init.c +102 -0
- data/vendor/libgit2/src/cli/common.c +168 -0
- data/vendor/libgit2/src/cli/common.h +63 -0
- data/vendor/libgit2/src/cli/error.h +1 -1
- data/vendor/libgit2/src/cli/main.c +52 -24
- data/vendor/libgit2/src/cli/opt.c +29 -3
- data/vendor/libgit2/src/cli/opt.h +21 -3
- data/vendor/libgit2/src/cli/opt_usage.c +102 -33
- data/vendor/libgit2/src/cli/opt_usage.h +6 -1
- data/vendor/libgit2/src/cli/progress.c +51 -2
- data/vendor/libgit2/src/cli/progress.h +12 -0
- data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
- data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
- data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +26 -8
- data/vendor/libgit2/src/libgit2/apply.c +10 -13
- data/vendor/libgit2/src/libgit2/attr.c +30 -13
- data/vendor/libgit2/src/libgit2/attr_file.c +7 -2
- data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
- data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
- data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
- data/vendor/libgit2/src/libgit2/blame.c +130 -44
- data/vendor/libgit2/src/libgit2/blame.h +1 -0
- data/vendor/libgit2/src/libgit2/cache.c +22 -17
- data/vendor/libgit2/src/libgit2/cache.h +7 -9
- data/vendor/libgit2/src/libgit2/checkout.c +34 -24
- data/vendor/libgit2/src/libgit2/checkout.h +0 -2
- data/vendor/libgit2/src/libgit2/cherrypick.c +1 -2
- data/vendor/libgit2/src/libgit2/clone.c +186 -166
- data/vendor/libgit2/src/libgit2/clone.h +4 -1
- data/vendor/libgit2/src/libgit2/commit.c +92 -0
- data/vendor/libgit2/src/libgit2/commit_graph.c +67 -56
- data/vendor/libgit2/src/libgit2/commit_graph.h +1 -2
- data/vendor/libgit2/src/libgit2/config.c +389 -298
- data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
- data/vendor/libgit2/src/libgit2/config.h +9 -4
- data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
- data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
- data/vendor/libgit2/src/libgit2/config_file.c +99 -88
- data/vendor/libgit2/src/libgit2/config_list.c +285 -0
- data/vendor/libgit2/src/libgit2/config_list.h +32 -0
- data/vendor/libgit2/src/libgit2/config_mem.c +194 -40
- data/vendor/libgit2/src/libgit2/config_parse.c +10 -9
- data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
- data/vendor/libgit2/src/libgit2/describe.c +24 -24
- data/vendor/libgit2/src/libgit2/diff.c +1 -1
- data/vendor/libgit2/src/libgit2/diff_driver.c +12 -19
- data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
- data/vendor/libgit2/src/libgit2/diff_generate.c +3 -3
- data/vendor/libgit2/src/libgit2/diff_parse.c +2 -2
- data/vendor/libgit2/src/libgit2/diff_print.c +65 -9
- data/vendor/libgit2/src/libgit2/diff_tform.c +36 -8
- data/vendor/libgit2/src/libgit2/email.c +1 -0
- data/vendor/libgit2/src/libgit2/fetch.c +5 -3
- data/vendor/libgit2/src/libgit2/filter.c +5 -5
- data/vendor/libgit2/src/libgit2/git2.rc +3 -3
- data/vendor/libgit2/src/libgit2/grafts.c +18 -20
- data/vendor/libgit2/src/libgit2/grafts.h +0 -1
- data/vendor/libgit2/src/libgit2/graph.c +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/libgit2/ignore.c +9 -5
- data/vendor/libgit2/src/libgit2/index.c +68 -90
- data/vendor/libgit2/src/libgit2/index.h +2 -2
- data/vendor/libgit2/src/libgit2/index_map.c +95 -0
- data/vendor/libgit2/src/libgit2/index_map.h +28 -0
- data/vendor/libgit2/src/libgit2/indexer.c +34 -38
- data/vendor/libgit2/src/libgit2/iterator.c +14 -8
- data/vendor/libgit2/src/libgit2/libgit2.c +153 -368
- data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
- data/vendor/libgit2/src/libgit2/merge.c +42 -37
- data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
- data/vendor/libgit2/src/libgit2/midx.c +28 -15
- data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
- data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
- data/vendor/libgit2/src/libgit2/object.c +6 -5
- data/vendor/libgit2/src/libgit2/odb.c +5 -4
- data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
- data/vendor/libgit2/src/libgit2/odb_pack.c +13 -5
- data/vendor/libgit2/src/libgit2/oid.c +32 -5
- data/vendor/libgit2/src/libgit2/oid.h +11 -0
- data/vendor/libgit2/src/libgit2/pack-objects.c +58 -31
- data/vendor/libgit2/src/libgit2/pack-objects.h +12 -4
- data/vendor/libgit2/src/libgit2/pack.c +30 -24
- data/vendor/libgit2/src/libgit2/pack.h +15 -10
- data/vendor/libgit2/src/libgit2/patch_parse.c +2 -2
- data/vendor/libgit2/src/libgit2/path.c +1 -1
- data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
- data/vendor/libgit2/src/libgit2/push.c +79 -28
- data/vendor/libgit2/src/libgit2/push.h +1 -0
- data/vendor/libgit2/src/libgit2/refdb_fs.c +128 -61
- data/vendor/libgit2/src/libgit2/reflog.c +1 -2
- data/vendor/libgit2/src/libgit2/reflog.h +2 -0
- data/vendor/libgit2/src/libgit2/refs.c +26 -7
- data/vendor/libgit2/src/libgit2/refs.h +6 -1
- data/vendor/libgit2/src/libgit2/refspec.c +28 -1
- data/vendor/libgit2/src/libgit2/refspec.h +8 -0
- data/vendor/libgit2/src/libgit2/remote.c +121 -61
- data/vendor/libgit2/src/libgit2/repository.c +231 -51
- data/vendor/libgit2/src/libgit2/repository.h +10 -6
- data/vendor/libgit2/src/libgit2/revert.c +1 -2
- data/vendor/libgit2/src/libgit2/revparse.c +2 -2
- data/vendor/libgit2/src/libgit2/revwalk.c +13 -10
- data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
- data/vendor/libgit2/src/libgit2/settings.c +468 -0
- data/vendor/libgit2/src/libgit2/settings.h +6 -2
- data/vendor/libgit2/src/libgit2/signature.c +132 -15
- data/vendor/libgit2/src/libgit2/signature.h +0 -1
- data/vendor/libgit2/src/libgit2/status.c +1 -1
- data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -60
- data/vendor/libgit2/src/libgit2/streams/openssl.c +32 -7
- data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
- data/vendor/libgit2/src/libgit2/streams/stransport.c +39 -7
- data/vendor/libgit2/src/libgit2/submodule.c +106 -63
- data/vendor/libgit2/src/libgit2/submodule.h +6 -7
- data/vendor/libgit2/src/libgit2/tag.c +1 -1
- data/vendor/libgit2/src/libgit2/trailer.c +6 -6
- data/vendor/libgit2/src/libgit2/transaction.c +26 -20
- data/vendor/libgit2/src/libgit2/transaction.h +4 -1
- data/vendor/libgit2/src/libgit2/transport.c +4 -1
- data/vendor/libgit2/src/libgit2/transports/credential.c +1 -1
- data/vendor/libgit2/src/libgit2/transports/http.c +1 -2
- data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
- data/vendor/libgit2/src/libgit2/transports/httpclient.c +112 -72
- data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
- data/vendor/libgit2/src/libgit2/transports/local.c +8 -7
- data/vendor/libgit2/src/libgit2/transports/smart.c +20 -8
- data/vendor/libgit2/src/libgit2/transports/smart.h +4 -2
- data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +2 -2
- data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +55 -10
- data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1126 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
- data/vendor/libgit2/src/libgit2/transports/winhttp.c +35 -7
- data/vendor/libgit2/src/libgit2/tree.c +34 -26
- data/vendor/libgit2/src/libgit2/tree.h +3 -2
- data/vendor/libgit2/src/libgit2/worktree.c +14 -17
- data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
- data/vendor/libgit2/src/util/alloc.c +4 -1
- data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
- data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
- data/vendor/libgit2/src/util/allocators/stdalloc.c +0 -10
- data/vendor/libgit2/src/util/array.h +18 -17
- data/vendor/libgit2/src/util/cc-compat.h +2 -0
- data/vendor/libgit2/src/util/ctype_compat.h +70 -0
- data/vendor/libgit2/src/util/date.c +22 -14
- data/vendor/libgit2/src/util/date.h +12 -0
- data/vendor/libgit2/src/util/errors.c +401 -0
- data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
- data/vendor/libgit2/src/util/fs_path.c +15 -4
- data/vendor/libgit2/src/util/fs_path.h +23 -0
- data/vendor/libgit2/src/util/futils.c +6 -5
- data/vendor/libgit2/src/util/futils.h +13 -4
- data/vendor/libgit2/src/util/git2_features.h.in +12 -1
- data/vendor/libgit2/src/util/git2_util.h +6 -0
- data/vendor/libgit2/src/util/hash/openssl.c +152 -0
- data/vendor/libgit2/src/util/hash/openssl.h +17 -1
- data/vendor/libgit2/src/util/hash/sha.h +4 -1
- data/vendor/libgit2/src/util/hashmap.h +424 -0
- data/vendor/libgit2/src/util/hashmap_str.h +43 -0
- data/vendor/libgit2/src/util/integer.h +3 -1
- data/vendor/libgit2/src/util/net.c +13 -7
- data/vendor/libgit2/src/util/net.h +2 -0
- data/vendor/libgit2/src/util/pool.c +1 -1
- data/vendor/libgit2/src/util/pool.h +5 -0
- data/vendor/libgit2/src/util/pqueue.h +1 -1
- data/vendor/libgit2/src/util/process.h +222 -0
- data/vendor/libgit2/src/util/rand.c +1 -7
- data/vendor/libgit2/src/util/regexp.c +1 -1
- data/vendor/libgit2/src/util/sortedcache.c +14 -13
- data/vendor/libgit2/src/util/sortedcache.h +3 -3
- data/vendor/libgit2/src/util/str.c +2 -2
- data/vendor/libgit2/src/util/strlist.c +108 -0
- data/vendor/libgit2/src/util/strlist.h +36 -0
- data/vendor/libgit2/src/util/unix/posix.h +0 -2
- data/vendor/libgit2/src/util/unix/process.c +629 -0
- data/vendor/libgit2/src/util/unix/realpath.c +23 -5
- data/vendor/libgit2/src/util/util.c +2 -2
- data/vendor/libgit2/src/util/util.h +4 -38
- data/vendor/libgit2/src/util/vector.c +3 -3
- data/vendor/libgit2/src/util/vector.h +2 -2
- data/vendor/libgit2/src/util/win32/posix_w32.c +29 -6
- data/vendor/libgit2/src/util/win32/process.c +506 -0
- metadata +45 -28
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
- data/vendor/libgit2/deps/http-parser/COPYING +0 -23
- data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
- data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
- data/vendor/libgit2/deps/zlib/COPYING +0 -27
- data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
- data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
- data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
- data/vendor/libgit2/src/libgit2/errors.c +0 -293
- data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
- data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
- data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
- data/vendor/libgit2/src/libgit2/offmap.c +0 -101
- data/vendor/libgit2/src/libgit2/offmap.h +0 -133
- data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
- data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
- data/vendor/libgit2/src/libgit2/threadstate.c +0 -97
- data/vendor/libgit2/src/libgit2/threadstate.h +0 -22
- data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
- data/vendor/libgit2/src/util/khash.h +0 -615
- data/vendor/libgit2/src/util/strmap.c +0 -100
- data/vendor/libgit2/src/util/strmap.h +0 -131
- /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
|
@@ -60,9 +60,11 @@ static int mark_local(git_remote *remote)
|
|
|
60
60
|
|
|
61
61
|
git_vector_foreach(&remote->refs, i, head) {
|
|
62
62
|
/* If we have the object, mark it so we don't ask for it.
|
|
63
|
-
However if we are unshallowing
|
|
64
|
-
even though the head
|
|
65
|
-
|
|
63
|
+
However if we are unshallowing or changing history
|
|
64
|
+
depth, we need to ask for it even though the head
|
|
65
|
+
exists locally. */
|
|
66
|
+
if (remote->nego.depth == GIT_FETCH_DEPTH_FULL &&
|
|
67
|
+
git_odb_exists(odb, &head->oid))
|
|
66
68
|
head->local = 1;
|
|
67
69
|
else
|
|
68
70
|
remote->need_pack = 1;
|
|
@@ -239,7 +239,7 @@ static void git_filter_global_shutdown(void)
|
|
|
239
239
|
git__free(fdef);
|
|
240
240
|
}
|
|
241
241
|
|
|
242
|
-
|
|
242
|
+
git_vector_dispose(&filter_registry.filters);
|
|
243
243
|
|
|
244
244
|
git_rwlock_wrunlock(&filter_registry.lock);
|
|
245
245
|
git_rwlock_free(&filter_registry.lock);
|
|
@@ -908,7 +908,7 @@ static int buffered_stream_close(git_writestream *s)
|
|
|
908
908
|
{
|
|
909
909
|
struct buffered_stream *buffered_stream = (struct buffered_stream *)s;
|
|
910
910
|
git_str *writebuf;
|
|
911
|
-
|
|
911
|
+
git_error *last_error;
|
|
912
912
|
int error;
|
|
913
913
|
|
|
914
914
|
GIT_ASSERT_ARG(buffered_stream);
|
|
@@ -946,9 +946,9 @@ static int buffered_stream_close(git_writestream *s)
|
|
|
946
946
|
} else {
|
|
947
947
|
/* close stream before erroring out taking care
|
|
948
948
|
* to preserve the original error */
|
|
949
|
-
|
|
949
|
+
git_error_save(&last_error);
|
|
950
950
|
buffered_stream->target->close(buffered_stream->target);
|
|
951
|
-
|
|
951
|
+
git_error_restore(last_error);
|
|
952
952
|
return error;
|
|
953
953
|
}
|
|
954
954
|
|
|
@@ -1106,7 +1106,7 @@ static void filter_streams_free(git_vector *streams)
|
|
|
1106
1106
|
|
|
1107
1107
|
git_vector_foreach(streams, i, stream)
|
|
1108
1108
|
stream->free(stream);
|
|
1109
|
-
|
|
1109
|
+
git_vector_dispose(streams);
|
|
1110
1110
|
}
|
|
1111
1111
|
|
|
1112
1112
|
int git_filter_list_stream_file(
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
#endif
|
|
11
11
|
|
|
12
12
|
#ifndef LIBGIT2_COMMENTS
|
|
13
|
-
# define LIBGIT2_COMMENTS "For more information visit
|
|
13
|
+
# define LIBGIT2_COMMENTS "For more information visit https://libgit2.org/"
|
|
14
14
|
#endif
|
|
15
15
|
|
|
16
16
|
#ifdef __GNUC__
|
|
@@ -25,8 +25,8 @@ VS_VERSION_INFO VERSIONINFO
|
|
|
25
25
|
#else
|
|
26
26
|
VS_VERSION_INFO VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE
|
|
27
27
|
#endif
|
|
28
|
-
FILEVERSION
|
|
29
|
-
PRODUCTVERSION
|
|
28
|
+
FILEVERSION LIBGIT2_VERSION_MAJOR,LIBGIT2_VERSION_MINOR,LIBGIT2_VERSION_REVISION,LIBGIT2_VERSION_PATCH
|
|
29
|
+
PRODUCTVERSION LIBGIT2_VERSION_MAJOR,LIBGIT2_VERSION_MINOR,LIBGIT2_VERSION_REVISION,LIBGIT2_VERSION_PATCH
|
|
30
30
|
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
|
|
31
31
|
#ifdef _DEBUG
|
|
32
32
|
FILEFLAGS VS_FF_DEBUG
|
|
@@ -11,10 +11,13 @@
|
|
|
11
11
|
#include "oid.h"
|
|
12
12
|
#include "oidarray.h"
|
|
13
13
|
#include "parse.h"
|
|
14
|
+
#include "hashmap_oid.h"
|
|
15
|
+
|
|
16
|
+
GIT_HASHMAP_OID_SETUP(git_grafts_oidmap, git_commit_graft *);
|
|
14
17
|
|
|
15
18
|
struct git_grafts {
|
|
16
19
|
/* Map of `git_commit_graft`s */
|
|
17
|
-
|
|
20
|
+
git_grafts_oidmap commits;
|
|
18
21
|
|
|
19
22
|
/* Type of object IDs */
|
|
20
23
|
git_oid_t oid_type;
|
|
@@ -33,11 +36,6 @@ int git_grafts_new(git_grafts **out, git_oid_t oid_type)
|
|
|
33
36
|
grafts = git__calloc(1, sizeof(*grafts));
|
|
34
37
|
GIT_ERROR_CHECK_ALLOC(grafts);
|
|
35
38
|
|
|
36
|
-
if ((git_oidmap_new(&grafts->commits)) < 0) {
|
|
37
|
-
git__free(grafts);
|
|
38
|
-
return -1;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
39
|
grafts->oid_type = oid_type;
|
|
42
40
|
|
|
43
41
|
*out = grafts;
|
|
@@ -88,23 +86,24 @@ void git_grafts_free(git_grafts *grafts)
|
|
|
88
86
|
return;
|
|
89
87
|
git__free(grafts->path);
|
|
90
88
|
git_grafts_clear(grafts);
|
|
91
|
-
|
|
89
|
+
git_grafts_oidmap_dispose(&grafts->commits);
|
|
92
90
|
git__free(grafts);
|
|
93
91
|
}
|
|
94
92
|
|
|
95
93
|
void git_grafts_clear(git_grafts *grafts)
|
|
96
94
|
{
|
|
95
|
+
git_hashmap_iter_t iter = GIT_HASHMAP_ITER_INIT;
|
|
97
96
|
git_commit_graft *graft;
|
|
98
97
|
|
|
99
98
|
if (!grafts)
|
|
100
99
|
return;
|
|
101
100
|
|
|
102
|
-
|
|
101
|
+
while (git_grafts_oidmap_iterate(&iter, NULL, &graft, &grafts->commits) == 0) {
|
|
103
102
|
git__free(graft->parents.ptr);
|
|
104
103
|
git__free(graft);
|
|
105
|
-
}
|
|
104
|
+
}
|
|
106
105
|
|
|
107
|
-
|
|
106
|
+
git_grafts_oidmap_clear(&grafts->commits);
|
|
108
107
|
}
|
|
109
108
|
|
|
110
109
|
int git_grafts_refresh(git_grafts *grafts)
|
|
@@ -205,7 +204,7 @@ int git_grafts_add(git_grafts *grafts, const git_oid *oid, git_array_oid_t paren
|
|
|
205
204
|
if ((error = git_grafts_remove(grafts, &graft->oid)) < 0 && error != GIT_ENOTFOUND)
|
|
206
205
|
goto cleanup;
|
|
207
206
|
|
|
208
|
-
if ((error =
|
|
207
|
+
if ((error = git_grafts_oidmap_put(&grafts->commits, &graft->oid, graft)) < 0)
|
|
209
208
|
goto cleanup;
|
|
210
209
|
|
|
211
210
|
return 0;
|
|
@@ -223,10 +222,10 @@ int git_grafts_remove(git_grafts *grafts, const git_oid *oid)
|
|
|
223
222
|
|
|
224
223
|
GIT_ASSERT_ARG(grafts && oid);
|
|
225
224
|
|
|
226
|
-
if ((graft
|
|
225
|
+
if (git_grafts_oidmap_get(&graft, &grafts->commits, oid) != 0)
|
|
227
226
|
return GIT_ENOTFOUND;
|
|
228
227
|
|
|
229
|
-
if ((error =
|
|
228
|
+
if ((error = git_grafts_oidmap_remove(&grafts->commits, oid)) < 0)
|
|
230
229
|
return error;
|
|
231
230
|
|
|
232
231
|
git__free(graft->parents.ptr);
|
|
@@ -238,23 +237,22 @@ int git_grafts_remove(git_grafts *grafts, const git_oid *oid)
|
|
|
238
237
|
int git_grafts_get(git_commit_graft **out, git_grafts *grafts, const git_oid *oid)
|
|
239
238
|
{
|
|
240
239
|
GIT_ASSERT_ARG(out && grafts && oid);
|
|
241
|
-
|
|
242
|
-
return GIT_ENOTFOUND;
|
|
243
|
-
return 0;
|
|
240
|
+
return git_grafts_oidmap_get(out, &grafts->commits, oid);
|
|
244
241
|
}
|
|
245
242
|
|
|
246
243
|
int git_grafts_oids(git_oid **out, size_t *out_len, git_grafts *grafts)
|
|
247
244
|
{
|
|
245
|
+
git_hashmap_iter_t iter = GIT_HASHMAP_ITER_INIT;
|
|
248
246
|
git_array_oid_t array = GIT_ARRAY_INIT;
|
|
249
247
|
const git_oid *oid;
|
|
250
|
-
size_t existing
|
|
248
|
+
size_t existing;
|
|
251
249
|
|
|
252
250
|
GIT_ASSERT_ARG(out && grafts);
|
|
253
251
|
|
|
254
|
-
if ((existing =
|
|
252
|
+
if ((existing = git_grafts_oidmap_size(&grafts->commits)) > 0)
|
|
255
253
|
git_array_init_to_size(array, existing);
|
|
256
254
|
|
|
257
|
-
while (
|
|
255
|
+
while (git_grafts_oidmap_iterate(&iter, &oid, NULL, &grafts->commits) == 0) {
|
|
258
256
|
git_oid *cpy = git_array_alloc(array);
|
|
259
257
|
GIT_ERROR_CHECK_ALLOC(cpy);
|
|
260
258
|
git_oid_cpy(cpy, oid);
|
|
@@ -268,5 +266,5 @@ int git_grafts_oids(git_oid **out, size_t *out_len, git_grafts *grafts)
|
|
|
268
266
|
|
|
269
267
|
size_t git_grafts_size(git_grafts *grafts)
|
|
270
268
|
{
|
|
271
|
-
return
|
|
269
|
+
return git_grafts_oidmap_size(&grafts->commits);
|
|
272
270
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef INCLUDE_hashmap_oid_h__
|
|
8
|
+
#define INCLUDE_hashmap_oid_h__
|
|
9
|
+
|
|
10
|
+
#include "hashmap.h"
|
|
11
|
+
|
|
12
|
+
GIT_INLINE(uint32_t) git_hashmap_oid_hashcode(const git_oid *oid)
|
|
13
|
+
{
|
|
14
|
+
uint32_t hash;
|
|
15
|
+
memcpy(&hash, oid->id, sizeof(uint32_t));
|
|
16
|
+
return hash;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
#define GIT_HASHMAP_OID_STRUCT(name, val_t) \
|
|
20
|
+
GIT_HASHMAP_STRUCT(name, const git_oid *, val_t)
|
|
21
|
+
#define GIT_HASHMAP_OID_PROTOTYPES(name, val_t) \
|
|
22
|
+
GIT_HASHMAP_PROTOTYPES(name, const git_oid *, val_t)
|
|
23
|
+
#define GIT_HASHMAP_OID_FUNCTIONS(name, scope, val_t) \
|
|
24
|
+
GIT_HASHMAP_FUNCTIONS(name, scope, const git_oid *, val_t, git_hashmap_oid_hashcode, git_oid_equal)
|
|
25
|
+
|
|
26
|
+
#define GIT_HASHMAP_OID_SETUP(name, val_t) \
|
|
27
|
+
GIT_HASHMAP_OID_STRUCT(name, val_t) \
|
|
28
|
+
GIT_HASHMAP_OID_FUNCTIONS(name, GIT_HASHMAP_INLINE, val_t)
|
|
29
|
+
|
|
30
|
+
#endif
|
|
@@ -296,6 +296,8 @@ int git_ignore__for_path(
|
|
|
296
296
|
{
|
|
297
297
|
int error = 0;
|
|
298
298
|
const char *workdir = git_repository_workdir(repo);
|
|
299
|
+
git_attr_cache *attrcache;
|
|
300
|
+
const char *excludes_file = NULL;
|
|
299
301
|
git_str infopath = GIT_STR_INIT;
|
|
300
302
|
|
|
301
303
|
GIT_ASSERT_ARG(repo);
|
|
@@ -358,10 +360,12 @@ int git_ignore__for_path(
|
|
|
358
360
|
}
|
|
359
361
|
|
|
360
362
|
/* load core.excludesfile */
|
|
361
|
-
|
|
363
|
+
attrcache = git_repository_attr_cache(repo);
|
|
364
|
+
excludes_file = git_attr_cache_excludesfile(attrcache);
|
|
365
|
+
|
|
366
|
+
if (excludes_file != NULL)
|
|
362
367
|
error = push_ignore_file(
|
|
363
|
-
ignores, &ignores->ign_global, NULL,
|
|
364
|
-
git_repository_attr_cache(repo)->cfg_excl_file);
|
|
368
|
+
ignores, &ignores->ign_global, NULL, excludes_file);
|
|
365
369
|
|
|
366
370
|
cleanup:
|
|
367
371
|
git_str_dispose(&infopath);
|
|
@@ -428,13 +432,13 @@ void git_ignore__free(git_ignores *ignores)
|
|
|
428
432
|
git_attr_file__free(file);
|
|
429
433
|
ignores->ign_path.contents[i] = NULL;
|
|
430
434
|
}
|
|
431
|
-
|
|
435
|
+
git_vector_dispose(&ignores->ign_path);
|
|
432
436
|
|
|
433
437
|
git_vector_foreach(&ignores->ign_global, i, file) {
|
|
434
438
|
git_attr_file__free(file);
|
|
435
439
|
ignores->ign_global.contents[i] = NULL;
|
|
436
440
|
}
|
|
437
|
-
|
|
441
|
+
git_vector_dispose(&ignores->ign_global);
|
|
438
442
|
|
|
439
443
|
git_str_dispose(&ignores->dir);
|
|
440
444
|
}
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
#include "pathspec.h"
|
|
18
18
|
#include "ignore.h"
|
|
19
19
|
#include "blob.h"
|
|
20
|
-
#include "idxmap.h"
|
|
21
20
|
#include "diff.h"
|
|
22
21
|
#include "varint.h"
|
|
23
22
|
#include "path.h"
|
|
23
|
+
#include "index_map.h"
|
|
24
24
|
|
|
25
25
|
#include "git2/odb.h"
|
|
26
26
|
#include "git2/oid.h"
|
|
@@ -133,30 +133,6 @@ static int write_index(unsigned char checksum[GIT_HASH_MAX_SIZE], size_t *checks
|
|
|
133
133
|
static void index_entry_free(git_index_entry *entry);
|
|
134
134
|
static void index_entry_reuc_free(git_index_reuc_entry *reuc);
|
|
135
135
|
|
|
136
|
-
GIT_INLINE(int) index_map_set(git_idxmap *map, git_index_entry *e, bool ignore_case)
|
|
137
|
-
{
|
|
138
|
-
if (ignore_case)
|
|
139
|
-
return git_idxmap_icase_set((git_idxmap_icase *) map, e, e);
|
|
140
|
-
else
|
|
141
|
-
return git_idxmap_set(map, e, e);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
GIT_INLINE(int) index_map_delete(git_idxmap *map, git_index_entry *e, bool ignore_case)
|
|
145
|
-
{
|
|
146
|
-
if (ignore_case)
|
|
147
|
-
return git_idxmap_icase_delete((git_idxmap_icase *) map, e);
|
|
148
|
-
else
|
|
149
|
-
return git_idxmap_delete(map, e);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
GIT_INLINE(int) index_map_resize(git_idxmap *map, size_t count, bool ignore_case)
|
|
153
|
-
{
|
|
154
|
-
if (ignore_case)
|
|
155
|
-
return git_idxmap_icase_resize((git_idxmap_icase *) map, count);
|
|
156
|
-
else
|
|
157
|
-
return git_idxmap_resize(map, count);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
136
|
int git_index_entry_srch(const void *key, const void *array_member)
|
|
161
137
|
{
|
|
162
138
|
const struct entry_srch_key *srch_key = key;
|
|
@@ -388,6 +364,7 @@ GIT_INLINE(int) index_find(
|
|
|
388
364
|
void git_index__set_ignore_case(git_index *index, bool ignore_case)
|
|
389
365
|
{
|
|
390
366
|
index->ignore_case = ignore_case;
|
|
367
|
+
index->entries_map.ignore_case = ignore_case;
|
|
391
368
|
|
|
392
369
|
if (ignore_case) {
|
|
393
370
|
index->entries_cmp_path = git__strcasecmp_cb;
|
|
@@ -422,6 +399,7 @@ int git_index__open(
|
|
|
422
399
|
index = git__calloc(1, sizeof(git_index));
|
|
423
400
|
GIT_ERROR_CHECK_ALLOC(index);
|
|
424
401
|
|
|
402
|
+
GIT_ASSERT_ARG(git_oid_type_is_valid(oid_type));
|
|
425
403
|
index->oid_type = oid_type;
|
|
426
404
|
|
|
427
405
|
if (git_pool_init(&index->tree_pool, 1) < 0)
|
|
@@ -438,7 +416,6 @@ int git_index__open(
|
|
|
438
416
|
}
|
|
439
417
|
|
|
440
418
|
if (git_vector_init(&index->entries, 32, git_index_entry_cmp) < 0 ||
|
|
441
|
-
git_idxmap_new(&index->entries_map) < 0 ||
|
|
442
419
|
git_vector_init(&index->names, 8, conflict_name_cmp) < 0 ||
|
|
443
420
|
git_vector_init(&index->reuc, 8, reuc_cmp) < 0 ||
|
|
444
421
|
git_vector_init(&index->deleted, 8, git_index_entry_cmp) < 0)
|
|
@@ -465,9 +442,13 @@ fail:
|
|
|
465
442
|
}
|
|
466
443
|
|
|
467
444
|
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
468
|
-
int git_index_open(
|
|
445
|
+
int git_index_open(
|
|
446
|
+
git_index **index_out,
|
|
447
|
+
const char *index_path,
|
|
448
|
+
const git_index_options *opts)
|
|
469
449
|
{
|
|
470
|
-
return git_index__open(index_out, index_path,
|
|
450
|
+
return git_index__open(index_out, index_path,
|
|
451
|
+
opts && opts->oid_type ? opts->oid_type : GIT_OID_DEFAULT);
|
|
471
452
|
}
|
|
472
453
|
#else
|
|
473
454
|
int git_index_open(git_index **index_out, const char *index_path)
|
|
@@ -482,9 +463,10 @@ int git_index__new(git_index **out, git_oid_t oid_type)
|
|
|
482
463
|
}
|
|
483
464
|
|
|
484
465
|
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
485
|
-
int git_index_new(git_index **out,
|
|
466
|
+
int git_index_new(git_index **out, const git_index_options *opts)
|
|
486
467
|
{
|
|
487
|
-
return git_index__new(out,
|
|
468
|
+
return git_index__new(out,
|
|
469
|
+
opts && opts->oid_type ? opts->oid_type : GIT_OID_DEFAULT);
|
|
488
470
|
}
|
|
489
471
|
#else
|
|
490
472
|
int git_index_new(git_index **out)
|
|
@@ -502,11 +484,11 @@ static void index_free(git_index *index)
|
|
|
502
484
|
return;
|
|
503
485
|
|
|
504
486
|
git_index_clear(index);
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
487
|
+
git_index_entrymap_dispose(&index->entries_map);
|
|
488
|
+
git_vector_dispose(&index->entries);
|
|
489
|
+
git_vector_dispose(&index->names);
|
|
490
|
+
git_vector_dispose(&index->reuc);
|
|
491
|
+
git_vector_dispose(&index->deleted);
|
|
510
492
|
|
|
511
493
|
git__free(index->index_file_path);
|
|
512
494
|
|
|
@@ -547,7 +529,7 @@ static int index_remove_entry(git_index *index, size_t pos)
|
|
|
547
529
|
|
|
548
530
|
if (entry != NULL) {
|
|
549
531
|
git_tree_cache_invalidate_path(index->tree, entry->path);
|
|
550
|
-
|
|
532
|
+
git_index_entrymap_remove(&index->entries_map, entry);
|
|
551
533
|
}
|
|
552
534
|
|
|
553
535
|
error = git_vector_remove(&index->entries, pos);
|
|
@@ -575,7 +557,8 @@ int git_index_clear(git_index *index)
|
|
|
575
557
|
index->tree = NULL;
|
|
576
558
|
git_pool_clear(&index->tree_pool);
|
|
577
559
|
|
|
578
|
-
|
|
560
|
+
git_index_entrymap_clear(&index->entries_map);
|
|
561
|
+
|
|
579
562
|
while (!error && index->entries.length > 0)
|
|
580
563
|
error = index_remove_entry(index, index->entries.length - 1);
|
|
581
564
|
|
|
@@ -786,8 +769,10 @@ static int truncate_racily_clean(git_index *index)
|
|
|
786
769
|
diff_opts.pathspec.count = paths.length;
|
|
787
770
|
diff_opts.pathspec.strings = (char **)paths.contents;
|
|
788
771
|
|
|
789
|
-
if ((error = git_diff_index_to_workdir(&diff, INDEX_OWNER(index), index, &diff_opts)) < 0)
|
|
772
|
+
if ((error = git_diff_index_to_workdir(&diff, INDEX_OWNER(index), index, &diff_opts)) < 0) {
|
|
773
|
+
git_vector_dispose(&paths);
|
|
790
774
|
return error;
|
|
775
|
+
}
|
|
791
776
|
|
|
792
777
|
git_vector_foreach(&diff->deltas, i, delta) {
|
|
793
778
|
entry = (git_index_entry *)git_index_get_bypath(index, delta->old_file.path, 0);
|
|
@@ -803,7 +788,7 @@ static int truncate_racily_clean(git_index *index)
|
|
|
803
788
|
|
|
804
789
|
done:
|
|
805
790
|
git_diff_free(diff);
|
|
806
|
-
|
|
791
|
+
git_vector_dispose(&paths);
|
|
807
792
|
return 0;
|
|
808
793
|
}
|
|
809
794
|
|
|
@@ -904,14 +889,9 @@ const git_index_entry *git_index_get_bypath(
|
|
|
904
889
|
key.path = path;
|
|
905
890
|
GIT_INDEX_ENTRY_STAGE_SET(&key, stage);
|
|
906
891
|
|
|
907
|
-
if (index->
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
value = git_idxmap_get(index->entries_map, &key);
|
|
911
|
-
|
|
912
|
-
if (!value) {
|
|
913
|
-
git_error_set(GIT_ERROR_INDEX, "index does not contain '%s'", path);
|
|
914
|
-
return NULL;
|
|
892
|
+
if (git_index_entrymap_get(&value, &index->entries_map, &key) != 0) {
|
|
893
|
+
git_error_set(GIT_ERROR_INDEX, "index does not contain '%s'", path);
|
|
894
|
+
return NULL;
|
|
915
895
|
}
|
|
916
896
|
|
|
917
897
|
return value;
|
|
@@ -1453,7 +1433,7 @@ static int index_insert(
|
|
|
1453
1433
|
* check for dups, this is actually cheaper in the long run.)
|
|
1454
1434
|
*/
|
|
1455
1435
|
if ((error = git_vector_insert_sorted(&index->entries, entry, index_no_dups)) < 0 ||
|
|
1456
|
-
(error =
|
|
1436
|
+
(error = git_index_entrymap_put(&index->entries_map, entry)) < 0)
|
|
1457
1437
|
goto out;
|
|
1458
1438
|
}
|
|
1459
1439
|
|
|
@@ -1612,15 +1592,17 @@ int git_index_add_bypath(git_index *index, const char *path)
|
|
|
1612
1592
|
|
|
1613
1593
|
if (ret == GIT_EDIRECTORY) {
|
|
1614
1594
|
git_submodule *sm;
|
|
1615
|
-
|
|
1595
|
+
git_error *last_error;
|
|
1616
1596
|
|
|
1617
|
-
|
|
1597
|
+
git_error_save(&last_error);
|
|
1618
1598
|
|
|
1619
1599
|
ret = git_submodule_lookup(&sm, INDEX_OWNER(index), path);
|
|
1620
|
-
if (ret == GIT_ENOTFOUND)
|
|
1621
|
-
|
|
1600
|
+
if (ret == GIT_ENOTFOUND) {
|
|
1601
|
+
git_error_restore(last_error);
|
|
1602
|
+
return GIT_EDIRECTORY;
|
|
1603
|
+
}
|
|
1622
1604
|
|
|
1623
|
-
|
|
1605
|
+
git_error_free(last_error);
|
|
1624
1606
|
|
|
1625
1607
|
/*
|
|
1626
1608
|
* EEXISTS means that there is a repository at that path, but it's not known
|
|
@@ -1680,8 +1662,7 @@ int git_index__fill(git_index *index, const git_vector *source_entries)
|
|
|
1680
1662
|
return 0;
|
|
1681
1663
|
|
|
1682
1664
|
if (git_vector_size_hint(&index->entries, source_entries->length) < 0 ||
|
|
1683
|
-
|
|
1684
|
-
index->ignore_case) < 0)
|
|
1665
|
+
git_index_entrymap_resize(&index->entries_map, (size_t)(source_entries->length * 1.3)) < 0)
|
|
1685
1666
|
return -1;
|
|
1686
1667
|
|
|
1687
1668
|
git_vector_foreach(source_entries, i, source_entry) {
|
|
@@ -1694,10 +1675,8 @@ int git_index__fill(git_index *index, const git_vector *source_entries)
|
|
|
1694
1675
|
entry->flags_extended |= GIT_INDEX_ENTRY_UPTODATE;
|
|
1695
1676
|
entry->mode = git_index__create_mode(entry->mode);
|
|
1696
1677
|
|
|
1697
|
-
if ((error = git_vector_insert(&index->entries, entry)) < 0
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
if ((error = index_map_set(index->entries_map, entry, index->ignore_case)) < 0)
|
|
1678
|
+
if ((error = git_vector_insert(&index->entries, entry)) < 0 ||
|
|
1679
|
+
(error = git_index_entrymap_put(&index->entries_map, entry)) < 0)
|
|
1701
1680
|
break;
|
|
1702
1681
|
|
|
1703
1682
|
index->dirty = 1;
|
|
@@ -1740,7 +1719,7 @@ int git_index_remove(git_index *index, const char *path, int stage)
|
|
|
1740
1719
|
remove_key.path = path;
|
|
1741
1720
|
GIT_INDEX_ENTRY_STAGE_SET(&remove_key, stage);
|
|
1742
1721
|
|
|
1743
|
-
|
|
1722
|
+
git_index_entrymap_remove(&index->entries_map, &remove_key);
|
|
1744
1723
|
|
|
1745
1724
|
if (index_find(&position, index, path, 0, stage) < 0) {
|
|
1746
1725
|
git_error_set(
|
|
@@ -2758,6 +2737,7 @@ static int parse_index(git_index *index, const char *buffer, size_t buffer_size)
|
|
|
2758
2737
|
unsigned int i;
|
|
2759
2738
|
struct index_header header = { 0 };
|
|
2760
2739
|
unsigned char checksum[GIT_HASH_MAX_SIZE];
|
|
2740
|
+
unsigned char zero_checksum[GIT_HASH_MAX_SIZE] = { 0 };
|
|
2761
2741
|
size_t checksum_size = git_hash_size(git_oid_algorithm(index->oid_type));
|
|
2762
2742
|
const char *last = NULL;
|
|
2763
2743
|
const char *empty = "";
|
|
@@ -2792,7 +2772,7 @@ static int parse_index(git_index *index, const char *buffer, size_t buffer_size)
|
|
|
2792
2772
|
|
|
2793
2773
|
GIT_ASSERT(!index->entries.length);
|
|
2794
2774
|
|
|
2795
|
-
if ((error =
|
|
2775
|
+
if ((error = git_index_entrymap_resize(&index->entries_map, header.entry_count)) < 0)
|
|
2796
2776
|
return error;
|
|
2797
2777
|
|
|
2798
2778
|
/* Parse all the entries */
|
|
@@ -2810,7 +2790,7 @@ static int parse_index(git_index *index, const char *buffer, size_t buffer_size)
|
|
|
2810
2790
|
goto done;
|
|
2811
2791
|
}
|
|
2812
2792
|
|
|
2813
|
-
if ((error =
|
|
2793
|
+
if ((error = git_index_entrymap_put(&index->entries_map, entry)) < 0) {
|
|
2814
2794
|
index_entry_free(entry);
|
|
2815
2795
|
goto done;
|
|
2816
2796
|
}
|
|
@@ -2847,8 +2827,11 @@ static int parse_index(git_index *index, const char *buffer, size_t buffer_size)
|
|
|
2847
2827
|
/*
|
|
2848
2828
|
* SHA-1 or SHA-256 (depending on the repository's object format)
|
|
2849
2829
|
* over the content of the index file before this checksum.
|
|
2830
|
+
* Note: checksum may be 0 if the index was written by a client
|
|
2831
|
+
* where index.skipHash was set to true.
|
|
2850
2832
|
*/
|
|
2851
|
-
if (memcmp(
|
|
2833
|
+
if (memcmp(zero_checksum, buffer, checksum_size) != 0 &&
|
|
2834
|
+
memcmp(checksum, buffer, checksum_size) != 0) {
|
|
2852
2835
|
error = index_error_invalid(
|
|
2853
2836
|
"calculated checksum does not match expected");
|
|
2854
2837
|
goto done;
|
|
@@ -3083,7 +3066,7 @@ static int write_entries(git_index *index, git_filebuf *file)
|
|
|
3083
3066
|
}
|
|
3084
3067
|
|
|
3085
3068
|
done:
|
|
3086
|
-
|
|
3069
|
+
git_vector_dispose(&case_sorted);
|
|
3087
3070
|
return error;
|
|
3088
3071
|
}
|
|
3089
3072
|
|
|
@@ -3359,14 +3342,11 @@ int git_index_read_tree(git_index *index, const git_tree *tree)
|
|
|
3359
3342
|
{
|
|
3360
3343
|
int error = 0;
|
|
3361
3344
|
git_vector entries = GIT_VECTOR_INIT;
|
|
3362
|
-
|
|
3345
|
+
git_index_entrymap entries_map = GIT_INDEX_ENTRYMAP_INIT;
|
|
3363
3346
|
read_tree_data data;
|
|
3364
3347
|
size_t i;
|
|
3365
3348
|
git_index_entry *e;
|
|
3366
3349
|
|
|
3367
|
-
if (git_idxmap_new(&entries_map) < 0)
|
|
3368
|
-
return -1;
|
|
3369
|
-
|
|
3370
3350
|
git_vector_set_cmp(&entries, index->entries._cmp); /* match sort */
|
|
3371
3351
|
|
|
3372
3352
|
data.index = index;
|
|
@@ -3382,11 +3362,11 @@ int git_index_read_tree(git_index *index, const git_tree *tree)
|
|
|
3382
3362
|
if ((error = git_tree_walk(tree, GIT_TREEWALK_POST, read_tree_cb, &data)) < 0)
|
|
3383
3363
|
goto cleanup;
|
|
3384
3364
|
|
|
3385
|
-
if ((error =
|
|
3365
|
+
if ((error = git_index_entrymap_resize(&entries_map, entries.length)) < 0)
|
|
3386
3366
|
goto cleanup;
|
|
3387
3367
|
|
|
3388
3368
|
git_vector_foreach(&entries, i, e) {
|
|
3389
|
-
if ((error =
|
|
3369
|
+
if ((error = git_index_entrymap_put(&entries_map, e)) < 0) {
|
|
3390
3370
|
git_error_set(GIT_ERROR_INDEX, "failed to insert entry into map");
|
|
3391
3371
|
return error;
|
|
3392
3372
|
}
|
|
@@ -3396,18 +3376,18 @@ int git_index_read_tree(git_index *index, const git_tree *tree)
|
|
|
3396
3376
|
|
|
3397
3377
|
git_vector_sort(&entries);
|
|
3398
3378
|
|
|
3399
|
-
if ((error = git_index_clear(index)) < 0)
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
}
|
|
3379
|
+
if ((error = git_index_clear(index)) < 0)
|
|
3380
|
+
goto cleanup;
|
|
3381
|
+
|
|
3382
|
+
git_vector_swap(&entries, &index->entries);
|
|
3383
|
+
git_index_entrymap_swap(&entries_map, &index->entries_map);
|
|
3405
3384
|
|
|
3406
3385
|
index->dirty = 1;
|
|
3407
3386
|
|
|
3408
3387
|
cleanup:
|
|
3409
|
-
|
|
3410
|
-
|
|
3388
|
+
git_vector_dispose(&entries);
|
|
3389
|
+
git_index_entrymap_dispose(&entries_map);
|
|
3390
|
+
|
|
3411
3391
|
if (error < 0)
|
|
3412
3392
|
return error;
|
|
3413
3393
|
|
|
@@ -3423,7 +3403,7 @@ static int git_index_read_iterator(
|
|
|
3423
3403
|
{
|
|
3424
3404
|
git_vector new_entries = GIT_VECTOR_INIT,
|
|
3425
3405
|
remove_entries = GIT_VECTOR_INIT;
|
|
3426
|
-
|
|
3406
|
+
git_index_entrymap new_entries_map = GIT_INDEX_ENTRYMAP_INIT;
|
|
3427
3407
|
git_iterator *index_iterator = NULL;
|
|
3428
3408
|
git_iterator_options opts = GIT_ITERATOR_OPTIONS_INIT;
|
|
3429
3409
|
const git_index_entry *old_entry, *new_entry;
|
|
@@ -3434,12 +3414,11 @@ static int git_index_read_iterator(
|
|
|
3434
3414
|
GIT_ASSERT((new_iterator->flags & GIT_ITERATOR_DONT_IGNORE_CASE));
|
|
3435
3415
|
|
|
3436
3416
|
if ((error = git_vector_init(&new_entries, new_length_hint, index->entries._cmp)) < 0 ||
|
|
3437
|
-
(error = git_vector_init(&remove_entries, index->entries.length, NULL)) < 0
|
|
3438
|
-
(error = git_idxmap_new(&new_entries_map)) < 0)
|
|
3417
|
+
(error = git_vector_init(&remove_entries, index->entries.length, NULL)) < 0)
|
|
3439
3418
|
goto done;
|
|
3440
3419
|
|
|
3441
|
-
if (new_length_hint &&
|
|
3442
|
-
|
|
3420
|
+
if (new_length_hint &&
|
|
3421
|
+
(error = git_index_entrymap_resize(&new_entries_map, new_length_hint)) < 0)
|
|
3443
3422
|
goto done;
|
|
3444
3423
|
|
|
3445
3424
|
opts.flags = GIT_ITERATOR_DONT_IGNORE_CASE |
|
|
@@ -3504,8 +3483,7 @@ static int git_index_read_iterator(
|
|
|
3504
3483
|
|
|
3505
3484
|
if (add_entry) {
|
|
3506
3485
|
if ((error = git_vector_insert(&new_entries, add_entry)) == 0)
|
|
3507
|
-
error =
|
|
3508
|
-
index->ignore_case);
|
|
3486
|
+
error = git_index_entrymap_put(&new_entries_map, add_entry);
|
|
3509
3487
|
}
|
|
3510
3488
|
|
|
3511
3489
|
if (remove_entry && error >= 0)
|
|
@@ -3534,7 +3512,7 @@ static int git_index_read_iterator(
|
|
|
3534
3512
|
goto done;
|
|
3535
3513
|
|
|
3536
3514
|
git_vector_swap(&new_entries, &index->entries);
|
|
3537
|
-
|
|
3515
|
+
git_index_entrymap_swap(&index->entries_map, &new_entries_map);
|
|
3538
3516
|
|
|
3539
3517
|
git_vector_foreach(&remove_entries, i, entry) {
|
|
3540
3518
|
if (index->tree)
|
|
@@ -3549,9 +3527,9 @@ static int git_index_read_iterator(
|
|
|
3549
3527
|
error = 0;
|
|
3550
3528
|
|
|
3551
3529
|
done:
|
|
3552
|
-
|
|
3553
|
-
|
|
3554
|
-
|
|
3530
|
+
git_index_entrymap_dispose(&new_entries_map);
|
|
3531
|
+
git_vector_dispose(&new_entries);
|
|
3532
|
+
git_vector_dispose(&remove_entries);
|
|
3555
3533
|
git_iterator_free(index_iterator);
|
|
3556
3534
|
return error;
|
|
3557
3535
|
}
|
|
@@ -3852,7 +3830,7 @@ int git_index_snapshot_new(git_vector *snap, git_index *index)
|
|
|
3852
3830
|
|
|
3853
3831
|
void git_index_snapshot_release(git_vector *snap, git_index *index)
|
|
3854
3832
|
{
|
|
3855
|
-
|
|
3833
|
+
git_vector_dispose(snap);
|
|
3856
3834
|
|
|
3857
3835
|
git_atomic32_dec(&index->readers);
|
|
3858
3836
|
|