rugged 1.3.1 → 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/README.md +34 -2
- data/ext/rugged/extconf.rb +6 -3
- data/ext/rugged/rugged.c +16 -0
- data/ext/rugged/rugged.h +4 -0
- data/ext/rugged/rugged_allocator.c +0 -54
- data/ext/rugged/rugged_blame.c +2 -0
- data/ext/rugged/rugged_blob.c +3 -0
- data/ext/rugged/rugged_commit.c +1 -0
- data/ext/rugged/rugged_config.c +9 -2
- data/ext/rugged/rugged_diff.c +1 -0
- data/ext/rugged/rugged_index.c +2 -0
- data/ext/rugged/rugged_patch.c +1 -0
- data/ext/rugged/rugged_rebase.c +1 -0
- data/ext/rugged/rugged_reference.c +1 -0
- data/ext/rugged/rugged_remote.c +28 -10
- data/ext/rugged/rugged_repo.c +7 -9
- data/ext/rugged/rugged_revwalk.c +5 -1
- data/ext/rugged/rugged_settings.c +5 -0
- data/ext/rugged/rugged_submodule.c +1 -0
- data/ext/rugged/rugged_tag.c +1 -0
- data/ext/rugged/rugged_tree.c +4 -0
- data/lib/rugged/index.rb +1 -1
- data/lib/rugged/tree.rb +5 -1
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +141 -289
- data/vendor/libgit2/COPYING +301 -20
- data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
- data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
- data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
- data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
- data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
- data/vendor/libgit2/cmake/ExperimentalFeatures.cmake +23 -0
- data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
- data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
- data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
- data/vendor/libgit2/cmake/FindHTTP_Parser.cmake +17 -17
- data/vendor/libgit2/cmake/FindIntlIconv.cmake +51 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
- data/vendor/libgit2/cmake/FindPCRE.cmake +12 -13
- data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
- data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
- data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
- data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
- data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
- data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
- data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
- data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
- data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +34 -0
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +129 -101
- data/vendor/libgit2/cmake/SelectHashes.cmake +113 -54
- data/vendor/libgit2/cmake/SelectRegex.cmake +56 -0
- data/vendor/libgit2/cmake/SelectSSH.cmake +46 -0
- data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +38 -0
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
- 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 +33 -31
- 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 +7 -5
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +25 -25
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
- 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 +89 -88
- 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/winhttp/CMakeLists.txt +14 -16
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
- data/vendor/libgit2/deps/xdiff/git-xdiff.h +56 -0
- data/vendor/libgit2/{src → deps}/xdiff/xdiff.h +15 -15
- data/vendor/libgit2/{src → deps}/xdiff/xdiffi.c +152 -125
- data/vendor/libgit2/{src → deps}/xdiff/xdiffi.h +2 -4
- data/vendor/libgit2/{src → deps}/xdiff/xemit.c +26 -10
- data/vendor/libgit2/{src → deps}/xdiff/xhistogram.c +92 -94
- data/vendor/libgit2/{src → deps}/xdiff/xinclude.h +1 -12
- data/vendor/libgit2/{src → deps}/xdiff/xmacros.h +18 -1
- data/vendor/libgit2/{src → deps}/xdiff/xmerge.c +126 -137
- data/vendor/libgit2/{src → deps}/xdiff/xpatience.c +26 -46
- data/vendor/libgit2/{src → deps}/xdiff/xprepare.c +24 -46
- data/vendor/libgit2/{src → deps}/xdiff/xutils.c +36 -8
- data/vendor/libgit2/{src → 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 +7 -22
- data/vendor/libgit2/deps/zlib/crc32.c +931 -317
- data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
- data/vendor/libgit2/deps/zlib/deflate.c +428 -453
- data/vendor/libgit2/deps/zlib/deflate.h +51 -23
- data/vendor/libgit2/deps/zlib/gzguts.h +15 -19
- data/vendor/libgit2/deps/zlib/infback.c +19 -31
- data/vendor/libgit2/deps/zlib/inffast.c +15 -18
- data/vendor/libgit2/deps/zlib/inffast.h +1 -1
- data/vendor/libgit2/deps/zlib/inflate.c +75 -110
- data/vendor/libgit2/deps/zlib/inflate.h +3 -2
- 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 +294 -380
- data/vendor/libgit2/deps/zlib/zconf.h +23 -14
- data/vendor/libgit2/deps/zlib/zlib.h +310 -284
- data/vendor/libgit2/deps/zlib/zutil.c +20 -46
- data/vendor/libgit2/deps/zlib/zutil.h +24 -41
- data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
- data/vendor/libgit2/include/git2/apply.h +43 -8
- data/vendor/libgit2/include/git2/attr.h +28 -6
- data/vendor/libgit2/include/git2/blame.h +137 -29
- data/vendor/libgit2/include/git2/blob.h +85 -29
- data/vendor/libgit2/include/git2/branch.h +25 -16
- data/vendor/libgit2/include/git2/buffer.h +24 -82
- data/vendor/libgit2/include/git2/cert.h +4 -3
- data/vendor/libgit2/include/git2/checkout.h +88 -34
- data/vendor/libgit2/include/git2/cherrypick.h +10 -3
- data/vendor/libgit2/include/git2/clone.h +28 -12
- data/vendor/libgit2/include/git2/commit.h +134 -3
- data/vendor/libgit2/include/git2/common.h +172 -59
- data/vendor/libgit2/include/git2/config.h +118 -32
- data/vendor/libgit2/include/git2/credential.h +32 -3
- data/vendor/libgit2/include/git2/credential_helpers.h +2 -0
- data/vendor/libgit2/include/git2/deprecated.h +141 -3
- data/vendor/libgit2/include/git2/describe.h +20 -3
- data/vendor/libgit2/include/git2/diff.h +95 -19
- data/vendor/libgit2/include/git2/email.h +10 -30
- data/vendor/libgit2/include/git2/errors.h +51 -61
- data/vendor/libgit2/include/git2/experimental.h +20 -0
- data/vendor/libgit2/include/git2/filter.h +21 -9
- data/vendor/libgit2/include/git2/global.h +8 -1
- data/vendor/libgit2/include/git2/graph.h +4 -2
- data/vendor/libgit2/include/git2/ignore.h +11 -1
- data/vendor/libgit2/include/git2/index.h +111 -11
- data/vendor/libgit2/include/git2/indexer.h +67 -2
- data/vendor/libgit2/include/git2/mailmap.h +7 -1
- data/vendor/libgit2/include/git2/merge.h +70 -5
- data/vendor/libgit2/include/git2/message.h +4 -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 +57 -7
- data/vendor/libgit2/include/git2/odb.h +156 -33
- data/vendor/libgit2/include/git2/odb_backend.h +132 -16
- data/vendor/libgit2/include/git2/oid.h +116 -17
- data/vendor/libgit2/include/git2/oidarray.h +7 -1
- data/vendor/libgit2/include/git2/pack.h +37 -9
- data/vendor/libgit2/include/git2/patch.h +10 -3
- data/vendor/libgit2/include/git2/pathspec.h +10 -1
- data/vendor/libgit2/include/git2/proxy.h +11 -1
- data/vendor/libgit2/include/git2/rebase.h +18 -7
- data/vendor/libgit2/include/git2/refdb.h +5 -2
- data/vendor/libgit2/include/git2/reflog.h +4 -3
- data/vendor/libgit2/include/git2/refs.h +11 -8
- data/vendor/libgit2/include/git2/refspec.h +14 -4
- data/vendor/libgit2/include/git2/remote.h +295 -54
- data/vendor/libgit2/include/git2/repository.h +95 -25
- data/vendor/libgit2/include/git2/reset.h +18 -5
- data/vendor/libgit2/include/git2/revert.h +9 -4
- data/vendor/libgit2/include/git2/revparse.h +4 -4
- data/vendor/libgit2/include/git2/revwalk.h +7 -3
- data/vendor/libgit2/include/git2/signature.h +47 -2
- data/vendor/libgit2/include/git2/stash.h +78 -10
- data/vendor/libgit2/include/git2/status.h +24 -11
- data/vendor/libgit2/include/git2/stdint.h +87 -85
- data/vendor/libgit2/include/git2/strarray.h +2 -16
- data/vendor/libgit2/include/git2/submodule.h +27 -11
- 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 +110 -59
- 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 +10 -9
- 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 +53 -0
- data/vendor/libgit2/include/git2/sys/repository.h +63 -3
- data/vendor/libgit2/include/git2/sys/stream.h +26 -3
- data/vendor/libgit2/include/git2/sys/transport.h +87 -41
- data/vendor/libgit2/include/git2/tag.h +4 -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 +20 -8
- data/vendor/libgit2/include/git2/types.h +26 -10
- data/vendor/libgit2/include/git2/version.h +63 -6
- data/vendor/libgit2/include/git2/worktree.h +30 -8
- data/vendor/libgit2/include/git2.h +1 -0
- data/vendor/libgit2/src/CMakeLists.txt +203 -420
- data/vendor/libgit2/src/README.md +12 -0
- data/vendor/libgit2/src/cli/CMakeLists.txt +56 -0
- data/vendor/libgit2/src/cli/README.md +26 -0
- data/vendor/libgit2/src/{branch.h → cli/cmd.c} +10 -8
- data/vendor/libgit2/src/cli/cmd.h +37 -0
- data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +202 -0
- data/vendor/libgit2/src/cli/cmd_clone.c +190 -0
- data/vendor/libgit2/src/cli/cmd_config.c +241 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +152 -0
- data/vendor/libgit2/src/cli/cmd_help.c +85 -0
- 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 +51 -0
- data/vendor/libgit2/src/cli/main.c +134 -0
- data/vendor/libgit2/src/cli/opt.c +695 -0
- data/vendor/libgit2/src/cli/opt.h +367 -0
- data/vendor/libgit2/src/cli/opt_usage.c +263 -0
- data/vendor/libgit2/src/cli/opt_usage.h +40 -0
- data/vendor/libgit2/src/cli/progress.c +395 -0
- data/vendor/libgit2/src/cli/progress.h +129 -0
- data/vendor/libgit2/src/cli/sighandler.h +20 -0
- data/vendor/libgit2/src/cli/unix/sighandler.c +37 -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/libgit2/CMakeLists.txt +140 -0
- data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +2 -2
- data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +2 -2
- data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +32 -34
- data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +2 -2
- data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +48 -31
- data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +25 -20
- data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +6 -4
- data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +87 -46
- data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +5 -9
- data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +152 -57
- data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +1 -0
- data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +1 -2
- data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +38 -29
- data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +3 -3
- data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +164 -118
- data/vendor/libgit2/src/libgit2/branch.h +31 -0
- data/vendor/libgit2/src/libgit2/buf.c +126 -0
- data/vendor/libgit2/src/libgit2/buf.h +50 -0
- data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +22 -17
- data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +7 -9
- data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +107 -91
- data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -2
- data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +14 -15
- data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +254 -203
- data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +4 -1
- data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +296 -77
- data/vendor/libgit2/src/libgit2/commit.h +87 -0
- data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +246 -135
- data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +33 -8
- data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +17 -7
- data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +1 -0
- data/vendor/libgit2/src/libgit2/common.h +55 -0
- data/vendor/libgit2/src/{config.c → libgit2/config.c} +490 -360
- data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
- data/vendor/libgit2/src/{config.h → libgit2/config.h} +24 -6
- data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +8 -10
- data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +4 -5
- data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +212 -183
- 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 +374 -0
- data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +37 -32
- data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +24 -31
- data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +24 -21
- data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +62 -51
- data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +44 -14
- data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +8 -10
- data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +46 -55
- data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +5 -5
- data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +45 -27
- data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +70 -20
- data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +5 -3
- data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +22 -6
- data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +192 -105
- data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +40 -29
- data/vendor/libgit2/src/libgit2/diff_stats.h +18 -0
- data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +49 -16
- data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +4 -8
- data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +1 -1
- data/vendor/libgit2/src/{email.c → libgit2/email.c} +58 -40
- data/vendor/libgit2/src/{email.h → libgit2/email.h} +1 -1
- data/vendor/libgit2/src/{transports/ssh.h → libgit2/experimental.h.in} +3 -4
- data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +105 -30
- data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +1 -3
- data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +30 -28
- data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +132 -58
- data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +26 -5
- data/vendor/libgit2/src/{win32 → 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/{graph.c → libgit2/graph.c} +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +20 -20
- data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +44 -39
- data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +2 -2
- data/vendor/libgit2/src/{index.c → libgit2/index.c} +460 -276
- data/vendor/libgit2/src/{index.h → libgit2/index.h} +21 -5
- data/vendor/libgit2/src/libgit2/index_map.c +95 -0
- data/vendor/libgit2/src/libgit2/index_map.h +28 -0
- data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +208 -124
- data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +102 -71
- data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +8 -5
- data/vendor/libgit2/src/libgit2/libgit2.c +268 -0
- data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +39 -37
- data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +83 -73
- data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +1 -14
- data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +4 -4
- data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +13 -5
- data/vendor/libgit2/src/{message.c → libgit2/message.c} +21 -10
- data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +174 -112
- data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +17 -6
- data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +53 -57
- data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +9 -2
- data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +29 -37
- data/vendor/libgit2/src/{object.c → libgit2/object.c} +166 -35
- data/vendor/libgit2/src/{object.h → libgit2/object.h} +17 -2
- data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +261 -88
- data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +44 -5
- data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +192 -134
- data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +67 -22
- data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +162 -89
- data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +171 -92
- data/vendor/libgit2/src/libgit2/oid.h +284 -0
- data/vendor/libgit2/src/libgit2/oidarray.c +89 -0
- data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +5 -1
- data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +126 -66
- data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +28 -12
- data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +146 -111
- data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +45 -25
- data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +8 -4
- data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +1 -1
- data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +3 -3
- data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +8 -1
- data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +51 -16
- data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +5 -5
- data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +42 -34
- data/vendor/libgit2/src/libgit2/path.c +375 -0
- data/vendor/libgit2/src/libgit2/path.h +68 -0
- data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +7 -7
- data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +2 -2
- data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +4 -1
- data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +1 -1
- data/vendor/libgit2/src/{push.c → libgit2/push.c} +116 -60
- data/vendor/libgit2/src/{push.h → libgit2/push.h} +5 -16
- data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +9 -9
- data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +2 -2
- data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +147 -147
- data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +639 -254
- data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +8 -7
- data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +3 -2
- data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +67 -39
- data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +8 -3
- data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +60 -38
- data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +13 -2
- data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +821 -454
- data/vendor/libgit2/src/libgit2/remote.h +101 -0
- data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +1377 -594
- data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +43 -12
- data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +8 -5
- data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +18 -22
- data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +76 -44
- data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +48 -19
- data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +3 -3
- data/vendor/libgit2/src/{libgit2.c → libgit2/settings.c} +162 -95
- data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +6 -2
- data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +144 -21
- data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +1 -2
- data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +243 -68
- data/vendor/libgit2/src/{status.c → libgit2/status.c} +5 -2
- data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +1 -0
- data/vendor/libgit2/src/libgit2/strarray.h +25 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +62 -67
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +41 -24
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +2 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +11 -3
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +6 -3
- 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 +428 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +3 -1
- data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +79 -19
- data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +5 -0
- data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +279 -220
- data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +10 -11
- data/vendor/libgit2/src/libgit2/sysdir.c +650 -0
- data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +55 -18
- data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +74 -43
- data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +2 -2
- data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +1 -14
- data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +5 -22
- data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +7 -7
- data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +27 -21
- data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +4 -1
- data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +14 -11
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +7 -9
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +3 -5
- data/vendor/libgit2/src/{transports/auth_negotiate.c → libgit2/transports/auth_gssapi.c} +44 -45
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +1 -1
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +1 -2
- data/vendor/libgit2/src/{transports/auth_ntlm.c → libgit2/transports/auth_ntlmclient.c} +22 -22
- data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +1 -1
- data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +16 -19
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +49 -24
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +0 -11
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +188 -134
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +10 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +159 -127
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +142 -165
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +56 -36
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +307 -74
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +297 -97
- data/vendor/libgit2/src/libgit2/transports/ssh.c +85 -0
- 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/{transports/ssh.c → libgit2/transports/ssh_libssh2.c} +414 -268
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +101 -75
- data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +30 -20
- data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +7 -5
- data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +128 -110
- data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +7 -6
- data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +160 -121
- data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +1 -1
- data/vendor/libgit2/src/util/CMakeLists.txt +77 -0
- data/vendor/libgit2/src/{alloc.c → util/alloc.c} +69 -7
- data/vendor/libgit2/src/util/alloc.h +65 -0
- data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
- data/vendor/libgit2/src/util/allocators/debugalloc.h +17 -0
- data/vendor/libgit2/src/util/allocators/failalloc.c +32 -0
- data/vendor/libgit2/src/util/allocators/failalloc.h +17 -0
- data/vendor/libgit2/src/util/allocators/stdalloc.c +37 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
- data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +50 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{array.h → util/array.h} +25 -19
- data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
- data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +5 -1
- data/vendor/libgit2/src/util/ctype_compat.h +70 -0
- data/vendor/libgit2/src/{date.c → util/date.c} +35 -33
- data/vendor/libgit2/src/util/date.h +45 -0
- data/vendor/libgit2/src/util/errors.c +401 -0
- data/vendor/libgit2/src/{errors.h → util/errors.h} +22 -19
- data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +35 -30
- data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +21 -8
- data/vendor/libgit2/src/{path.c → util/fs_path.c} +591 -615
- data/vendor/libgit2/src/{path.h → util/fs_path.h} +257 -181
- data/vendor/libgit2/src/{futils.c → util/futils.c} +144 -95
- data/vendor/libgit2/src/{futils.h → util/futils.h} +40 -18
- data/vendor/libgit2/src/{features.h.in → util/git2_features.h.in} +33 -2
- data/vendor/libgit2/src/{common.h → util/git2_util.h} +26 -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 +3 -3
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
- data/vendor/libgit2/src/util/hash/common_crypto.c +112 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
- data/vendor/libgit2/src/util/hash/mbedtls.c +92 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
- data/vendor/libgit2/src/util/hash/openssl.c +347 -0
- data/vendor/libgit2/src/util/hash/openssl.h +61 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha.h +243 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
- data/vendor/libgit2/src/util/hash/sha.h +73 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +1 -1
- data/vendor/libgit2/src/util/hash/win32.c +549 -0
- data/vendor/libgit2/src/util/hash/win32.h +60 -0
- data/vendor/libgit2/src/util/hash.c +158 -0
- data/vendor/libgit2/src/util/hash.h +61 -0
- data/vendor/libgit2/src/util/hashmap.h +424 -0
- data/vendor/libgit2/src/util/hashmap_str.h +43 -0
- data/vendor/libgit2/src/{integer.h → util/integer.h} +3 -1
- data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
- data/vendor/libgit2/src/util/net.c +1160 -0
- data/vendor/libgit2/src/{net.h → util/net.h} +45 -4
- data/vendor/libgit2/src/{pool.c → util/pool.c} +1 -1
- data/vendor/libgit2/src/{pool.h → util/pool.h} +6 -1
- data/vendor/libgit2/src/{posix.c → util/posix.c} +57 -3
- data/vendor/libgit2/src/{posix.h → util/posix.h} +26 -1
- data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +3 -3
- data/vendor/libgit2/src/util/process.h +222 -0
- data/vendor/libgit2/src/util/rand.c +230 -0
- data/vendor/libgit2/src/util/rand.h +37 -0
- data/vendor/libgit2/src/{regexp.c → util/regexp.c} +5 -5
- 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.c → util/sortedcache.c} +15 -14
- data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +5 -5
- data/vendor/libgit2/src/util/staticstr.h +66 -0
- data/vendor/libgit2/src/{buffer.c → util/str.c} +159 -153
- data/vendor/libgit2/src/util/str.h +357 -0
- data/vendor/libgit2/src/util/strlist.c +108 -0
- data/vendor/libgit2/src/util/strlist.h +36 -0
- data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
- data/vendor/libgit2/src/{thread.h → util/thread.h} +23 -22
- data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
- data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -3
- data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -6
- data/vendor/libgit2/src/util/unix/process.c +629 -0
- data/vendor/libgit2/src/{unix → util/unix}/realpath.c +24 -8
- 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} +24 -19
- data/vendor/libgit2/src/{util.h → util/util.h} +30 -81
- data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
- data/vendor/libgit2/src/{vector.c → util/vector.c} +3 -3
- data/vendor/libgit2/src/{vector.h → util/vector.h} +4 -4
- 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.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +148 -17
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +3 -1
- data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -2
- data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +42 -35
- 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/util/win32/process.c +506 -0
- data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
- data/vendor/libgit2/src/util/win32/utf-conv.c +144 -0
- data/vendor/libgit2/src/util/win32/utf-conv.h +127 -0
- data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +2 -3
- data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +3 -4
- data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
- data/vendor/libgit2/src/{zstream.c → util/zstream.c} +5 -5
- data/vendor/libgit2/src/{zstream.h → util/zstream.h} +5 -5
- metadata +431 -362
- data/vendor/libgit2/cmake/FindIconv.cmake +0 -45
- 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/alloc.h +0 -40
- data/vendor/libgit2/src/allocators/failalloc.c +0 -92
- data/vendor/libgit2/src/allocators/failalloc.h +0 -23
- data/vendor/libgit2/src/allocators/stdalloc.c +0 -150
- data/vendor/libgit2/src/allocators/win32_leakcheck.c +0 -118
- data/vendor/libgit2/src/buffer.h +0 -374
- data/vendor/libgit2/src/commit.h +0 -46
- data/vendor/libgit2/src/config_entries.c +0 -237
- data/vendor/libgit2/src/config_entries.h +0 -24
- data/vendor/libgit2/src/config_mem.c +0 -220
- data/vendor/libgit2/src/errors.c +0 -238
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +0 -57
- 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/mbedtls.c +0 -46
- 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 -38
- data/vendor/libgit2/src/hash.c +0 -110
- data/vendor/libgit2/src/hash.h +0 -46
- data/vendor/libgit2/src/idxmap.c +0 -157
- data/vendor/libgit2/src/idxmap.h +0 -177
- data/vendor/libgit2/src/khash.h +0 -615
- data/vendor/libgit2/src/libgit2.h +0 -15
- data/vendor/libgit2/src/message.h +0 -17
- data/vendor/libgit2/src/net.c +0 -540
- data/vendor/libgit2/src/netops.c +0 -125
- data/vendor/libgit2/src/netops.h +0 -68
- data/vendor/libgit2/src/offmap.c +0 -101
- data/vendor/libgit2/src/offmap.h +0 -133
- data/vendor/libgit2/src/oid.h +0 -51
- data/vendor/libgit2/src/oidarray.c +0 -43
- data/vendor/libgit2/src/oidmap.c +0 -107
- data/vendor/libgit2/src/oidmap.h +0 -128
- data/vendor/libgit2/src/remote.h +0 -55
- data/vendor/libgit2/src/streams/socket.c +0 -239
- data/vendor/libgit2/src/strmap.c +0 -100
- data/vendor/libgit2/src/strmap.h +0 -131
- data/vendor/libgit2/src/sysdir.c +0 -347
- data/vendor/libgit2/src/threadstate.c +0 -84
- data/vendor/libgit2/src/threadstate.h +0 -24
- data/vendor/libgit2/src/win32/findfile.c +0 -230
- data/vendor/libgit2/src/win32/findfile.h +0 -19
- data/vendor/libgit2/src/win32/utf-conv.c +0 -146
- data/vendor/libgit2/src/win32/utf-conv.h +0 -60
- /data/vendor/libgit2/{src → deps}/xdiff/xemit.h +0 -0
- /data/vendor/libgit2/{src → deps}/xdiff/xprepare.h +0 -0
- /data/vendor/libgit2/{src → deps}/xdiff/xtypes.h +0 -0
- /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
- /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
- /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
- /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +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_file.h → libgit2/diff_file.h} +0 -0
- /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
- /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
- /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
- /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
- /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
- /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
- /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
- /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
- /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
- /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.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/{repo_template.h → libgit2/repo_template.h} +0 -0
- /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
- /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.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}/stransport.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
- /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
- /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +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/{pqueue.c → util/pqueue.c} +0 -0
- /data/vendor/libgit2/src/{strnlen.h → util/strnlen.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/{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}/mingw-compat.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +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}/version.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
@@ -9,11 +9,18 @@
|
|
9
9
|
|
10
10
|
#include "git2/oid.h"
|
11
11
|
#include "repository.h"
|
12
|
-
#include "
|
12
|
+
#include "runtime.h"
|
13
13
|
#include <string.h>
|
14
14
|
#include <limits.h>
|
15
15
|
|
16
|
-
|
16
|
+
const git_oid git_oid__empty_blob_sha1 =
|
17
|
+
GIT_OID_INIT(GIT_OID_SHA1,
|
18
|
+
{ 0xe6, 0x9d, 0xe2, 0x9b, 0xb2, 0xd1, 0xd6, 0x43, 0x4b, 0x8b,
|
19
|
+
0x29, 0xae, 0x77, 0x5a, 0xd8, 0xc2, 0xe4, 0x8c, 0x53, 0x91 });
|
20
|
+
const git_oid git_oid__empty_tree_sha1 =
|
21
|
+
GIT_OID_INIT(GIT_OID_SHA1,
|
22
|
+
{ 0x4b, 0x82, 0x5d, 0xc6, 0x42, 0xcb, 0x6e, 0xb9, 0xa0, 0x60,
|
23
|
+
0xe5, 0x4b, 0xf8, 0xd6, 0x92, 0x88, 0xfb, 0xee, 0x49, 0x04 });
|
17
24
|
|
18
25
|
static int oid_error_invalid(const char *msg)
|
19
26
|
{
|
@@ -21,21 +28,31 @@ static int oid_error_invalid(const char *msg)
|
|
21
28
|
return -1;
|
22
29
|
}
|
23
30
|
|
24
|
-
int
|
31
|
+
int git_oid__fromstrn(
|
32
|
+
git_oid *out,
|
33
|
+
const char *str,
|
34
|
+
size_t length,
|
35
|
+
git_oid_t type)
|
25
36
|
{
|
26
|
-
size_t p;
|
37
|
+
size_t size, p;
|
27
38
|
int v;
|
28
39
|
|
29
40
|
GIT_ASSERT_ARG(out);
|
30
41
|
GIT_ASSERT_ARG(str);
|
31
42
|
|
43
|
+
if (!(size = git_oid_size(type)))
|
44
|
+
return oid_error_invalid("unknown type");
|
45
|
+
|
32
46
|
if (!length)
|
33
47
|
return oid_error_invalid("too short");
|
34
48
|
|
35
|
-
if (length >
|
49
|
+
if (length > git_oid_hexsize(type))
|
36
50
|
return oid_error_invalid("too long");
|
37
51
|
|
38
|
-
|
52
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
53
|
+
out->type = type;
|
54
|
+
#endif
|
55
|
+
memset(out->id, 0, size);
|
39
56
|
|
40
57
|
for (p = 0; p < length; p++) {
|
41
58
|
v = git__fromhex(str[p]);
|
@@ -48,87 +65,161 @@ int git_oid_fromstrn(git_oid *out, const char *str, size_t length)
|
|
48
65
|
return 0;
|
49
66
|
}
|
50
67
|
|
51
|
-
int
|
68
|
+
int git_oid__fromstrp(git_oid *out, const char *str, git_oid_t type)
|
52
69
|
{
|
53
|
-
return
|
70
|
+
return git_oid__fromstrn(out, str, strlen(str), type);
|
54
71
|
}
|
55
72
|
|
56
|
-
int
|
73
|
+
int git_oid__fromstr(git_oid *out, const char *str, git_oid_t type)
|
57
74
|
{
|
58
|
-
return
|
75
|
+
return git_oid__fromstrn(out, str, git_oid_hexsize(type), type);
|
59
76
|
}
|
60
77
|
|
61
|
-
|
78
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
79
|
+
int git_oid_fromstrn(
|
80
|
+
git_oid *out,
|
81
|
+
const char *str,
|
82
|
+
size_t length,
|
83
|
+
git_oid_t type)
|
62
84
|
{
|
63
|
-
|
64
|
-
|
65
|
-
|
85
|
+
return git_oid__fromstrn(out, str, length, type);
|
86
|
+
}
|
87
|
+
|
88
|
+
int git_oid_fromstrp(git_oid *out, const char *str, git_oid_t type)
|
89
|
+
{
|
90
|
+
return git_oid_fromstrn(out, str, strlen(str), type);
|
91
|
+
}
|
92
|
+
|
93
|
+
int git_oid_fromstr(git_oid *out, const char *str, git_oid_t type)
|
94
|
+
{
|
95
|
+
return git_oid_fromstrn(out, str, git_oid_hexsize(type), type);
|
96
|
+
}
|
97
|
+
#else
|
98
|
+
int git_oid_fromstrn(
|
99
|
+
git_oid *out,
|
100
|
+
const char *str,
|
101
|
+
size_t length)
|
102
|
+
{
|
103
|
+
return git_oid__fromstrn(out, str, length, GIT_OID_SHA1);
|
104
|
+
}
|
105
|
+
|
106
|
+
int git_oid_fromstrp(git_oid *out, const char *str)
|
107
|
+
{
|
108
|
+
return git_oid__fromstrn(out, str, strlen(str), GIT_OID_SHA1);
|
109
|
+
}
|
110
|
+
|
111
|
+
int git_oid_fromstr(git_oid *out, const char *str)
|
112
|
+
{
|
113
|
+
return git_oid__fromstrn(out, str, GIT_OID_SHA1_HEXSIZE, GIT_OID_SHA1);
|
66
114
|
}
|
115
|
+
#endif
|
67
116
|
|
68
117
|
int git_oid_nfmt(char *str, size_t n, const git_oid *oid)
|
69
118
|
{
|
70
|
-
size_t
|
119
|
+
size_t hex_size;
|
71
120
|
|
72
121
|
if (!oid) {
|
73
122
|
memset(str, 0, n);
|
74
123
|
return 0;
|
75
124
|
}
|
76
|
-
if (n > GIT_OID_HEXSZ) {
|
77
|
-
memset(&str[GIT_OID_HEXSZ], 0, n - GIT_OID_HEXSZ);
|
78
|
-
n = GIT_OID_HEXSZ;
|
79
|
-
}
|
80
125
|
|
81
|
-
|
126
|
+
if (!(hex_size = git_oid_hexsize(git_oid_type(oid))))
|
127
|
+
return oid_error_invalid("unknown type");
|
82
128
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
*str++ = to_hex[oid->id[i] >> 4];
|
129
|
+
if (n > hex_size) {
|
130
|
+
memset(&str[hex_size], 0, n - hex_size);
|
131
|
+
n = hex_size;
|
132
|
+
}
|
88
133
|
|
134
|
+
git_oid_fmt_substr(str, oid, 0, n);
|
89
135
|
return 0;
|
90
136
|
}
|
91
137
|
|
92
138
|
int git_oid_fmt(char *str, const git_oid *oid)
|
93
139
|
{
|
94
|
-
return git_oid_nfmt(str,
|
140
|
+
return git_oid_nfmt(str, git_oid_hexsize(git_oid_type(oid)), oid);
|
95
141
|
}
|
96
142
|
|
97
143
|
int git_oid_pathfmt(char *str, const git_oid *oid)
|
98
144
|
{
|
99
|
-
size_t
|
145
|
+
size_t hex_size;
|
100
146
|
|
101
|
-
|
102
|
-
|
103
|
-
for (i = 1; i < sizeof(oid->id); i++)
|
104
|
-
str = fmt_one(str, oid->id[i]);
|
147
|
+
if (!(hex_size = git_oid_hexsize(git_oid_type(oid))))
|
148
|
+
return oid_error_invalid("unknown type");
|
105
149
|
|
150
|
+
git_oid_fmt_substr(str, oid, 0, 2);
|
151
|
+
str[2] = '/';
|
152
|
+
git_oid_fmt_substr(&str[3], oid, 2, (hex_size - 2));
|
106
153
|
return 0;
|
107
154
|
}
|
108
155
|
|
156
|
+
static git_tlsdata_key thread_str_key;
|
157
|
+
|
158
|
+
static void GIT_SYSTEM_CALL thread_str_free(void *s)
|
159
|
+
{
|
160
|
+
char *str = (char *)s;
|
161
|
+
git__free(str);
|
162
|
+
}
|
163
|
+
|
164
|
+
static void thread_str_global_shutdown(void)
|
165
|
+
{
|
166
|
+
char *str = git_tlsdata_get(thread_str_key);
|
167
|
+
git_tlsdata_set(thread_str_key, NULL);
|
168
|
+
|
169
|
+
git__free(str);
|
170
|
+
git_tlsdata_dispose(thread_str_key);
|
171
|
+
}
|
172
|
+
|
173
|
+
int git_oid_global_init(void)
|
174
|
+
{
|
175
|
+
if (git_tlsdata_init(&thread_str_key, thread_str_free) != 0)
|
176
|
+
return -1;
|
177
|
+
|
178
|
+
return git_runtime_shutdown_register(thread_str_global_shutdown);
|
179
|
+
}
|
180
|
+
|
109
181
|
char *git_oid_tostr_s(const git_oid *oid)
|
110
182
|
{
|
111
|
-
char *str
|
112
|
-
|
183
|
+
char *str;
|
184
|
+
|
185
|
+
if ((str = git_tlsdata_get(thread_str_key)) == NULL) {
|
186
|
+
if ((str = git__malloc(GIT_OID_MAX_HEXSIZE + 1)) == NULL)
|
187
|
+
return NULL;
|
188
|
+
|
189
|
+
git_tlsdata_set(thread_str_key, str);
|
190
|
+
}
|
191
|
+
|
192
|
+
git_oid_nfmt(str, git_oid_hexsize(git_oid_type(oid)) + 1, oid);
|
113
193
|
return str;
|
114
194
|
}
|
115
195
|
|
116
196
|
char *git_oid_allocfmt(const git_oid *oid)
|
117
197
|
{
|
118
|
-
|
119
|
-
|
198
|
+
size_t hex_size = git_oid_hexsize(git_oid_type(oid));
|
199
|
+
char *str = git__malloc(hex_size + 1);
|
200
|
+
|
201
|
+
if (!hex_size || !str)
|
202
|
+
return NULL;
|
203
|
+
|
204
|
+
if (git_oid_nfmt(str, hex_size + 1, oid) < 0) {
|
205
|
+
git__free(str);
|
120
206
|
return NULL;
|
121
|
-
|
207
|
+
}
|
208
|
+
|
122
209
|
return str;
|
123
210
|
}
|
124
211
|
|
125
212
|
char *git_oid_tostr(char *out, size_t n, const git_oid *oid)
|
126
213
|
{
|
214
|
+
size_t hex_size;
|
215
|
+
|
127
216
|
if (!out || n == 0)
|
128
217
|
return "";
|
129
218
|
|
130
|
-
|
131
|
-
|
219
|
+
hex_size = oid ? git_oid_hexsize(git_oid_type(oid)) : 0;
|
220
|
+
|
221
|
+
if (n > hex_size + 1)
|
222
|
+
n = hex_size + 1;
|
132
223
|
|
133
224
|
git_oid_nfmt(out, n - 1, oid); /* allow room for terminating NUL */
|
134
225
|
out[n - 1] = '\0';
|
@@ -136,52 +227,44 @@ char *git_oid_tostr(char *out, size_t n, const git_oid *oid)
|
|
136
227
|
return out;
|
137
228
|
}
|
138
229
|
|
139
|
-
int
|
140
|
-
git_oid *oid, const char **buffer_out,
|
141
|
-
const char *buffer_end, const char *header)
|
230
|
+
int git_oid__fromraw(git_oid *out, const unsigned char *raw, git_oid_t type)
|
142
231
|
{
|
143
|
-
|
144
|
-
const size_t header_len = strlen(header);
|
232
|
+
size_t size;
|
145
233
|
|
146
|
-
|
147
|
-
|
148
|
-
if (buffer + (header_len + sha_len + 1) > buffer_end)
|
149
|
-
return -1;
|
150
|
-
|
151
|
-
if (memcmp(buffer, header, header_len) != 0)
|
152
|
-
return -1;
|
153
|
-
|
154
|
-
if (buffer[header_len + sha_len] != '\n')
|
155
|
-
return -1;
|
156
|
-
|
157
|
-
if (git_oid_fromstr(oid, buffer + header_len) < 0)
|
158
|
-
return -1;
|
159
|
-
|
160
|
-
*buffer_out = buffer + (header_len + sha_len + 1);
|
234
|
+
if (!(size = git_oid_size(type)))
|
235
|
+
return oid_error_invalid("unknown type");
|
161
236
|
|
237
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
238
|
+
out->type = type;
|
239
|
+
#endif
|
240
|
+
memcpy(out->id, raw, size);
|
162
241
|
return 0;
|
163
242
|
}
|
164
243
|
|
165
|
-
|
244
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
245
|
+
int git_oid_fromraw(git_oid *out, const unsigned char *raw, git_oid_t type)
|
166
246
|
{
|
167
|
-
|
168
|
-
|
169
|
-
git_oid_fmt(hex_oid, oid);
|
170
|
-
git_buf_puts(buf, header);
|
171
|
-
git_buf_put(buf, hex_oid, GIT_OID_HEXSZ);
|
172
|
-
git_buf_putc(buf, '\n');
|
247
|
+
return git_oid__fromraw(out, raw, type);
|
173
248
|
}
|
174
|
-
|
249
|
+
#else
|
175
250
|
int git_oid_fromraw(git_oid *out, const unsigned char *raw)
|
176
251
|
{
|
177
|
-
|
178
|
-
return 0;
|
252
|
+
return git_oid__fromraw(out, raw, GIT_OID_SHA1);
|
179
253
|
}
|
254
|
+
#endif
|
180
255
|
|
181
256
|
int git_oid_cpy(git_oid *out, const git_oid *src)
|
182
257
|
{
|
183
|
-
|
184
|
-
|
258
|
+
size_t size;
|
259
|
+
|
260
|
+
if (!(size = git_oid_size(git_oid_type(src))))
|
261
|
+
return oid_error_invalid("unknown type");
|
262
|
+
|
263
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
264
|
+
out->type = src->type;
|
265
|
+
#endif
|
266
|
+
|
267
|
+
return git_oid_raw_cpy(out->id, src->id, size);
|
185
268
|
}
|
186
269
|
|
187
270
|
int git_oid_cmp(const git_oid *a, const git_oid *b)
|
@@ -196,34 +279,22 @@ int git_oid_equal(const git_oid *a, const git_oid *b)
|
|
196
279
|
|
197
280
|
int git_oid_ncmp(const git_oid *oid_a, const git_oid *oid_b, size_t len)
|
198
281
|
{
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
len = GIT_OID_HEXSZ;
|
204
|
-
|
205
|
-
while (len > 1) {
|
206
|
-
if (*a != *b)
|
207
|
-
return 1;
|
208
|
-
a++;
|
209
|
-
b++;
|
210
|
-
len -= 2;
|
211
|
-
};
|
212
|
-
|
213
|
-
if (len)
|
214
|
-
if ((*a ^ *b) & 0xf0)
|
215
|
-
return 1;
|
282
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
283
|
+
if (oid_a->type != oid_b->type)
|
284
|
+
return oid_a->type - oid_b->type;
|
285
|
+
#endif
|
216
286
|
|
217
|
-
return
|
287
|
+
return git_oid_raw_ncmp(oid_a->id, oid_b->id, len);
|
218
288
|
}
|
219
289
|
|
220
290
|
int git_oid_strcmp(const git_oid *oid_a, const char *str)
|
221
291
|
{
|
222
292
|
const unsigned char *a;
|
223
293
|
unsigned char strval;
|
294
|
+
long size = (long)git_oid_size(git_oid_type(oid_a));
|
224
295
|
int hexval;
|
225
296
|
|
226
|
-
for (a = oid_a->id; *str && (a - oid_a->id) <
|
297
|
+
for (a = oid_a->id; *str && (a - oid_a->id) < size; ++a) {
|
227
298
|
if ((hexval = git__fromhex(*str++)) < 0)
|
228
299
|
return -1;
|
229
300
|
strval = (unsigned char)(hexval << 4);
|
@@ -247,8 +318,16 @@ int git_oid_streq(const git_oid *oid_a, const char *str)
|
|
247
318
|
int git_oid_is_zero(const git_oid *oid_a)
|
248
319
|
{
|
249
320
|
const unsigned char *a = oid_a->id;
|
250
|
-
|
251
|
-
|
321
|
+
size_t size = git_oid_size(git_oid_type(oid_a)), i;
|
322
|
+
|
323
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
324
|
+
if (!oid_a->type)
|
325
|
+
return 1;
|
326
|
+
else if (!size)
|
327
|
+
return 0;
|
328
|
+
#endif
|
329
|
+
|
330
|
+
for (i = 0; i < size; ++i, ++a)
|
252
331
|
if (*a != 0)
|
253
332
|
return 0;
|
254
333
|
return 1;
|
@@ -405,7 +484,7 @@ int git_oid_shorten_add(git_oid_shorten *os, const char *text_oid)
|
|
405
484
|
idx = 0;
|
406
485
|
is_leaf = false;
|
407
486
|
|
408
|
-
for (i = 0; i <
|
487
|
+
for (i = 0; i < GIT_OID_SHA1_HEXSIZE; ++i) {
|
409
488
|
int c = git__fromhex(text_oid[i]);
|
410
489
|
trie_node *node;
|
411
490
|
|
@@ -0,0 +1,284 @@
|
|
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_oid_h__
|
8
|
+
#define INCLUDE_oid_h__
|
9
|
+
|
10
|
+
#include "common.h"
|
11
|
+
|
12
|
+
#include "git2/experimental.h"
|
13
|
+
#include "git2/oid.h"
|
14
|
+
#include "hash.h"
|
15
|
+
|
16
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
17
|
+
# define GIT_OID_NONE { 0, { 0 } }
|
18
|
+
# define GIT_OID_INIT(type, ...) { type, __VA_ARGS__ }
|
19
|
+
#else
|
20
|
+
# define GIT_OID_NONE { { 0 } }
|
21
|
+
# define GIT_OID_INIT(type, ...) { __VA_ARGS__ }
|
22
|
+
#endif
|
23
|
+
|
24
|
+
extern const git_oid git_oid__empty_blob_sha1;
|
25
|
+
extern const git_oid git_oid__empty_tree_sha1;
|
26
|
+
|
27
|
+
GIT_INLINE(git_oid_t) git_oid_type(const git_oid *oid)
|
28
|
+
{
|
29
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
30
|
+
return oid->type;
|
31
|
+
#else
|
32
|
+
GIT_UNUSED(oid);
|
33
|
+
return GIT_OID_SHA1;
|
34
|
+
#endif
|
35
|
+
}
|
36
|
+
|
37
|
+
GIT_INLINE(size_t) git_oid_size(git_oid_t type)
|
38
|
+
{
|
39
|
+
switch (type) {
|
40
|
+
case GIT_OID_SHA1:
|
41
|
+
return GIT_OID_SHA1_SIZE;
|
42
|
+
|
43
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
44
|
+
case GIT_OID_SHA256:
|
45
|
+
return GIT_OID_SHA256_SIZE;
|
46
|
+
#endif
|
47
|
+
|
48
|
+
}
|
49
|
+
|
50
|
+
return 0;
|
51
|
+
}
|
52
|
+
|
53
|
+
GIT_INLINE(size_t) git_oid_hexsize(git_oid_t type)
|
54
|
+
{
|
55
|
+
switch (type) {
|
56
|
+
case GIT_OID_SHA1:
|
57
|
+
return GIT_OID_SHA1_HEXSIZE;
|
58
|
+
|
59
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
60
|
+
case GIT_OID_SHA256:
|
61
|
+
return GIT_OID_SHA256_HEXSIZE;
|
62
|
+
#endif
|
63
|
+
|
64
|
+
}
|
65
|
+
|
66
|
+
return 0;
|
67
|
+
}
|
68
|
+
|
69
|
+
GIT_INLINE(bool) git_oid_type_is_valid(git_oid_t type)
|
70
|
+
{
|
71
|
+
return (type == GIT_OID_SHA1
|
72
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
73
|
+
|| type == GIT_OID_SHA256
|
74
|
+
#endif
|
75
|
+
);
|
76
|
+
}
|
77
|
+
|
78
|
+
GIT_INLINE(const char *) git_oid_type_name(git_oid_t type)
|
79
|
+
{
|
80
|
+
switch (type) {
|
81
|
+
case GIT_OID_SHA1:
|
82
|
+
return "sha1";
|
83
|
+
|
84
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
85
|
+
case GIT_OID_SHA256:
|
86
|
+
return "sha256";
|
87
|
+
#endif
|
88
|
+
}
|
89
|
+
|
90
|
+
return "unknown";
|
91
|
+
}
|
92
|
+
|
93
|
+
GIT_INLINE(git_oid_t) git_oid_type_fromstr(const char *name)
|
94
|
+
{
|
95
|
+
if (strcmp(name, "sha1") == 0)
|
96
|
+
return GIT_OID_SHA1;
|
97
|
+
|
98
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
99
|
+
if (strcmp(name, "sha256") == 0)
|
100
|
+
return GIT_OID_SHA256;
|
101
|
+
#endif
|
102
|
+
|
103
|
+
return 0;
|
104
|
+
}
|
105
|
+
|
106
|
+
GIT_INLINE(git_oid_t) git_oid_type_fromstrn(const char *name, size_t len)
|
107
|
+
{
|
108
|
+
if (len == CONST_STRLEN("sha1") && strncmp(name, "sha1", len) == 0)
|
109
|
+
return GIT_OID_SHA1;
|
110
|
+
|
111
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
112
|
+
if (len == CONST_STRLEN("sha256") && strncmp(name, "sha256", len) == 0)
|
113
|
+
return GIT_OID_SHA256;
|
114
|
+
#endif
|
115
|
+
|
116
|
+
return 0;
|
117
|
+
}
|
118
|
+
|
119
|
+
GIT_INLINE(git_hash_algorithm_t) git_oid_algorithm(git_oid_t type)
|
120
|
+
{
|
121
|
+
switch (type) {
|
122
|
+
case GIT_OID_SHA1:
|
123
|
+
return GIT_HASH_ALGORITHM_SHA1;
|
124
|
+
|
125
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
126
|
+
case GIT_OID_SHA256:
|
127
|
+
return GIT_HASH_ALGORITHM_SHA256;
|
128
|
+
#endif
|
129
|
+
|
130
|
+
}
|
131
|
+
|
132
|
+
return 0;
|
133
|
+
}
|
134
|
+
|
135
|
+
/**
|
136
|
+
* Format a git_oid into a newly allocated c-string.
|
137
|
+
*
|
138
|
+
* The c-string is owned by the caller and needs to be manually freed.
|
139
|
+
*
|
140
|
+
* @param id the oid structure to format
|
141
|
+
* @return the c-string; NULL if memory is exhausted. Caller must
|
142
|
+
* deallocate the string with git__free().
|
143
|
+
*/
|
144
|
+
char *git_oid_allocfmt(const git_oid *id);
|
145
|
+
|
146
|
+
/**
|
147
|
+
* Format the requested nibbles of an object id.
|
148
|
+
*
|
149
|
+
* @param str the string to write into
|
150
|
+
* @param oid the oid structure to format
|
151
|
+
* @param start the starting number of nibbles
|
152
|
+
* @param count the number of nibbles to format
|
153
|
+
*/
|
154
|
+
GIT_INLINE(void) git_oid_fmt_substr(
|
155
|
+
char *str,
|
156
|
+
const git_oid *oid,
|
157
|
+
size_t start,
|
158
|
+
size_t count)
|
159
|
+
{
|
160
|
+
static char hex[] = "0123456789abcdef";
|
161
|
+
size_t i, end = start + count, min = start / 2, max = end / 2;
|
162
|
+
|
163
|
+
if (start & 1)
|
164
|
+
*str++ = hex[oid->id[min++] & 0x0f];
|
165
|
+
|
166
|
+
for (i = min; i < max; i++) {
|
167
|
+
*str++ = hex[oid->id[i] >> 4];
|
168
|
+
*str++ = hex[oid->id[i] & 0x0f];
|
169
|
+
}
|
170
|
+
|
171
|
+
if (end & 1)
|
172
|
+
*str++ = hex[oid->id[i] >> 4];
|
173
|
+
}
|
174
|
+
|
175
|
+
GIT_INLINE(int) git_oid_raw_ncmp(
|
176
|
+
const unsigned char *sha1,
|
177
|
+
const unsigned char *sha2,
|
178
|
+
size_t len)
|
179
|
+
{
|
180
|
+
if (len > GIT_OID_MAX_HEXSIZE)
|
181
|
+
len = GIT_OID_MAX_HEXSIZE;
|
182
|
+
|
183
|
+
while (len > 1) {
|
184
|
+
if (*sha1 != *sha2)
|
185
|
+
return 1;
|
186
|
+
sha1++;
|
187
|
+
sha2++;
|
188
|
+
len -= 2;
|
189
|
+
};
|
190
|
+
|
191
|
+
if (len)
|
192
|
+
if ((*sha1 ^ *sha2) & 0xf0)
|
193
|
+
return 1;
|
194
|
+
|
195
|
+
return 0;
|
196
|
+
}
|
197
|
+
|
198
|
+
GIT_INLINE(int) git_oid_raw_cmp(
|
199
|
+
const unsigned char *sha1,
|
200
|
+
const unsigned char *sha2,
|
201
|
+
size_t size)
|
202
|
+
{
|
203
|
+
return memcmp(sha1, sha2, size);
|
204
|
+
}
|
205
|
+
|
206
|
+
GIT_INLINE(int) git_oid_raw_cpy(
|
207
|
+
unsigned char *dst,
|
208
|
+
const unsigned char *src,
|
209
|
+
size_t size)
|
210
|
+
{
|
211
|
+
memcpy(dst, src, size);
|
212
|
+
return 0;
|
213
|
+
}
|
214
|
+
|
215
|
+
/*
|
216
|
+
* Compare two oid structures.
|
217
|
+
*
|
218
|
+
* @param a first oid structure.
|
219
|
+
* @param b second oid structure.
|
220
|
+
* @return <0, 0, >0 if a < b, a == b, a > b.
|
221
|
+
*/
|
222
|
+
GIT_INLINE(int) git_oid__cmp(const git_oid *a, const git_oid *b)
|
223
|
+
{
|
224
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
225
|
+
if (a->type != b->type)
|
226
|
+
return a->type - b->type;
|
227
|
+
|
228
|
+
return git_oid_raw_cmp(a->id, b->id, git_oid_size(a->type));
|
229
|
+
#else
|
230
|
+
return git_oid_raw_cmp(a->id, b->id, git_oid_size(GIT_OID_SHA1));
|
231
|
+
#endif
|
232
|
+
}
|
233
|
+
|
234
|
+
GIT_INLINE(void) git_oid__cpy_prefix(
|
235
|
+
git_oid *out, const git_oid *id, size_t len)
|
236
|
+
{
|
237
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
238
|
+
out->type = id->type;
|
239
|
+
#endif
|
240
|
+
|
241
|
+
memcpy(&out->id, id->id, (len + 1) / 2);
|
242
|
+
|
243
|
+
if (len & 1)
|
244
|
+
out->id[len / 2] &= 0xF0;
|
245
|
+
}
|
246
|
+
|
247
|
+
GIT_INLINE(bool) git_oid__is_hexstr(const char *str, git_oid_t type)
|
248
|
+
{
|
249
|
+
size_t i;
|
250
|
+
|
251
|
+
for (i = 0; str[i] != '\0'; i++) {
|
252
|
+
if (git__fromhex(str[i]) < 0)
|
253
|
+
return false;
|
254
|
+
}
|
255
|
+
|
256
|
+
return (i == git_oid_hexsize(type));
|
257
|
+
}
|
258
|
+
|
259
|
+
GIT_INLINE(void) git_oid_clear(git_oid *out, git_oid_t type)
|
260
|
+
{
|
261
|
+
memset(out->id, 0, git_oid_size(type));
|
262
|
+
|
263
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
264
|
+
out->type = type;
|
265
|
+
#endif
|
266
|
+
}
|
267
|
+
|
268
|
+
/* SHA256 support */
|
269
|
+
|
270
|
+
int git_oid__fromstr(git_oid *out, const char *str, git_oid_t type);
|
271
|
+
|
272
|
+
int git_oid__fromstrp(git_oid *out, const char *str, git_oid_t type);
|
273
|
+
|
274
|
+
int git_oid__fromstrn(
|
275
|
+
git_oid *out,
|
276
|
+
const char *str,
|
277
|
+
size_t length,
|
278
|
+
git_oid_t type);
|
279
|
+
|
280
|
+
int git_oid__fromraw(git_oid *out, const unsigned char *raw, git_oid_t type);
|
281
|
+
|
282
|
+
int git_oid_global_init(void);
|
283
|
+
|
284
|
+
#endif
|