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
@@ -19,11 +19,12 @@
|
|
19
19
|
#include "array.h"
|
20
20
|
#include "cache.h"
|
21
21
|
#include "refs.h"
|
22
|
-
#include "
|
22
|
+
#include "str.h"
|
23
23
|
#include "object.h"
|
24
24
|
#include "attrcache.h"
|
25
25
|
#include "submodule.h"
|
26
26
|
#include "diff_driver.h"
|
27
|
+
#include "grafts.h"
|
27
28
|
|
28
29
|
#define DOT_GIT ".git"
|
29
30
|
#define GIT_DIR DOT_GIT "/"
|
@@ -34,6 +35,7 @@
|
|
34
35
|
#define GIT_DIR_SHORTNAME "GIT~1"
|
35
36
|
|
36
37
|
extern bool git_repository__fsync_gitdir;
|
38
|
+
extern bool git_repository__validate_ownership;
|
37
39
|
|
38
40
|
/** Cvar cache identifiers */
|
39
41
|
typedef enum {
|
@@ -100,6 +102,8 @@ typedef enum {
|
|
100
102
|
/* core.trustctime */
|
101
103
|
GIT_TRUSTCTIME_DEFAULT = GIT_CONFIGMAP_TRUE,
|
102
104
|
/* core.abbrev */
|
105
|
+
GIT_ABBREV_FALSE = GIT_OID_MAX_HEXSIZE,
|
106
|
+
GIT_ABBREV_MINIMUM = 4,
|
103
107
|
GIT_ABBREV_DEFAULT = 7,
|
104
108
|
/* core.precomposeunicode */
|
105
109
|
GIT_PRECOMPOSE_DEFAULT = GIT_CONFIGMAP_FALSE,
|
@@ -118,14 +122,14 @@ typedef enum {
|
|
118
122
|
/* core.fsyncObjectFiles */
|
119
123
|
GIT_FSYNCOBJECTFILES_DEFAULT = GIT_CONFIGMAP_FALSE,
|
120
124
|
/* core.longpaths */
|
121
|
-
GIT_LONGPATHS_DEFAULT = GIT_CONFIGMAP_FALSE
|
125
|
+
GIT_LONGPATHS_DEFAULT = GIT_CONFIGMAP_FALSE
|
122
126
|
} git_configmap_value;
|
123
127
|
|
124
128
|
/* internal repository init flags */
|
125
129
|
enum {
|
126
130
|
GIT_REPOSITORY_INIT__HAS_DOTGIT = (1u << 16),
|
127
131
|
GIT_REPOSITORY_INIT__NATURAL_WD = (1u << 17),
|
128
|
-
GIT_REPOSITORY_INIT__IS_REINIT = (1u << 18)
|
132
|
+
GIT_REPOSITORY_INIT__IS_REINIT = (1u << 18)
|
129
133
|
};
|
130
134
|
|
131
135
|
/** Internal structure for repository object */
|
@@ -148,17 +152,22 @@ struct git_repository {
|
|
148
152
|
char *ident_name;
|
149
153
|
char *ident_email;
|
150
154
|
|
151
|
-
git_array_t(
|
155
|
+
git_array_t(git_str) reserved_names;
|
152
156
|
|
153
|
-
unsigned
|
154
|
-
|
157
|
+
unsigned use_env:1,
|
158
|
+
is_bare:1,
|
159
|
+
is_worktree:1;
|
160
|
+
git_oid_t oid_type;
|
155
161
|
|
156
162
|
unsigned int lru_counter;
|
157
163
|
|
164
|
+
git_grafts *grafts;
|
165
|
+
git_grafts *shallow_grafts;
|
166
|
+
|
158
167
|
git_atomic32 attr_session_key;
|
159
168
|
|
160
169
|
intptr_t configmap_cache[GIT_CONFIGMAP_CACHE_MAX];
|
161
|
-
|
170
|
+
git_submodule_cache *submodule_cache;
|
162
171
|
};
|
163
172
|
|
164
173
|
GIT_INLINE(git_attr_cache *) git_repository_attr_cache(git_repository *repo)
|
@@ -166,6 +175,7 @@ GIT_INLINE(git_attr_cache *) git_repository_attr_cache(git_repository *repo)
|
|
166
175
|
return repo->attrcache;
|
167
176
|
}
|
168
177
|
|
178
|
+
int git_repository_head_commit(git_commit **commit, git_repository *repo);
|
169
179
|
int git_repository_head_tree(git_tree **tree, git_repository *repo);
|
170
180
|
int git_repository_create_head(const char *git_dir, const char *ref_name);
|
171
181
|
|
@@ -186,6 +196,8 @@ int git_repository_config__weakptr(git_config **out, git_repository *repo);
|
|
186
196
|
int git_repository_odb__weakptr(git_odb **out, git_repository *repo);
|
187
197
|
int git_repository_refdb__weakptr(git_refdb **out, git_repository *repo);
|
188
198
|
int git_repository_index__weakptr(git_index **out, git_repository *repo);
|
199
|
+
int git_repository_grafts__weakptr(git_grafts **out, git_repository *repo);
|
200
|
+
int git_repository_shallow_grafts__weakptr(git_grafts **out, git_repository *repo);
|
189
201
|
|
190
202
|
/*
|
191
203
|
* Configuration map cache
|
@@ -196,6 +208,11 @@ int git_repository_index__weakptr(git_index **out, git_repository *repo);
|
|
196
208
|
int git_repository__configmap_lookup(int *out, git_repository *repo, git_configmap_item item);
|
197
209
|
void git_repository__configmap_lookup_cache_clear(git_repository *repo);
|
198
210
|
|
211
|
+
/** Return the length that object names will be abbreviated to. */
|
212
|
+
int git_repository__abbrev_length(int *out, git_repository *repo);
|
213
|
+
|
214
|
+
int git_repository__item_path(git_str *out, const git_repository *repo, git_repository_item_t item);
|
215
|
+
|
199
216
|
GIT_INLINE(int) git_repository__ensure_not_bare(
|
200
217
|
git_repository *repo,
|
201
218
|
const char *operation_name)
|
@@ -216,10 +233,10 @@ int git_repository__set_orig_head(git_repository *repo, const git_oid *orig_head
|
|
216
233
|
int git_repository__cleanup_files(git_repository *repo, const char *files[], size_t files_len);
|
217
234
|
|
218
235
|
/* The default "reserved names" for a repository */
|
219
|
-
extern
|
236
|
+
extern git_str git_repository__reserved_names_win32[];
|
220
237
|
extern size_t git_repository__reserved_names_win32_len;
|
221
238
|
|
222
|
-
extern
|
239
|
+
extern git_str git_repository__reserved_names_posix[];
|
223
240
|
extern size_t git_repository__reserved_names_posix_len;
|
224
241
|
|
225
242
|
/*
|
@@ -233,13 +250,16 @@ extern size_t git_repository__reserved_names_posix_len;
|
|
233
250
|
* will still be populated with good defaults.
|
234
251
|
*/
|
235
252
|
bool git_repository__reserved_names(
|
236
|
-
|
253
|
+
git_str **out, size_t *outlen, git_repository *repo, bool include_ntfs);
|
254
|
+
|
255
|
+
int git_repository__shallow_roots(git_oid **out, size_t *out_len, git_repository *repo);
|
256
|
+
int git_repository__shallow_roots_write(git_repository *repo, git_oidarray *roots);
|
237
257
|
|
238
258
|
/*
|
239
259
|
* The default branch for the repository; the `init.defaultBranch`
|
240
260
|
* configuration option, if set, or `master` if it is not.
|
241
261
|
*/
|
242
|
-
int git_repository_initialbranch(
|
262
|
+
int git_repository_initialbranch(git_str *out, git_repository *repo);
|
243
263
|
|
244
264
|
/*
|
245
265
|
* Given a relative `path`, this makes it absolute based on the
|
@@ -247,10 +267,21 @@ int git_repository_initialbranch(git_buf *out, git_repository *repo);
|
|
247
267
|
* to ensure that the path is not longer than MAX_PATH on Windows
|
248
268
|
* (unless `core.longpaths` is set in the repo config).
|
249
269
|
*/
|
250
|
-
int git_repository_workdir_path(
|
270
|
+
int git_repository_workdir_path(git_str *out, git_repository *repo, const char *path);
|
251
271
|
|
252
272
|
int git_repository__extensions(char ***out, size_t *out_len);
|
253
273
|
int git_repository__set_extensions(const char **extensions, size_t len);
|
254
274
|
void git_repository__free_extensions(void);
|
255
275
|
|
276
|
+
/*
|
277
|
+
* Set the object format (OID type) for a repository; this will set
|
278
|
+
* both the configuration and the internal value for the oid type.
|
279
|
+
*/
|
280
|
+
int git_repository__set_objectformat(
|
281
|
+
git_repository *repo,
|
282
|
+
git_oid_t oid_type);
|
283
|
+
|
284
|
+
/* SHA256-aware internal functions */
|
285
|
+
int git_repository__new(git_repository **out, git_oid_t oid_type);
|
286
|
+
|
256
287
|
#endif
|
@@ -111,7 +111,7 @@ static int reset(
|
|
111
111
|
git_tree *tree = NULL;
|
112
112
|
int error = 0;
|
113
113
|
git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT;
|
114
|
-
|
114
|
+
git_str log_message = GIT_STR_INIT;
|
115
115
|
|
116
116
|
GIT_ASSERT_ARG(repo);
|
117
117
|
GIT_ASSERT_ARG(target);
|
@@ -144,7 +144,7 @@ static int reset(
|
|
144
144
|
goto cleanup;
|
145
145
|
}
|
146
146
|
|
147
|
-
if ((error =
|
147
|
+
if ((error = git_str_printf(&log_message, "reset: moving to %s", to)) < 0)
|
148
148
|
return error;
|
149
149
|
|
150
150
|
if (reset_type == GIT_RESET_HARD) {
|
@@ -157,7 +157,7 @@ static int reset(
|
|
157
157
|
|
158
158
|
/* move HEAD to the new target */
|
159
159
|
if ((error = git_reference__update_terminal(repo, GIT_HEAD_FILE,
|
160
|
-
git_object_id(commit), NULL,
|
160
|
+
git_object_id(commit), NULL, git_str_cstr(&log_message))) < 0)
|
161
161
|
goto cleanup;
|
162
162
|
|
163
163
|
if (reset_type > GIT_RESET_SOFT) {
|
@@ -177,7 +177,7 @@ cleanup:
|
|
177
177
|
git_object_free(commit);
|
178
178
|
git_index_free(index);
|
179
179
|
git_tree_free(tree);
|
180
|
-
|
180
|
+
git_str_dispose(&log_message);
|
181
181
|
|
182
182
|
return error;
|
183
183
|
}
|
@@ -188,7 +188,10 @@ int git_reset(
|
|
188
188
|
git_reset_t reset_type,
|
189
189
|
const git_checkout_options *checkout_opts)
|
190
190
|
{
|
191
|
-
|
191
|
+
char to[GIT_OID_MAX_HEXSIZE + 1];
|
192
|
+
|
193
|
+
git_oid_tostr(to, GIT_OID_MAX_HEXSIZE + 1, git_object_id(target));
|
194
|
+
return reset(repo, target, to, reset_type, checkout_opts);
|
192
195
|
}
|
193
196
|
|
194
197
|
int git_reset_from_annotated(
|
@@ -25,10 +25,10 @@ static int write_revert_head(
|
|
25
25
|
const char *commit_oidstr)
|
26
26
|
{
|
27
27
|
git_filebuf file = GIT_FILEBUF_INIT;
|
28
|
-
|
28
|
+
git_str file_path = GIT_STR_INIT;
|
29
29
|
int error = 0;
|
30
30
|
|
31
|
-
if ((error =
|
31
|
+
if ((error = git_str_joinpath(&file_path, repo->gitdir, GIT_REVERT_HEAD_FILE)) >= 0 &&
|
32
32
|
(error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_REVERT_FILE_MODE)) >= 0 &&
|
33
33
|
(error = git_filebuf_printf(&file, "%s\n", commit_oidstr)) >= 0)
|
34
34
|
error = git_filebuf_commit(&file);
|
@@ -36,7 +36,7 @@ static int write_revert_head(
|
|
36
36
|
if (error < 0)
|
37
37
|
git_filebuf_cleanup(&file);
|
38
38
|
|
39
|
-
|
39
|
+
git_str_dispose(&file_path);
|
40
40
|
|
41
41
|
return error;
|
42
42
|
}
|
@@ -47,10 +47,10 @@ static int write_merge_msg(
|
|
47
47
|
const char *commit_msgline)
|
48
48
|
{
|
49
49
|
git_filebuf file = GIT_FILEBUF_INIT;
|
50
|
-
|
50
|
+
git_str file_path = GIT_STR_INIT;
|
51
51
|
int error = 0;
|
52
52
|
|
53
|
-
if ((error =
|
53
|
+
if ((error = git_str_joinpath(&file_path, repo->gitdir, GIT_MERGE_MSG_FILE)) < 0 ||
|
54
54
|
(error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_REVERT_FILE_MODE)) < 0 ||
|
55
55
|
(error = git_filebuf_printf(&file, "Revert \"%s\"\n\nThis reverts commit %s.\n",
|
56
56
|
commit_msgline, commit_oidstr)) < 0)
|
@@ -62,7 +62,7 @@ cleanup:
|
|
62
62
|
if (error < 0)
|
63
63
|
git_filebuf_cleanup(&file);
|
64
64
|
|
65
|
-
|
65
|
+
git_str_dispose(&file_path);
|
66
66
|
|
67
67
|
return error;
|
68
68
|
}
|
@@ -74,8 +74,7 @@ static int revert_normalize_opts(
|
|
74
74
|
const char *their_label)
|
75
75
|
{
|
76
76
|
int error = 0;
|
77
|
-
unsigned int default_checkout_strategy =
|
78
|
-
GIT_CHECKOUT_ALLOW_CONFLICTS;
|
77
|
+
unsigned int default_checkout_strategy = GIT_CHECKOUT_ALLOW_CONFLICTS;
|
79
78
|
|
80
79
|
GIT_UNUSED(repo);
|
81
80
|
|
@@ -107,12 +106,10 @@ static int revert_state_cleanup(git_repository *repo)
|
|
107
106
|
|
108
107
|
static int revert_seterr(git_commit *commit, const char *fmt)
|
109
108
|
{
|
110
|
-
char
|
109
|
+
char commit_id[GIT_OID_MAX_HEXSIZE + 1];
|
111
110
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
git_error_set(GIT_ERROR_REVERT, fmt, commit_oidstr);
|
111
|
+
git_oid_tostr(commit_id, GIT_OID_MAX_HEXSIZE + 1, git_commit_id(commit));
|
112
|
+
git_error_set(GIT_ERROR_REVERT, fmt, commit_id);
|
116
113
|
|
117
114
|
return -1;
|
118
115
|
}
|
@@ -176,9 +173,9 @@ int git_revert(
|
|
176
173
|
git_revert_options opts;
|
177
174
|
git_reference *our_ref = NULL;
|
178
175
|
git_commit *our_commit = NULL;
|
179
|
-
char
|
176
|
+
char commit_id[GIT_OID_MAX_HEXSIZE + 1];
|
180
177
|
const char *commit_msg;
|
181
|
-
|
178
|
+
git_str their_label = GIT_STR_INIT;
|
182
179
|
git_index *index = NULL;
|
183
180
|
git_indexwriter indexwriter = GIT_INDEXWRITER_INIT;
|
184
181
|
int error;
|
@@ -191,19 +188,18 @@ int git_revert(
|
|
191
188
|
if ((error = git_repository__ensure_not_bare(repo, "revert")) < 0)
|
192
189
|
return error;
|
193
190
|
|
194
|
-
|
195
|
-
commit_oidstr[GIT_OID_HEXSZ] = '\0';
|
191
|
+
git_oid_tostr(commit_id, GIT_OID_MAX_HEXSIZE + 1, git_commit_id(commit));
|
196
192
|
|
197
193
|
if ((commit_msg = git_commit_summary(commit)) == NULL) {
|
198
194
|
error = -1;
|
199
195
|
goto on_error;
|
200
196
|
}
|
201
197
|
|
202
|
-
if ((error =
|
203
|
-
(error = revert_normalize_opts(repo, &opts, given_opts,
|
198
|
+
if ((error = git_str_printf(&their_label, "parent of %.7s... %s", commit_id, commit_msg)) < 0 ||
|
199
|
+
(error = revert_normalize_opts(repo, &opts, given_opts, git_str_cstr(&their_label))) < 0 ||
|
204
200
|
(error = git_indexwriter_init_for_operation(&indexwriter, repo, &opts.checkout_opts.checkout_strategy)) < 0 ||
|
205
|
-
(error = write_revert_head(repo,
|
206
|
-
(error = write_merge_msg(repo,
|
201
|
+
(error = write_revert_head(repo, commit_id)) < 0 ||
|
202
|
+
(error = write_merge_msg(repo, commit_id, commit_msg)) < 0 ||
|
207
203
|
(error = git_repository_head(&our_ref, repo)) < 0 ||
|
208
204
|
(error = git_reference_peel((git_object **)&our_commit, our_ref, GIT_OBJECT_COMMIT)) < 0 ||
|
209
205
|
(error = git_revert_commit(&index, repo, commit, our_commit, opts.mainline, &opts.merge_opts)) < 0 ||
|
@@ -223,7 +219,7 @@ done:
|
|
223
219
|
git_index_free(index);
|
224
220
|
git_commit_free(our_commit);
|
225
221
|
git_reference_free(our_ref);
|
226
|
-
|
222
|
+
git_str_dispose(&their_label);
|
227
223
|
|
228
224
|
return error;
|
229
225
|
}
|
@@ -7,28 +7,36 @@
|
|
7
7
|
|
8
8
|
#include "common.h"
|
9
9
|
|
10
|
-
#include "
|
10
|
+
#include "str.h"
|
11
11
|
#include "tree.h"
|
12
12
|
#include "refdb.h"
|
13
13
|
#include "regexp.h"
|
14
|
+
#include "date.h"
|
14
15
|
|
15
16
|
#include "git2.h"
|
16
17
|
|
17
|
-
static int maybe_sha_or_abbrev(
|
18
|
+
static int maybe_sha_or_abbrev(
|
19
|
+
git_object **out,
|
20
|
+
git_repository *repo,
|
21
|
+
const char *spec,
|
22
|
+
size_t speclen)
|
18
23
|
{
|
19
24
|
git_oid oid;
|
20
25
|
|
21
|
-
if (
|
26
|
+
if (git_oid__fromstrn(&oid, spec, speclen, repo->oid_type) < 0)
|
22
27
|
return GIT_ENOTFOUND;
|
23
28
|
|
24
29
|
return git_object_lookup_prefix(out, repo, &oid, speclen, GIT_OBJECT_ANY);
|
25
30
|
}
|
26
31
|
|
27
|
-
static int maybe_sha(
|
32
|
+
static int maybe_sha(
|
33
|
+
git_object **out,
|
34
|
+
git_repository *repo,
|
35
|
+
const char *spec)
|
28
36
|
{
|
29
37
|
size_t speclen = strlen(spec);
|
30
38
|
|
31
|
-
if (speclen !=
|
39
|
+
if (speclen != git_oid_hexsize(repo->oid_type))
|
32
40
|
return GIT_ENOTFOUND;
|
33
41
|
|
34
42
|
return maybe_sha_or_abbrev(out, repo, spec, speclen);
|
@@ -109,8 +117,8 @@ static int revparse_lookup_object(
|
|
109
117
|
if (error != GIT_ENOTFOUND)
|
110
118
|
return error;
|
111
119
|
|
112
|
-
if ((strlen(spec) <
|
113
|
-
|
120
|
+
if ((strlen(spec) < git_oid_hexsize(repo->oid_type)) &&
|
121
|
+
((error = maybe_abbrev(object_out, repo, spec)) != GIT_ENOTFOUND))
|
114
122
|
return error;
|
115
123
|
|
116
124
|
if ((error = maybe_describe(object_out, repo, spec)) != GIT_ENOTFOUND)
|
@@ -145,7 +153,7 @@ static int retrieve_previously_checked_out_branch_or_revision(git_object **out,
|
|
145
153
|
size_t i, numentries, cur;
|
146
154
|
const git_reflog_entry *entry;
|
147
155
|
const char *msg;
|
148
|
-
|
156
|
+
git_str buf = GIT_STR_INIT;
|
149
157
|
|
150
158
|
cur = position;
|
151
159
|
|
@@ -179,16 +187,16 @@ static int retrieve_previously_checked_out_branch_or_revision(git_object **out,
|
|
179
187
|
if (cur > 0)
|
180
188
|
continue;
|
181
189
|
|
182
|
-
if ((
|
190
|
+
if ((git_str_put(&buf, msg+regexmatches[1].start, regexmatches[1].end - regexmatches[1].start)) < 0)
|
183
191
|
goto cleanup;
|
184
192
|
|
185
|
-
if ((error = git_reference_dwim(base_ref, repo,
|
193
|
+
if ((error = git_reference_dwim(base_ref, repo, git_str_cstr(&buf))) == 0)
|
186
194
|
goto cleanup;
|
187
195
|
|
188
196
|
if (error < 0 && error != GIT_ENOTFOUND)
|
189
197
|
goto cleanup;
|
190
198
|
|
191
|
-
error = maybe_abbrev(out, repo,
|
199
|
+
error = maybe_abbrev(out, repo, git_str_cstr(&buf));
|
192
200
|
|
193
201
|
goto cleanup;
|
194
202
|
}
|
@@ -197,7 +205,7 @@ static int retrieve_previously_checked_out_branch_or_revision(git_object **out,
|
|
197
205
|
|
198
206
|
cleanup:
|
199
207
|
git_reference_free(ref);
|
200
|
-
|
208
|
+
git_str_dispose(&buf);
|
201
209
|
git_regexp_dispose(&preg);
|
202
210
|
git_reflog_free(reflog);
|
203
211
|
return error;
|
@@ -207,7 +215,7 @@ static int retrieve_oid_from_reflog(git_oid *oid, git_reference *ref, size_t ide
|
|
207
215
|
{
|
208
216
|
git_reflog *reflog;
|
209
217
|
size_t numentries;
|
210
|
-
const git_reflog_entry *entry;
|
218
|
+
const git_reflog_entry *entry = NULL;
|
211
219
|
bool search_by_pos = (identifier <= 100000000);
|
212
220
|
|
213
221
|
if (git_reflog_read(&reflog, git_reference_owner(ref), git_reference_name(ref)) < 0)
|
@@ -236,8 +244,15 @@ static int retrieve_oid_from_reflog(git_oid *oid, git_reference *ref, size_t ide
|
|
236
244
|
break;
|
237
245
|
}
|
238
246
|
|
239
|
-
if (i == numentries)
|
240
|
-
|
247
|
+
if (i == numentries) {
|
248
|
+
if (entry == NULL)
|
249
|
+
goto notfound;
|
250
|
+
|
251
|
+
/*
|
252
|
+
* TODO: emit a warning (log for 'branch' only goes back to ...)
|
253
|
+
*/
|
254
|
+
git_oid_cpy(oid, git_reflog_entry_id_new(entry));
|
255
|
+
}
|
241
256
|
}
|
242
257
|
|
243
258
|
git_reflog_free(reflog);
|
@@ -260,7 +275,16 @@ static int retrieve_revobject_from_reflog(git_object **out, git_reference **base
|
|
260
275
|
int error = -1;
|
261
276
|
|
262
277
|
if (*base_ref == NULL) {
|
263
|
-
|
278
|
+
/*
|
279
|
+
* When HEAD@{n} is specified, do not use dwim, which would resolve the
|
280
|
+
* reference (to the current branch that HEAD is pointing to).
|
281
|
+
*/
|
282
|
+
if (position > 0 && strcmp(identifier, GIT_HEAD_FILE) == 0)
|
283
|
+
error = git_reference_lookup(&ref, repo, GIT_HEAD_FILE);
|
284
|
+
else
|
285
|
+
error = git_reference_dwim(&ref, repo, identifier);
|
286
|
+
|
287
|
+
if (error < 0)
|
264
288
|
return error;
|
265
289
|
} else {
|
266
290
|
ref = *base_ref;
|
@@ -314,12 +338,12 @@ static int handle_at_syntax(git_object **out, git_reference **ref, const char *s
|
|
314
338
|
{
|
315
339
|
bool is_numeric;
|
316
340
|
int parsed = 0, error = -1;
|
317
|
-
|
341
|
+
git_str identifier = GIT_STR_INIT;
|
318
342
|
git_time_t timestamp;
|
319
343
|
|
320
344
|
GIT_ASSERT(*out == NULL);
|
321
345
|
|
322
|
-
if (
|
346
|
+
if (git_str_put(&identifier, spec, identifier_len) < 0)
|
323
347
|
return -1;
|
324
348
|
|
325
349
|
is_numeric = !try_parse_numeric(&parsed, curly_braces_content);
|
@@ -331,26 +355,28 @@ static int handle_at_syntax(git_object **out, git_reference **ref, const char *s
|
|
331
355
|
|
332
356
|
if (is_numeric) {
|
333
357
|
if (parsed < 0)
|
334
|
-
error = retrieve_previously_checked_out_branch_or_revision(out, ref, repo,
|
358
|
+
error = retrieve_previously_checked_out_branch_or_revision(out, ref, repo, git_str_cstr(&identifier), -parsed);
|
335
359
|
else
|
336
|
-
error = retrieve_revobject_from_reflog(out, ref, repo,
|
360
|
+
error = retrieve_revobject_from_reflog(out, ref, repo, git_str_cstr(&identifier), parsed);
|
337
361
|
|
338
362
|
goto cleanup;
|
339
363
|
}
|
340
364
|
|
341
365
|
if (!strcmp(curly_braces_content, "u") || !strcmp(curly_braces_content, "upstream")) {
|
342
|
-
error = retrieve_remote_tracking_reference(ref,
|
366
|
+
error = retrieve_remote_tracking_reference(ref, git_str_cstr(&identifier), repo);
|
343
367
|
|
344
368
|
goto cleanup;
|
345
369
|
}
|
346
370
|
|
347
|
-
if (
|
371
|
+
if (git_date_parse(×tamp, curly_braces_content) < 0) {
|
372
|
+
error = GIT_EINVALIDSPEC;
|
348
373
|
goto cleanup;
|
374
|
+
}
|
349
375
|
|
350
|
-
error = retrieve_revobject_from_reflog(out, ref, repo,
|
376
|
+
error = retrieve_revobject_from_reflog(out, ref, repo, git_str_cstr(&identifier), (size_t)timestamp);
|
351
377
|
|
352
378
|
cleanup:
|
353
|
-
|
379
|
+
git_str_dispose(&identifier);
|
354
380
|
return error;
|
355
381
|
}
|
356
382
|
|
@@ -520,9 +546,9 @@ static int handle_caret_curly_syntax(git_object **out, git_object *obj, const ch
|
|
520
546
|
return git_object_peel(out, obj, expected_type);
|
521
547
|
}
|
522
548
|
|
523
|
-
static int extract_curly_braces_content(
|
549
|
+
static int extract_curly_braces_content(git_str *buf, const char *spec, size_t *pos)
|
524
550
|
{
|
525
|
-
|
551
|
+
git_str_clear(buf);
|
526
552
|
|
527
553
|
GIT_ASSERT_ARG(spec[*pos] == '^' || spec[*pos] == '@');
|
528
554
|
|
@@ -537,7 +563,7 @@ static int extract_curly_braces_content(git_buf *buf, const char *spec, size_t *
|
|
537
563
|
if (spec[*pos] == '\0')
|
538
564
|
return GIT_EINVALIDSPEC;
|
539
565
|
|
540
|
-
if (
|
566
|
+
if (git_str_putc(buf, spec[(*pos)++]) < 0)
|
541
567
|
return -1;
|
542
568
|
}
|
543
569
|
|
@@ -546,18 +572,18 @@ static int extract_curly_braces_content(git_buf *buf, const char *spec, size_t *
|
|
546
572
|
return 0;
|
547
573
|
}
|
548
574
|
|
549
|
-
static int extract_path(
|
575
|
+
static int extract_path(git_str *buf, const char *spec, size_t *pos)
|
550
576
|
{
|
551
|
-
|
577
|
+
git_str_clear(buf);
|
552
578
|
|
553
579
|
GIT_ASSERT_ARG(spec[*pos] == ':');
|
554
580
|
|
555
581
|
(*pos)++;
|
556
582
|
|
557
|
-
if (
|
583
|
+
if (git_str_puts(buf, spec + *pos) < 0)
|
558
584
|
return -1;
|
559
585
|
|
560
|
-
*pos +=
|
586
|
+
*pos += git_str_len(buf);
|
561
587
|
|
562
588
|
return 0;
|
563
589
|
}
|
@@ -610,7 +636,7 @@ static int object_from_reference(git_object **object, git_reference *reference)
|
|
610
636
|
static int ensure_base_rev_loaded(git_object **object, git_reference **reference, const char *spec, size_t identifier_len, git_repository *repo, bool allow_empty_identifier)
|
611
637
|
{
|
612
638
|
int error;
|
613
|
-
|
639
|
+
git_str identifier = GIT_STR_INIT;
|
614
640
|
|
615
641
|
if (*object != NULL)
|
616
642
|
return 0;
|
@@ -621,11 +647,11 @@ static int ensure_base_rev_loaded(git_object **object, git_reference **reference
|
|
621
647
|
if (!allow_empty_identifier && identifier_len == 0)
|
622
648
|
return GIT_EINVALIDSPEC;
|
623
649
|
|
624
|
-
if (
|
650
|
+
if (git_str_put(&identifier, spec, identifier_len) < 0)
|
625
651
|
return -1;
|
626
652
|
|
627
|
-
error = revparse_lookup_object(object, reference, repo,
|
628
|
-
|
653
|
+
error = revparse_lookup_object(object, reference, repo, git_str_cstr(&identifier));
|
654
|
+
git_str_dispose(&identifier);
|
629
655
|
|
630
656
|
return error;
|
631
657
|
}
|
@@ -669,12 +695,13 @@ static int revparse(
|
|
669
695
|
{
|
670
696
|
size_t pos = 0, identifier_len = 0;
|
671
697
|
int error = -1, n;
|
672
|
-
|
698
|
+
git_str buf = GIT_STR_INIT;
|
673
699
|
|
674
700
|
git_reference *reference = NULL;
|
675
701
|
git_object *base_rev = NULL;
|
676
702
|
|
677
703
|
bool should_return_reference = true;
|
704
|
+
bool parsed = false;
|
678
705
|
|
679
706
|
GIT_ASSERT_ARG(object_out);
|
680
707
|
GIT_ASSERT_ARG(reference_out);
|
@@ -684,7 +711,7 @@ static int revparse(
|
|
684
711
|
*object_out = NULL;
|
685
712
|
*reference_out = NULL;
|
686
713
|
|
687
|
-
while (spec[pos]) {
|
714
|
+
while (!parsed && spec[pos]) {
|
688
715
|
switch (spec[pos]) {
|
689
716
|
case '^':
|
690
717
|
should_return_reference = false;
|
@@ -698,7 +725,7 @@ static int revparse(
|
|
698
725
|
if ((error = extract_curly_braces_content(&buf, spec, &pos)) < 0)
|
699
726
|
goto cleanup;
|
700
727
|
|
701
|
-
if ((error = handle_caret_curly_syntax(&temp_object, base_rev,
|
728
|
+
if ((error = handle_caret_curly_syntax(&temp_object, base_rev, git_str_cstr(&buf))) < 0)
|
702
729
|
goto cleanup;
|
703
730
|
|
704
731
|
git_object_free(base_rev);
|
@@ -750,11 +777,11 @@ static int revparse(
|
|
750
777
|
if ((error = ensure_base_rev_loaded(&base_rev, &reference, spec, identifier_len, repo, true)) < 0)
|
751
778
|
goto cleanup;
|
752
779
|
|
753
|
-
if ((error = handle_colon_syntax(&temp_object, base_rev,
|
780
|
+
if ((error = handle_colon_syntax(&temp_object, base_rev, git_str_cstr(&buf))) < 0)
|
754
781
|
goto cleanup;
|
755
782
|
} else {
|
756
|
-
if (*
|
757
|
-
if ((error = handle_grep_syntax(&temp_object, repo, NULL,
|
783
|
+
if (*git_str_cstr(&buf) == '/') {
|
784
|
+
if ((error = handle_grep_syntax(&temp_object, repo, NULL, git_str_cstr(&buf) + 1)) < 0)
|
758
785
|
goto cleanup;
|
759
786
|
} else {
|
760
787
|
|
@@ -783,12 +810,17 @@ static int revparse(
|
|
783
810
|
if ((error = ensure_base_rev_is_not_known_yet(base_rev)) < 0)
|
784
811
|
goto cleanup;
|
785
812
|
|
786
|
-
if ((error = handle_at_syntax(&temp_object, &reference, spec, identifier_len, repo,
|
813
|
+
if ((error = handle_at_syntax(&temp_object, &reference, spec, identifier_len, repo, git_str_cstr(&buf))) < 0)
|
787
814
|
goto cleanup;
|
788
815
|
|
789
816
|
if (temp_object != NULL)
|
790
817
|
base_rev = temp_object;
|
791
818
|
break;
|
819
|
+
} else if (spec[pos + 1] == '\0' && !pos) {
|
820
|
+
spec = "HEAD";
|
821
|
+
identifier_len = 4;
|
822
|
+
parsed = true;
|
823
|
+
break;
|
792
824
|
}
|
793
825
|
/* fall through */
|
794
826
|
|
@@ -824,7 +856,7 @@ cleanup:
|
|
824
856
|
git_reference_free(reference);
|
825
857
|
}
|
826
858
|
|
827
|
-
|
859
|
+
git_str_dispose(&buf);
|
828
860
|
return error;
|
829
861
|
}
|
830
862
|
|
@@ -903,7 +935,7 @@ int git_revparse(
|
|
903
935
|
* allowed.
|
904
936
|
*/
|
905
937
|
if (!git__strcmp(spec, "..")) {
|
906
|
-
git_error_set(GIT_ERROR_INVALID, "
|
938
|
+
git_error_set(GIT_ERROR_INVALID, "invalid pattern '..'");
|
907
939
|
return GIT_EINVALIDSPEC;
|
908
940
|
}
|
909
941
|
|