rugged 1.6.3 → 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/ext/rugged/rugged_allocator.c +0 -54
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +25 -17
- data/vendor/libgit2/COPYING +195 -1
- data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
- data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +4 -4
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +34 -6
- data/vendor/libgit2/cmake/SelectHashes.cmake +32 -11
- data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
- data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
- data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
- 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/pcre/LICENCE +5 -5
- data/vendor/libgit2/deps/pcre/pcre.h +2 -2
- data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
- data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/git-xdiff.h +4 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.c +19 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.h +2 -4
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.c +3 -3
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xhistogram.c +7 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmacros.h +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmerge.c +22 -20
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xpatience.c +21 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.c +13 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.c +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.h +2 -1
- 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 +138 -56
- 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 +77 -9
- data/vendor/libgit2/include/git2/email.h +9 -29
- data/vendor/libgit2/include/git2/errors.h +49 -74
- 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 +100 -6
- 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 +24 -25
- 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 +112 -18
- data/vendor/libgit2/include/git2/repository.h +61 -15
- 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 -34
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +109 -58
- 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 +47 -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 +25 -2
- data/vendor/libgit2/include/git2/sys/transport.h +44 -5
- 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 +19 -7
- data/vendor/libgit2/src/CMakeLists.txt +40 -15
- 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 +27 -13
- 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 +60 -10
- data/vendor/libgit2/src/cli/progress.h +16 -4
- 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 +27 -27
- data/vendor/libgit2/src/libgit2/annotated_commit.c +2 -2
- data/vendor/libgit2/src/libgit2/annotated_commit.h +1 -1
- data/vendor/libgit2/src/libgit2/apply.c +14 -16
- 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 +152 -59
- data/vendor/libgit2/src/libgit2/blame.h +1 -0
- data/vendor/libgit2/src/libgit2/blame_git.c +0 -1
- data/vendor/libgit2/src/libgit2/branch.c +2 -2
- 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 +4 -5
- data/vendor/libgit2/src/libgit2/clone.c +186 -164
- data/vendor/libgit2/src/libgit2/clone.h +4 -1
- data/vendor/libgit2/src/libgit2/commit.c +123 -9
- data/vendor/libgit2/src/libgit2/commit_graph.c +166 -88
- data/vendor/libgit2/src/libgit2/commit_graph.h +21 -6
- data/vendor/libgit2/src/libgit2/commit_list.c +12 -5
- data/vendor/libgit2/src/libgit2/commit_list.h +1 -0
- data/vendor/libgit2/src/libgit2/config.c +394 -300
- 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 +113 -96
- 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 +34 -31
- data/vendor/libgit2/src/libgit2/diff.c +17 -8
- data/vendor/libgit2/src/libgit2/diff.h +6 -6
- 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_file.c +7 -7
- data/vendor/libgit2/src/libgit2/diff_generate.c +39 -18
- data/vendor/libgit2/src/libgit2/diff_parse.c +22 -6
- data/vendor/libgit2/src/libgit2/diff_print.c +88 -13
- data/vendor/libgit2/src/libgit2/diff_tform.c +40 -12
- data/vendor/libgit2/src/libgit2/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/libgit2/email.c +5 -3
- data/vendor/libgit2/src/libgit2/fetch.c +39 -9
- data/vendor/libgit2/src/libgit2/fetch.h +0 -2
- data/vendor/libgit2/src/libgit2/fetchhead.c +11 -9
- 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 +270 -0
- data/vendor/libgit2/src/libgit2/grafts.h +35 -0
- data/vendor/libgit2/src/libgit2/graph.c +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/libgit2/ident.c +3 -3
- data/vendor/libgit2/src/libgit2/ignore.c +9 -5
- data/vendor/libgit2/src/libgit2/index.c +392 -208
- data/vendor/libgit2/src/libgit2/index.h +16 -3
- 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 +44 -41
- data/vendor/libgit2/src/libgit2/iterator.c +34 -13
- data/vendor/libgit2/src/libgit2/iterator.h +3 -0
- data/vendor/libgit2/src/libgit2/libgit2.c +155 -331
- data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
- data/vendor/libgit2/src/libgit2/merge.c +56 -46
- data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
- data/vendor/libgit2/src/libgit2/merge_file.c +0 -2
- data/vendor/libgit2/src/libgit2/midx.c +86 -44
- data/vendor/libgit2/src/libgit2/midx.h +13 -3
- data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
- data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
- data/vendor/libgit2/src/libgit2/notes.c +9 -8
- data/vendor/libgit2/src/libgit2/object.c +42 -16
- data/vendor/libgit2/src/libgit2/object.h +6 -0
- data/vendor/libgit2/src/libgit2/odb.c +16 -9
- data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
- data/vendor/libgit2/src/libgit2/odb_pack.c +28 -7
- data/vendor/libgit2/src/libgit2/oid.c +35 -2
- data/vendor/libgit2/src/libgit2/oid.h +11 -0
- data/vendor/libgit2/src/libgit2/oidarray.c +49 -3
- data/vendor/libgit2/src/libgit2/oidarray.h +5 -1
- data/vendor/libgit2/src/libgit2/pack-objects.c +77 -43
- data/vendor/libgit2/src/libgit2/pack-objects.h +17 -6
- data/vendor/libgit2/src/libgit2/pack.c +33 -27
- data/vendor/libgit2/src/libgit2/pack.h +15 -10
- data/vendor/libgit2/src/libgit2/parse.c +7 -4
- data/vendor/libgit2/src/libgit2/parse.h +1 -1
- data/vendor/libgit2/src/libgit2/patch.h +7 -1
- data/vendor/libgit2/src/libgit2/patch_generate.c +24 -5
- data/vendor/libgit2/src/libgit2/patch_parse.c +18 -10
- 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 +81 -30
- data/vendor/libgit2/src/libgit2/push.h +1 -0
- data/vendor/libgit2/src/libgit2/reader.c +1 -1
- data/vendor/libgit2/src/libgit2/rebase.c +72 -84
- data/vendor/libgit2/src/libgit2/refdb_fs.c +146 -70
- 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 +34 -8
- 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 +136 -67
- data/vendor/libgit2/src/libgit2/remote.h +1 -0
- data/vendor/libgit2/src/libgit2/repository.c +789 -330
- data/vendor/libgit2/src/libgit2/repository.h +22 -3
- data/vendor/libgit2/src/libgit2/reset.c +2 -2
- data/vendor/libgit2/src/libgit2/revert.c +9 -13
- data/vendor/libgit2/src/libgit2/revparse.c +6 -3
- data/vendor/libgit2/src/libgit2/revwalk.c +36 -11
- 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/stash.c +9 -8
- data/vendor/libgit2/src/libgit2/status.c +1 -1
- data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -61
- data/vendor/libgit2/src/libgit2/streams/openssl.c +40 -23
- 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/schannel.c +715 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
- data/vendor/libgit2/src/libgit2/streams/socket.c +237 -51
- data/vendor/libgit2/src/libgit2/streams/socket.h +3 -1
- data/vendor/libgit2/src/libgit2/streams/stransport.c +79 -19
- data/vendor/libgit2/src/libgit2/streams/tls.c +5 -0
- data/vendor/libgit2/src/libgit2/submodule.c +106 -63
- data/vendor/libgit2/src/libgit2/submodule.h +9 -10
- 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/auth.h +1 -2
- data/vendor/libgit2/src/libgit2/transports/{auth_negotiate.c → auth_gssapi.c} +32 -32
- data/vendor/libgit2/src/libgit2/transports/auth_negotiate.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/auth_ntlm.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/{auth_ntlm.c → auth_ntlmclient.c} +12 -12
- data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
- data/vendor/libgit2/src/libgit2/transports/credential.c +1 -1
- data/vendor/libgit2/src/libgit2/transports/git.c +7 -8
- data/vendor/libgit2/src/libgit2/transports/http.c +8 -4
- data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
- data/vendor/libgit2/src/libgit2/transports/httpclient.c +117 -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 +21 -11
- data/vendor/libgit2/src/libgit2/transports/smart.c +50 -32
- data/vendor/libgit2/src/libgit2/transports/smart.h +26 -9
- data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +139 -18
- data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +209 -57
- 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 +48 -21
- data/vendor/libgit2/src/libgit2/tree-cache.c +26 -16
- data/vendor/libgit2/src/libgit2/tree-cache.h +5 -3
- data/vendor/libgit2/src/libgit2/tree.c +35 -27
- data/vendor/libgit2/src/libgit2/tree.h +3 -2
- data/vendor/libgit2/src/libgit2/worktree.c +39 -27
- data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
- data/vendor/libgit2/src/util/alloc.c +69 -7
- data/vendor/libgit2/src/util/alloc.h +34 -9
- 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/failalloc.c +0 -60
- data/vendor/libgit2/src/util/allocators/failalloc.h +0 -6
- data/vendor/libgit2/src/util/allocators/stdalloc.c +2 -115
- data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +0 -68
- data/vendor/libgit2/src/util/array.h +24 -18
- data/vendor/libgit2/src/util/cc-compat.h +4 -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/filebuf.c +6 -1
- data/vendor/libgit2/src/util/filebuf.h +19 -6
- data/vendor/libgit2/src/util/fs_path.c +16 -5
- data/vendor/libgit2/src/util/fs_path.h +23 -0
- data/vendor/libgit2/src/util/futils.c +14 -10
- data/vendor/libgit2/src/util/futils.h +13 -4
- data/vendor/libgit2/src/util/git2_features.h.in +21 -4
- 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 +318 -161
- data/vendor/libgit2/src/util/net.h +27 -0
- data/vendor/libgit2/src/util/pool.c +1 -1
- data/vendor/libgit2/src/util/pool.h +5 -0
- data/vendor/libgit2/src/util/posix.c +54 -0
- data/vendor/libgit2/src/util/posix.h +22 -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 +6 -10
- 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/staticstr.h +66 -0
- 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 +17 -12
- data/vendor/libgit2/src/util/util.h +28 -54
- data/vendor/libgit2/src/util/vector.c +3 -3
- data/vendor/libgit2/src/util/vector.h +2 -2
- data/vendor/libgit2/src/util/win32/error.c +1 -1
- data/vendor/libgit2/src/util/win32/path_w32.c +8 -8
- data/vendor/libgit2/src/util/win32/posix_w32.c +30 -7
- data/vendor/libgit2/src/util/win32/process.c +506 -0
- data/vendor/libgit2/src/util/win32/utf-conv.c +73 -75
- data/vendor/libgit2/src/util/win32/utf-conv.h +81 -14
- data/vendor/libgit2/src/util/win32/w32_util.c +1 -1
- metadata +72 -49
- data/vendor/libgit2/cmake/SelectWinHTTP.cmake +0 -17
- 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 -238
- 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/netops.c +0 -124
- data/vendor/libgit2/src/libgit2/netops.h +0 -68
- 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 -84
- data/vendor/libgit2/src/libgit2/threadstate.h +0 -24
- 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
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiff.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xinclude.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xtypes.h +0 -0
@@ -8,12 +8,12 @@
|
|
8
8
|
#include "config_backend.h"
|
9
9
|
|
10
10
|
#include "config.h"
|
11
|
-
#include "
|
11
|
+
#include "config_list.h"
|
12
12
|
|
13
13
|
typedef struct {
|
14
14
|
git_config_backend parent;
|
15
15
|
git_mutex values_mutex;
|
16
|
-
|
16
|
+
git_config_list *config_list;
|
17
17
|
git_config_backend *source;
|
18
18
|
} config_snapshot_backend;
|
19
19
|
|
@@ -28,31 +28,27 @@ static int config_snapshot_iterator(
|
|
28
28
|
struct git_config_backend *backend)
|
29
29
|
{
|
30
30
|
config_snapshot_backend *b = GIT_CONTAINER_OF(backend, config_snapshot_backend, parent);
|
31
|
-
|
31
|
+
git_config_list *config_list = NULL;
|
32
32
|
int error;
|
33
33
|
|
34
|
-
if ((error =
|
35
|
-
(error =
|
34
|
+
if ((error = git_config_list_dup(&config_list, b->config_list)) < 0 ||
|
35
|
+
(error = git_config_list_iterator_new(iter, config_list)) < 0)
|
36
36
|
goto out;
|
37
37
|
|
38
38
|
out:
|
39
|
-
/* Let iterator delete duplicated
|
40
|
-
|
39
|
+
/* Let iterator delete duplicated config_list when it's done */
|
40
|
+
git_config_list_free(config_list);
|
41
41
|
return error;
|
42
42
|
}
|
43
43
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
git_config_entries_free(entries);
|
49
|
-
}
|
50
|
-
|
51
|
-
static int config_snapshot_get(git_config_backend *cfg, const char *key, git_config_entry **out)
|
44
|
+
static int config_snapshot_get(
|
45
|
+
git_config_backend *cfg,
|
46
|
+
const char *key,
|
47
|
+
git_config_backend_entry **out)
|
52
48
|
{
|
53
49
|
config_snapshot_backend *b = GIT_CONTAINER_OF(cfg, config_snapshot_backend, parent);
|
54
|
-
|
55
|
-
|
50
|
+
git_config_list *config_list = NULL;
|
51
|
+
git_config_list_entry *entry;
|
56
52
|
int error = 0;
|
57
53
|
|
58
54
|
if (git_mutex_lock(&b->values_mutex) < 0) {
|
@@ -60,19 +56,16 @@ static int config_snapshot_get(git_config_backend *cfg, const char *key, git_con
|
|
60
56
|
return -1;
|
61
57
|
}
|
62
58
|
|
63
|
-
|
64
|
-
|
59
|
+
config_list = b->config_list;
|
60
|
+
git_config_list_incref(config_list);
|
65
61
|
git_mutex_unlock(&b->values_mutex);
|
66
62
|
|
67
|
-
if ((error = (
|
68
|
-
|
63
|
+
if ((error = (git_config_list_get(&entry, config_list, key))) < 0) {
|
64
|
+
git_config_list_free(config_list);
|
69
65
|
return error;
|
70
66
|
}
|
71
67
|
|
72
|
-
|
73
|
-
entry->payload = entries;
|
74
|
-
*out = entry;
|
75
|
-
|
68
|
+
*out = &entry->base;
|
76
69
|
return 0;
|
77
70
|
}
|
78
71
|
|
@@ -135,7 +128,7 @@ static void config_snapshot_free(git_config_backend *_backend)
|
|
135
128
|
if (backend == NULL)
|
136
129
|
return;
|
137
130
|
|
138
|
-
|
131
|
+
git_config_list_free(backend->config_list);
|
139
132
|
git_mutex_free(&backend->values_mutex);
|
140
133
|
git__free(backend);
|
141
134
|
}
|
@@ -143,7 +136,7 @@ static void config_snapshot_free(git_config_backend *_backend)
|
|
143
136
|
static int config_snapshot_open(git_config_backend *cfg, git_config_level_t level, const git_repository *repo)
|
144
137
|
{
|
145
138
|
config_snapshot_backend *b = GIT_CONTAINER_OF(cfg, config_snapshot_backend, parent);
|
146
|
-
|
139
|
+
git_config_list *config_list = NULL;
|
147
140
|
git_config_iterator *it = NULL;
|
148
141
|
git_config_entry *entry;
|
149
142
|
int error;
|
@@ -152,12 +145,12 @@ static int config_snapshot_open(git_config_backend *cfg, git_config_level_t leve
|
|
152
145
|
GIT_UNUSED(level);
|
153
146
|
GIT_UNUSED(repo);
|
154
147
|
|
155
|
-
if ((error =
|
148
|
+
if ((error = git_config_list_new(&config_list)) < 0 ||
|
156
149
|
(error = b->source->iterator(&it, b->source)) < 0)
|
157
150
|
goto out;
|
158
151
|
|
159
152
|
while ((error = git_config_next(&entry, it)) == 0)
|
160
|
-
if ((error =
|
153
|
+
if ((error = git_config_list_dup_entry(config_list, entry)) < 0)
|
161
154
|
goto out;
|
162
155
|
|
163
156
|
if (error < 0) {
|
@@ -166,12 +159,12 @@ static int config_snapshot_open(git_config_backend *cfg, git_config_level_t leve
|
|
166
159
|
error = 0;
|
167
160
|
}
|
168
161
|
|
169
|
-
b->
|
162
|
+
b->config_list = config_list;
|
170
163
|
|
171
164
|
out:
|
172
165
|
git_config_iterator_free(it);
|
173
166
|
if (error)
|
174
|
-
|
167
|
+
git_config_list_free(config_list);
|
175
168
|
return error;
|
176
169
|
}
|
177
170
|
|
@@ -14,7 +14,6 @@
|
|
14
14
|
#include "buf.h"
|
15
15
|
#include "commit.h"
|
16
16
|
#include "commit_list.h"
|
17
|
-
#include "oidmap.h"
|
18
17
|
#include "refs.h"
|
19
18
|
#include "repository.h"
|
20
19
|
#include "revwalk.h"
|
@@ -22,6 +21,7 @@
|
|
22
21
|
#include "tag.h"
|
23
22
|
#include "vector.h"
|
24
23
|
#include "wildmatch.h"
|
24
|
+
#include "hashmap_oid.h"
|
25
25
|
|
26
26
|
/* Ported from https://github.com/git/git/blob/89dde7882f71f846ccd0359756d27bebc31108de/builtin/describe.c */
|
27
27
|
|
@@ -32,20 +32,22 @@ struct commit_name {
|
|
32
32
|
git_oid sha1;
|
33
33
|
char *path;
|
34
34
|
|
35
|
-
/*
|
35
|
+
/* The original key for the hashmap */
|
36
36
|
git_oid peeled;
|
37
37
|
};
|
38
38
|
|
39
|
-
|
40
|
-
{
|
41
|
-
return git_oidmap_get(map, key);
|
42
|
-
}
|
39
|
+
GIT_HASHMAP_OID_SETUP(git_describe_oidmap, struct commit_name *);
|
43
40
|
|
44
41
|
static struct commit_name *find_commit_name(
|
45
|
-
|
42
|
+
git_describe_oidmap *names,
|
46
43
|
const git_oid *peeled)
|
47
44
|
{
|
48
|
-
|
45
|
+
struct commit_name *result;
|
46
|
+
|
47
|
+
if (git_describe_oidmap_get(&result, names, peeled) == 0)
|
48
|
+
return result;
|
49
|
+
|
50
|
+
return NULL;
|
49
51
|
}
|
50
52
|
|
51
53
|
static int replace_name(
|
@@ -92,7 +94,7 @@ static int replace_name(
|
|
92
94
|
|
93
95
|
static int add_to_known_names(
|
94
96
|
git_repository *repo,
|
95
|
-
|
97
|
+
git_describe_oidmap *names,
|
96
98
|
const char *path,
|
97
99
|
const git_oid *peeled,
|
98
100
|
unsigned int prio,
|
@@ -121,7 +123,7 @@ static int add_to_known_names(
|
|
121
123
|
e->path = git__strdup(path);
|
122
124
|
git_oid_cpy(&e->peeled, peeled);
|
123
125
|
|
124
|
-
if (!found &&
|
126
|
+
if (!found && git_describe_oidmap_put(names, &e->peeled, e) < 0)
|
125
127
|
return -1;
|
126
128
|
}
|
127
129
|
else
|
@@ -174,7 +176,7 @@ struct get_name_data
|
|
174
176
|
{
|
175
177
|
git_describe_options *opts;
|
176
178
|
git_repository *repo;
|
177
|
-
|
179
|
+
git_describe_oidmap names;
|
178
180
|
git_describe_result *result;
|
179
181
|
};
|
180
182
|
|
@@ -240,7 +242,7 @@ static int get_name(const char *refname, void *payload)
|
|
240
242
|
else
|
241
243
|
prio = 0;
|
242
244
|
|
243
|
-
add_to_known_names(data->repo, data->names,
|
245
|
+
add_to_known_names(data->repo, &data->names,
|
244
246
|
all ? refname + strlen(GIT_REFS_DIR) : refname + strlen(GIT_REFS_TAGS_DIR),
|
245
247
|
&peeled, prio, &sha1);
|
246
248
|
return 0;
|
@@ -363,12 +365,15 @@ static int find_unique_abbrev_size(
|
|
363
365
|
size_t size = abbreviated_size;
|
364
366
|
git_odb *odb;
|
365
367
|
git_oid dummy;
|
368
|
+
size_t hexsize;
|
366
369
|
int error;
|
367
370
|
|
368
371
|
if ((error = git_repository_odb__weakptr(&odb, repo)) < 0)
|
369
372
|
return error;
|
370
373
|
|
371
|
-
|
374
|
+
hexsize = git_oid_hexsize(repo->oid_type);
|
375
|
+
|
376
|
+
while (size < hexsize) {
|
372
377
|
if ((error = git_odb_exists_prefix(&dummy, odb, oid_in, size)) == 0) {
|
373
378
|
*out = (int) size;
|
374
379
|
return 0;
|
@@ -383,7 +388,7 @@ static int find_unique_abbrev_size(
|
|
383
388
|
}
|
384
389
|
|
385
390
|
/* If we didn't find any shorter prefix, we have to do the whole thing */
|
386
|
-
*out =
|
391
|
+
*out = (int)hexsize;
|
387
392
|
|
388
393
|
return 0;
|
389
394
|
}
|
@@ -397,7 +402,7 @@ static int show_suffix(
|
|
397
402
|
{
|
398
403
|
int error, size = 0;
|
399
404
|
|
400
|
-
char hex_oid[
|
405
|
+
char hex_oid[GIT_OID_MAX_HEXSIZE];
|
401
406
|
|
402
407
|
if ((error = find_unique_abbrev_size(&size, repo, id, abbrev_size)) < 0)
|
403
408
|
return error;
|
@@ -414,7 +419,7 @@ static int show_suffix(
|
|
414
419
|
#define MAX_CANDIDATES_TAGS FLAG_BITS - 1
|
415
420
|
|
416
421
|
static int describe_not_found(const git_oid *oid, const char *message_format) {
|
417
|
-
char oid_str[
|
422
|
+
char oid_str[GIT_OID_MAX_HEXSIZE + 1];
|
418
423
|
git_oid_tostr(oid_str, sizeof(oid_str), oid);
|
419
424
|
|
420
425
|
git_error_set(GIT_ERROR_DESCRIBE, message_format, oid_str);
|
@@ -448,7 +453,7 @@ static int describe(
|
|
448
453
|
|
449
454
|
git_oid_cpy(&data->result->commit_id, git_commit_id(commit));
|
450
455
|
|
451
|
-
n = find_commit_name(data->names, git_commit_id(commit));
|
456
|
+
n = find_commit_name(&data->names, git_commit_id(commit));
|
452
457
|
if (n && (tags || all || n->prio == 2)) {
|
453
458
|
/*
|
454
459
|
* Exact match to an existing ref.
|
@@ -489,7 +494,7 @@ static int describe(
|
|
489
494
|
git_commit_list_node *c = (git_commit_list_node *)git_pqueue_pop(&list);
|
490
495
|
seen_commits++;
|
491
496
|
|
492
|
-
n = find_commit_name(data->names, &c->oid);
|
497
|
+
n = find_commit_name(&data->names, &c->oid);
|
493
498
|
|
494
499
|
if (n) {
|
495
500
|
if (!tags && !all && n->prio < 2) {
|
@@ -525,7 +530,7 @@ static int describe(
|
|
525
530
|
if (annotated_cnt && (git_pqueue_size(&list) == 0)) {
|
526
531
|
/*
|
527
532
|
if (debug) {
|
528
|
-
char oid_str[
|
533
|
+
char oid_str[GIT_OID_MAX_HEXSIZE + 1];
|
529
534
|
git_oid_tostr(oid_str, sizeof(oid_str), &c->oid);
|
530
535
|
|
531
536
|
fprintf(stderr, "finished search at %s\n", oid_str);
|
@@ -592,7 +597,7 @@ static int describe(
|
|
592
597
|
"head", "lightweight", "annotated",
|
593
598
|
};
|
594
599
|
|
595
|
-
char oid_str[
|
600
|
+
char oid_str[GIT_OID_MAX_HEXSIZE + 1];
|
596
601
|
|
597
602
|
if (debug) {
|
598
603
|
for (cur_match = 0; cur_match < match_cnt; cur_match++) {
|
@@ -624,7 +629,7 @@ cleanup:
|
|
624
629
|
git__free(match);
|
625
630
|
}
|
626
631
|
}
|
627
|
-
|
632
|
+
git_vector_dispose(&all_matches);
|
628
633
|
git_pqueue_free(&list);
|
629
634
|
git_revwalk_free(walk);
|
630
635
|
return error;
|
@@ -650,11 +655,12 @@ int git_describe_commit(
|
|
650
655
|
git_object *committish,
|
651
656
|
git_describe_options *opts)
|
652
657
|
{
|
653
|
-
struct get_name_data data;
|
658
|
+
struct get_name_data data = {0};
|
654
659
|
struct commit_name *name;
|
655
660
|
git_commit *commit;
|
656
|
-
int error = -1;
|
657
661
|
git_describe_options normalized;
|
662
|
+
git_hashmap_iter_t iter = GIT_HASHMAP_INIT;
|
663
|
+
int error = -1;
|
658
664
|
|
659
665
|
GIT_ASSERT_ARG(result);
|
660
666
|
GIT_ASSERT_ARG(committish);
|
@@ -674,9 +680,6 @@ int git_describe_commit(
|
|
674
680
|
"git_describe_options");
|
675
681
|
data.opts = &normalized;
|
676
682
|
|
677
|
-
if ((error = git_oidmap_new(&data.names)) < 0)
|
678
|
-
return error;
|
679
|
-
|
680
683
|
/** TODO: contains to be implemented */
|
681
684
|
|
682
685
|
if ((error = git_object_peel((git_object **)(&commit), committish, GIT_OBJECT_COMMIT)) < 0)
|
@@ -687,7 +690,7 @@ int git_describe_commit(
|
|
687
690
|
get_name, &data)) < 0)
|
688
691
|
goto cleanup;
|
689
692
|
|
690
|
-
if (
|
693
|
+
if (git_describe_oidmap_size(&data.names) == 0 && !normalized.show_commit_oid_as_fallback) {
|
691
694
|
git_error_set(GIT_ERROR_DESCRIBE, "cannot describe - "
|
692
695
|
"no reference found, cannot describe anything.");
|
693
696
|
error = -1;
|
@@ -700,13 +703,13 @@ int git_describe_commit(
|
|
700
703
|
cleanup:
|
701
704
|
git_commit_free(commit);
|
702
705
|
|
703
|
-
|
706
|
+
while (git_describe_oidmap_iterate(&iter, NULL, &name, &data.names) == 0) {
|
704
707
|
git_tag_free(name->tag);
|
705
708
|
git__free(name->path);
|
706
709
|
git__free(name);
|
707
|
-
}
|
710
|
+
}
|
708
711
|
|
709
|
-
|
712
|
+
git_describe_oidmap_dispose(&data.names);
|
710
713
|
|
711
714
|
if (error < 0)
|
712
715
|
git_describe_result_free(data.result);
|
@@ -816,7 +819,7 @@ static int git_describe__format(
|
|
816
819
|
|
817
820
|
/* If we didn't find *any* tags, we fall back to the commit's id */
|
818
821
|
if (result->fallback_to_id) {
|
819
|
-
char hex_oid[
|
822
|
+
char hex_oid[GIT_OID_MAX_HEXSIZE + 1] = {0};
|
820
823
|
int size = 0;
|
821
824
|
|
822
825
|
if ((error = find_unique_abbrev_size(
|
@@ -16,11 +16,13 @@
|
|
16
16
|
#include "diff_generate.h"
|
17
17
|
|
18
18
|
#include "git2/version.h"
|
19
|
-
#include "git2/email.h"
|
19
|
+
#include "git2/sys/email.h"
|
20
20
|
|
21
21
|
struct patch_id_args {
|
22
|
+
git_diff *diff;
|
22
23
|
git_hash_ctx ctx;
|
23
24
|
git_oid result;
|
25
|
+
git_oid_t oid_type;
|
24
26
|
int first_file;
|
25
27
|
};
|
26
28
|
|
@@ -280,17 +282,19 @@ int git_diff_find_options_init(
|
|
280
282
|
return 0;
|
281
283
|
}
|
282
284
|
|
283
|
-
static int flush_hunk(git_oid *result,
|
285
|
+
static int flush_hunk(git_oid *result, struct patch_id_args *args)
|
284
286
|
{
|
287
|
+
git_hash_ctx *ctx = &args->ctx;
|
285
288
|
git_oid hash;
|
286
289
|
unsigned short carry = 0;
|
287
|
-
|
290
|
+
size_t i;
|
291
|
+
int error;
|
288
292
|
|
289
293
|
if ((error = git_hash_final(hash.id, ctx)) < 0 ||
|
290
294
|
(error = git_hash_init(ctx)) < 0)
|
291
295
|
return error;
|
292
296
|
|
293
|
-
for (i = 0; i <
|
297
|
+
for (i = 0; i < git_oid_size(args->oid_type); i++) {
|
294
298
|
carry += result->id[i] + hash.id[i];
|
295
299
|
result->id[i] = (unsigned char)carry;
|
296
300
|
carry >>= 8;
|
@@ -338,7 +342,7 @@ static int diff_patchid_print_callback_to_buf(
|
|
338
342
|
|
339
343
|
if (line->origin == GIT_DIFF_LINE_FILE_HDR &&
|
340
344
|
!args->first_file &&
|
341
|
-
(error = flush_hunk(&args->result,
|
345
|
+
(error = flush_hunk(&args->result, args) < 0))
|
342
346
|
goto out;
|
343
347
|
|
344
348
|
if ((error = git_hash_update(&args->ctx, buf.ptr, buf.size)) < 0)
|
@@ -362,14 +366,19 @@ int git_diff_patchid_options_init(git_diff_patchid_options *opts, unsigned int v
|
|
362
366
|
int git_diff_patchid(git_oid *out, git_diff *diff, git_diff_patchid_options *opts)
|
363
367
|
{
|
364
368
|
struct patch_id_args args;
|
369
|
+
git_hash_algorithm_t algorithm;
|
365
370
|
int error;
|
366
371
|
|
367
372
|
GIT_ERROR_CHECK_VERSION(
|
368
373
|
opts, GIT_DIFF_PATCHID_OPTIONS_VERSION, "git_diff_patchid_options");
|
369
374
|
|
375
|
+
algorithm = git_oid_algorithm(diff->opts.oid_type);
|
376
|
+
|
370
377
|
memset(&args, 0, sizeof(args));
|
378
|
+
args.diff = diff;
|
371
379
|
args.first_file = 1;
|
372
|
-
|
380
|
+
args.oid_type = diff->opts.oid_type;
|
381
|
+
if ((error = git_hash_ctx_init(&args.ctx, algorithm)) < 0)
|
373
382
|
goto out;
|
374
383
|
|
375
384
|
if ((error = git_diff_print(diff,
|
@@ -378,11 +387,11 @@ int git_diff_patchid(git_oid *out, git_diff *diff, git_diff_patchid_options *opt
|
|
378
387
|
&args)) < 0)
|
379
388
|
goto out;
|
380
389
|
|
381
|
-
if ((error = (flush_hunk(&args.result, &args
|
390
|
+
if ((error = (flush_hunk(&args.result, &args))) < 0)
|
382
391
|
goto out;
|
383
392
|
|
384
393
|
#ifdef GIT_EXPERIMENTAL_SHA256
|
385
|
-
args.result.type =
|
394
|
+
args.result.type = diff->opts.oid_type;
|
386
395
|
#endif
|
387
396
|
|
388
397
|
git_oid_cpy(out, &args.result);
|
@@ -30,15 +30,15 @@ typedef enum {
|
|
30
30
|
} git_diff_origin_t;
|
31
31
|
|
32
32
|
struct git_diff {
|
33
|
-
git_refcount
|
33
|
+
git_refcount rc;
|
34
34
|
git_repository *repo;
|
35
|
-
git_attr_session
|
35
|
+
git_attr_session attrsession;
|
36
36
|
git_diff_origin_t type;
|
37
|
-
git_diff_options
|
38
|
-
git_vector
|
37
|
+
git_diff_options opts;
|
38
|
+
git_vector deltas; /* vector of git_diff_delta */
|
39
39
|
git_pool pool;
|
40
|
-
git_iterator_t
|
41
|
-
git_iterator_t
|
40
|
+
git_iterator_t old_src;
|
41
|
+
git_iterator_t new_src;
|
42
42
|
git_diff_perfdata perf;
|
43
43
|
|
44
44
|
int (*strcomp)(const char *, const char *);
|
@@ -11,11 +11,11 @@
|
|
11
11
|
|
12
12
|
#include "common.h"
|
13
13
|
#include "diff.h"
|
14
|
-
#include "strmap.h"
|
15
14
|
#include "map.h"
|
16
15
|
#include "config.h"
|
17
16
|
#include "regexp.h"
|
18
17
|
#include "repository.h"
|
18
|
+
#include "userdiff.h"
|
19
19
|
|
20
20
|
typedef enum {
|
21
21
|
DIFF_DRIVER_AUTO = 0,
|
@@ -43,10 +43,10 @@ struct git_diff_driver {
|
|
43
43
|
char name[GIT_FLEX_ARRAY];
|
44
44
|
};
|
45
45
|
|
46
|
-
|
46
|
+
GIT_HASHMAP_STR_SETUP(git_diff_driver_map, git_diff_driver *);
|
47
47
|
|
48
48
|
struct git_diff_driver_registry {
|
49
|
-
|
49
|
+
git_diff_driver_map map;
|
50
50
|
};
|
51
51
|
|
52
52
|
#define FORCE_DIFFABLE (GIT_DIFF_FORCE_TEXT | GIT_DIFF_FORCE_BINARY)
|
@@ -57,28 +57,21 @@ static git_diff_driver diff_driver_text = { DIFF_DRIVER_TEXT, GIT_DIFF_FORCE
|
|
57
57
|
|
58
58
|
git_diff_driver_registry *git_diff_driver_registry_new(void)
|
59
59
|
{
|
60
|
-
|
61
|
-
git__calloc(1, sizeof(git_diff_driver_registry));
|
62
|
-
if (!reg)
|
63
|
-
return NULL;
|
64
|
-
|
65
|
-
if (git_strmap_new(®->drivers) < 0) {
|
66
|
-
git_diff_driver_registry_free(reg);
|
67
|
-
return NULL;
|
68
|
-
}
|
69
|
-
|
70
|
-
return reg;
|
60
|
+
return git__calloc(1, sizeof(git_diff_driver_registry));
|
71
61
|
}
|
72
62
|
|
73
63
|
void git_diff_driver_registry_free(git_diff_driver_registry *reg)
|
74
64
|
{
|
75
65
|
git_diff_driver *drv;
|
66
|
+
git_hashmap_iter_t iter = 0;
|
76
67
|
|
77
68
|
if (!reg)
|
78
69
|
return;
|
79
70
|
|
80
|
-
|
81
|
-
|
71
|
+
while (git_diff_driver_map_iterate(&iter, NULL, &drv, ®->map) == 0)
|
72
|
+
git_diff_driver_free(drv);
|
73
|
+
|
74
|
+
git_diff_driver_map_dispose(®->map);
|
82
75
|
git__free(reg);
|
83
76
|
}
|
84
77
|
|
@@ -215,7 +208,7 @@ static int git_diff_driver_builtin(
|
|
215
208
|
(error = git_regexp_compile(&drv->word_pattern, ddef->words, ddef->flags)) < 0)
|
216
209
|
goto done;
|
217
210
|
|
218
|
-
if ((error =
|
211
|
+
if ((error = git_diff_driver_map_put(®->map, drv->name, drv)) < 0)
|
219
212
|
goto done;
|
220
213
|
|
221
214
|
done:
|
@@ -242,7 +235,7 @@ static int git_diff_driver_load(
|
|
242
235
|
if ((reg = git_repository_driver_registry(repo)) == NULL)
|
243
236
|
return -1;
|
244
237
|
|
245
|
-
if ((drv
|
238
|
+
if (git_diff_driver_map_get(&drv, ®->map, driver_name) == 0) {
|
246
239
|
*out = drv;
|
247
240
|
return 0;
|
248
241
|
}
|
@@ -331,7 +324,7 @@ static int git_diff_driver_load(
|
|
331
324
|
goto done;
|
332
325
|
|
333
326
|
/* store driver in registry */
|
334
|
-
if ((error =
|
327
|
+
if ((error = git_diff_driver_map_put(®->map, drv->name, drv)) < 0)
|
335
328
|
goto done;
|
336
329
|
|
337
330
|
*out = drv;
|
@@ -11,14 +11,14 @@
|
|
11
11
|
|
12
12
|
#include "attr_file.h"
|
13
13
|
#include "str.h"
|
14
|
+
#include "hashmap.h"
|
14
15
|
|
16
|
+
typedef struct git_diff_driver git_diff_driver;
|
15
17
|
typedef struct git_diff_driver_registry git_diff_driver_registry;
|
16
18
|
|
17
19
|
git_diff_driver_registry *git_diff_driver_registry_new(void);
|
18
20
|
void git_diff_driver_registry_free(git_diff_driver_registry *);
|
19
21
|
|
20
|
-
typedef struct git_diff_driver git_diff_driver;
|
21
|
-
|
22
22
|
int git_diff_driver_lookup(git_diff_driver **, git_repository *,
|
23
23
|
git_attr_session *attrsession, const char *);
|
24
24
|
void git_diff_driver_free(git_diff_driver *);
|
@@ -112,7 +112,7 @@ int git_diff_file_content__init_from_diff(
|
|
112
112
|
case GIT_DELTA_DELETED:
|
113
113
|
has_data = use_old; break;
|
114
114
|
case GIT_DELTA_UNTRACKED:
|
115
|
-
has_data =
|
115
|
+
has_data = (use_old == (diff->opts.flags & GIT_DIFF_REVERSE)) &&
|
116
116
|
(diff->opts.flags & GIT_DIFF_SHOW_UNTRACKED_CONTENT) != 0;
|
117
117
|
break;
|
118
118
|
case GIT_DELTA_UNREADABLE:
|
@@ -144,7 +144,7 @@ int git_diff_file_content__init_from_src(
|
|
144
144
|
|
145
145
|
if (!src->blob && !src->buf) {
|
146
146
|
fc->flags |= GIT_DIFF_FLAG__NO_DATA;
|
147
|
-
git_oid_clear(&fc->file->id,
|
147
|
+
git_oid_clear(&fc->file->id, opts->oid_type);
|
148
148
|
} else {
|
149
149
|
fc->flags |= GIT_DIFF_FLAG__LOADED;
|
150
150
|
fc->file->flags |= GIT_DIFF_FLAG_VALID_ID;
|
@@ -154,7 +154,7 @@ int git_diff_file_content__init_from_src(
|
|
154
154
|
git_blob_dup((git_blob **)&fc->blob, (git_blob *) src->blob);
|
155
155
|
fc->file->size = git_blob_rawsize(src->blob);
|
156
156
|
git_oid_cpy(&fc->file->id, git_blob_id(src->blob));
|
157
|
-
fc->file->id_abbrev =
|
157
|
+
fc->file->id_abbrev = (uint16_t)git_oid_hexsize(repo->oid_type);
|
158
158
|
|
159
159
|
fc->map.len = (size_t)fc->file->size;
|
160
160
|
fc->map.data = (char *)git_blob_rawcontent(src->blob);
|
@@ -162,10 +162,10 @@ int git_diff_file_content__init_from_src(
|
|
162
162
|
fc->flags |= GIT_DIFF_FLAG__FREE_BLOB;
|
163
163
|
} else {
|
164
164
|
int error;
|
165
|
-
if ((error = git_odb__hash(&fc->file->id, src->buf, src->buflen, GIT_OBJECT_BLOB,
|
165
|
+
if ((error = git_odb__hash(&fc->file->id, src->buf, src->buflen, GIT_OBJECT_BLOB, opts->oid_type)) < 0)
|
166
166
|
return error;
|
167
167
|
fc->file->size = src->buflen;
|
168
|
-
fc->file->id_abbrev =
|
168
|
+
fc->file->id_abbrev = (uint16_t)git_oid_hexsize(opts->oid_type);
|
169
169
|
|
170
170
|
fc->map.len = src->buflen;
|
171
171
|
fc->map.data = (char *)src->buf;
|
@@ -178,7 +178,7 @@ int git_diff_file_content__init_from_src(
|
|
178
178
|
static int diff_file_content_commit_to_str(
|
179
179
|
git_diff_file_content *fc, bool check_status)
|
180
180
|
{
|
181
|
-
char oid[
|
181
|
+
char oid[GIT_OID_MAX_HEXSIZE+1];
|
182
182
|
git_str content = GIT_STR_INIT;
|
183
183
|
const char *status = "";
|
184
184
|
|
@@ -420,7 +420,7 @@ static int diff_file_content_load_workdir(
|
|
420
420
|
if (!error && (fc->file->flags & GIT_DIFF_FLAG_VALID_ID) == 0) {
|
421
421
|
error = git_odb__hash(
|
422
422
|
&fc->file->id, fc->map.data, fc->map.len,
|
423
|
-
GIT_OBJECT_BLOB,
|
423
|
+
GIT_OBJECT_BLOB, diff_opts->oid_type);
|
424
424
|
fc->file->flags |= GIT_DIFF_FLAG_VALID_ID;
|
425
425
|
}
|
426
426
|
|