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
@@ -13,7 +13,6 @@
|
|
13
13
|
#include "refdb.h"
|
14
14
|
|
15
15
|
#include "git2/sys/refdb_backend.h"
|
16
|
-
#include "git2/sys/reflog.h"
|
17
16
|
|
18
17
|
void git_reflog_entry__free(git_reflog_entry *entry)
|
19
18
|
{
|
@@ -40,7 +39,7 @@ void git_reflog_free(git_reflog *reflog)
|
|
40
39
|
git_reflog_entry__free(entry);
|
41
40
|
}
|
42
41
|
|
43
|
-
|
42
|
+
git_vector_dispose(&reflog->entries);
|
44
43
|
git__free(reflog->ref_name);
|
45
44
|
git__free(reflog);
|
46
45
|
}
|
@@ -71,7 +70,11 @@ int git_reflog_write(git_reflog *reflog)
|
|
71
70
|
return db->backend->reflog_write(db->backend, reflog);
|
72
71
|
}
|
73
72
|
|
74
|
-
int git_reflog_append(
|
73
|
+
int git_reflog_append(
|
74
|
+
git_reflog *reflog,
|
75
|
+
const git_oid *new_oid,
|
76
|
+
const git_signature *committer,
|
77
|
+
const char *msg)
|
75
78
|
{
|
76
79
|
const git_reflog_entry *previous;
|
77
80
|
git_reflog_entry *entry;
|
@@ -104,7 +107,7 @@ int git_reflog_append(git_reflog *reflog, const git_oid *new_oid, const git_sign
|
|
104
107
|
previous = git_reflog_entry_byindex(reflog, 0);
|
105
108
|
|
106
109
|
if (previous == NULL)
|
107
|
-
|
110
|
+
git_oid_clear(&entry->oid_old, reflog->oid_type);
|
108
111
|
else
|
109
112
|
git_oid_cpy(&entry->oid_old, &previous->oid_cur);
|
110
113
|
|
@@ -219,9 +222,7 @@ int git_reflog_drop(git_reflog *reflog, size_t idx, int rewrite_previous_entry)
|
|
219
222
|
/* If the oldest entry has just been removed... */
|
220
223
|
if (idx == entrycount - 1) {
|
221
224
|
/* ...clear the oid_old member of the "new" oldest entry */
|
222
|
-
|
223
|
-
return -1;
|
224
|
-
|
225
|
+
git_oid_clear(&entry->oid_old, reflog->oid_type);
|
225
226
|
return 0;
|
226
227
|
}
|
227
228
|
|
@@ -16,8 +16,6 @@
|
|
16
16
|
#define GIT_REFLOG_DIR_MODE 0777
|
17
17
|
#define GIT_REFLOG_FILE_MODE 0666
|
18
18
|
|
19
|
-
#define GIT_REFLOG_SIZE_MIN (2*GIT_OID_HEXSZ+2+17)
|
20
|
-
|
21
19
|
struct git_reflog_entry {
|
22
20
|
git_oid oid_old;
|
23
21
|
git_oid oid_cur;
|
@@ -30,6 +28,7 @@ struct git_reflog_entry {
|
|
30
28
|
struct git_reflog {
|
31
29
|
git_refdb *db;
|
32
30
|
char *ref_name;
|
31
|
+
git_oid_t oid_type;
|
33
32
|
git_vector entries;
|
34
33
|
};
|
35
34
|
|
@@ -38,4 +37,6 @@ GIT_INLINE(size_t) reflog_inverse_index(size_t idx, size_t total)
|
|
38
37
|
return (total - 1) - idx;
|
39
38
|
}
|
40
39
|
|
40
|
+
void git_reflog_entry__free(git_reflog_entry *entry);
|
41
|
+
|
41
42
|
#endif
|
@@ -72,6 +72,7 @@ git_reference *git_reference__alloc(
|
|
72
72
|
const git_oid *oid,
|
73
73
|
const git_oid *peel)
|
74
74
|
{
|
75
|
+
git_oid_t oid_type;
|
75
76
|
git_reference *ref;
|
76
77
|
|
77
78
|
GIT_ASSERT_ARG_WITH_RETVAL(name, NULL);
|
@@ -84,8 +85,16 @@ git_reference *git_reference__alloc(
|
|
84
85
|
ref->type = GIT_REFERENCE_DIRECT;
|
85
86
|
git_oid_cpy(&ref->target.oid, oid);
|
86
87
|
|
88
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
89
|
+
oid_type = oid->type;
|
90
|
+
#else
|
91
|
+
oid_type = GIT_OID_SHA1;
|
92
|
+
#endif
|
93
|
+
|
87
94
|
if (peel != NULL)
|
88
95
|
git_oid_cpy(&ref->peel, peel);
|
96
|
+
else
|
97
|
+
git_oid_clear(&ref->peel, oid_type);
|
89
98
|
|
90
99
|
return ref;
|
91
100
|
}
|
@@ -247,7 +256,7 @@ int git_reference_dwim(git_reference **out, git_repository *repo, const char *re
|
|
247
256
|
int error = 0, i, valid;
|
248
257
|
bool fallbackmode = true, foundvalid = false;
|
249
258
|
git_reference *ref;
|
250
|
-
|
259
|
+
git_str refnamebuf = GIT_STR_INIT, name = GIT_STR_INIT;
|
251
260
|
|
252
261
|
static const char *formatters[] = {
|
253
262
|
"%s",
|
@@ -260,18 +269,18 @@ int git_reference_dwim(git_reference **out, git_repository *repo, const char *re
|
|
260
269
|
};
|
261
270
|
|
262
271
|
if (*refname)
|
263
|
-
|
272
|
+
git_str_puts(&name, refname);
|
264
273
|
else {
|
265
|
-
|
274
|
+
git_str_puts(&name, GIT_HEAD_FILE);
|
266
275
|
fallbackmode = false;
|
267
276
|
}
|
268
277
|
|
269
278
|
for (i = 0; formatters[i] && (fallbackmode || i == 0); i++) {
|
270
279
|
|
271
|
-
|
280
|
+
git_str_clear(&refnamebuf);
|
272
281
|
|
273
|
-
if ((error =
|
274
|
-
(error = git_reference_name_is_valid(&valid,
|
282
|
+
if ((error = git_str_printf(&refnamebuf, formatters[i], git_str_cstr(&name))) < 0 ||
|
283
|
+
(error = git_reference_name_is_valid(&valid, git_str_cstr(&refnamebuf))) < 0)
|
275
284
|
goto cleanup;
|
276
285
|
|
277
286
|
if (!valid) {
|
@@ -280,7 +289,7 @@ int git_reference_dwim(git_reference **out, git_repository *repo, const char *re
|
|
280
289
|
}
|
281
290
|
foundvalid = true;
|
282
291
|
|
283
|
-
error = git_reference_lookup_resolved(&ref, repo,
|
292
|
+
error = git_reference_lookup_resolved(&ref, repo, git_str_cstr(&refnamebuf), -1);
|
284
293
|
|
285
294
|
if (!error) {
|
286
295
|
*out = ref;
|
@@ -296,14 +305,14 @@ cleanup:
|
|
296
305
|
if (error && !foundvalid) {
|
297
306
|
/* never found a valid reference name */
|
298
307
|
git_error_set(GIT_ERROR_REFERENCE,
|
299
|
-
"could not use '%s' as valid reference name",
|
308
|
+
"could not use '%s' as valid reference name", git_str_cstr(&name));
|
300
309
|
}
|
301
310
|
|
302
311
|
if (error == GIT_ENOTFOUND)
|
303
312
|
git_error_set(GIT_ERROR_REFERENCE, "no reference found for shorthand '%s'", refname);
|
304
313
|
|
305
|
-
|
306
|
-
|
314
|
+
git_str_dispose(&name);
|
315
|
+
git_str_dispose(&refnamebuf);
|
307
316
|
return error;
|
308
317
|
}
|
309
318
|
|
@@ -799,7 +808,7 @@ int git_reference_list(
|
|
799
808
|
|
800
809
|
if (git_reference_foreach_name(
|
801
810
|
repo, &cb__reflist_add, (void *)&ref_list) < 0) {
|
802
|
-
|
811
|
+
git_vector_dispose(&ref_list);
|
803
812
|
return -1;
|
804
813
|
}
|
805
814
|
|
@@ -826,17 +835,20 @@ static int is_valid_ref_char(char ch)
|
|
826
835
|
}
|
827
836
|
}
|
828
837
|
|
829
|
-
static int ensure_segment_validity(const char *name, char may_contain_glob)
|
838
|
+
static int ensure_segment_validity(const char *name, char may_contain_glob, bool allow_caret_prefix)
|
830
839
|
{
|
831
840
|
const char *current = name;
|
841
|
+
const char *start = current;
|
832
842
|
char prev = '\0';
|
833
843
|
const int lock_len = (int)strlen(GIT_FILELOCK_EXTENSION);
|
834
844
|
int segment_len;
|
835
845
|
|
836
846
|
if (*current == '.')
|
837
847
|
return -1; /* Refname starts with "." */
|
848
|
+
if (allow_caret_prefix && *current == '^')
|
849
|
+
start++;
|
838
850
|
|
839
|
-
for (current =
|
851
|
+
for (current = start; ; current++) {
|
840
852
|
if (*current == '\0' || *current == '/')
|
841
853
|
break;
|
842
854
|
|
@@ -868,7 +880,7 @@ static int ensure_segment_validity(const char *name, char may_contain_glob)
|
|
868
880
|
return segment_len;
|
869
881
|
}
|
870
882
|
|
871
|
-
static bool
|
883
|
+
static bool is_valid_normalized_name(const char *name, size_t len)
|
872
884
|
{
|
873
885
|
size_t i;
|
874
886
|
char c;
|
@@ -879,6 +891,9 @@ static bool is_all_caps_and_underscore(const char *name, size_t len)
|
|
879
891
|
for (i = 0; i < len; i++)
|
880
892
|
{
|
881
893
|
c = name[i];
|
894
|
+
if (i == 0 && c == '^')
|
895
|
+
continue; /* The first character is allowed to be "^" for negative refspecs */
|
896
|
+
|
882
897
|
if ((c < 'A' || c > 'Z') && c != '_')
|
883
898
|
return false;
|
884
899
|
}
|
@@ -891,7 +906,7 @@ static bool is_all_caps_and_underscore(const char *name, size_t len)
|
|
891
906
|
|
892
907
|
/* Inspired from https://github.com/git/git/blob/f06d47e7e0d9db709ee204ed13a8a7486149f494/refs.c#L36-100 */
|
893
908
|
int git_reference__normalize_name(
|
894
|
-
|
909
|
+
git_str *buf,
|
895
910
|
const char *name,
|
896
911
|
unsigned int flags)
|
897
912
|
{
|
@@ -899,10 +914,11 @@ int git_reference__normalize_name(
|
|
899
914
|
int segment_len, segments_count = 0, error = GIT_EINVALIDSPEC;
|
900
915
|
unsigned int process_flags;
|
901
916
|
bool normalize = (buf != NULL);
|
917
|
+
bool allow_caret_prefix = true;
|
902
918
|
bool validate = (flags & GIT_REFERENCE_FORMAT__VALIDATION_DISABLE) == 0;
|
903
919
|
|
904
920
|
#ifdef GIT_USE_ICONV
|
905
|
-
|
921
|
+
git_fs_path_iconv_t ic = GIT_PATH_ICONV_INIT;
|
906
922
|
#endif
|
907
923
|
|
908
924
|
GIT_ASSERT_ARG(name);
|
@@ -914,29 +930,29 @@ int git_reference__normalize_name(
|
|
914
930
|
goto cleanup;
|
915
931
|
|
916
932
|
if (normalize)
|
917
|
-
|
933
|
+
git_str_clear(buf);
|
918
934
|
|
919
935
|
#ifdef GIT_USE_ICONV
|
920
936
|
if ((flags & GIT_REFERENCE_FORMAT__PRECOMPOSE_UNICODE) != 0) {
|
921
937
|
size_t namelen = strlen(current);
|
922
|
-
if ((error =
|
923
|
-
(error =
|
938
|
+
if ((error = git_fs_path_iconv_init_precompose(&ic)) < 0 ||
|
939
|
+
(error = git_fs_path_iconv(&ic, ¤t, &namelen)) < 0)
|
924
940
|
goto cleanup;
|
925
941
|
error = GIT_EINVALIDSPEC;
|
926
942
|
}
|
927
943
|
#endif
|
928
944
|
|
929
945
|
if (!validate) {
|
930
|
-
|
946
|
+
git_str_sets(buf, current);
|
931
947
|
|
932
|
-
error =
|
948
|
+
error = git_str_oom(buf) ? -1 : 0;
|
933
949
|
goto cleanup;
|
934
950
|
}
|
935
951
|
|
936
952
|
while (true) {
|
937
953
|
char may_contain_glob = process_flags & GIT_REFERENCE_FORMAT_REFSPEC_PATTERN;
|
938
954
|
|
939
|
-
segment_len = ensure_segment_validity(current, may_contain_glob);
|
955
|
+
segment_len = ensure_segment_validity(current, may_contain_glob, allow_caret_prefix);
|
940
956
|
if (segment_len < 0)
|
941
957
|
goto cleanup;
|
942
958
|
|
@@ -949,13 +965,13 @@ int git_reference__normalize_name(
|
|
949
965
|
process_flags &= ~GIT_REFERENCE_FORMAT_REFSPEC_PATTERN;
|
950
966
|
|
951
967
|
if (normalize) {
|
952
|
-
size_t cur_len =
|
968
|
+
size_t cur_len = git_str_len(buf);
|
953
969
|
|
954
|
-
|
955
|
-
|
970
|
+
git_str_joinpath(buf, git_str_cstr(buf), current);
|
971
|
+
git_str_truncate(buf,
|
956
972
|
cur_len + segment_len + (segments_count ? 1 : 0));
|
957
973
|
|
958
|
-
if (
|
974
|
+
if (git_str_oom(buf)) {
|
959
975
|
error = -1;
|
960
976
|
goto cleanup;
|
961
977
|
}
|
@@ -972,6 +988,12 @@ int git_reference__normalize_name(
|
|
972
988
|
break;
|
973
989
|
|
974
990
|
current += segment_len + 1;
|
991
|
+
|
992
|
+
/*
|
993
|
+
* A caret prefix is only allowed in the first segment to signify a
|
994
|
+
* negative refspec.
|
995
|
+
*/
|
996
|
+
allow_caret_prefix = false;
|
975
997
|
}
|
976
998
|
|
977
999
|
/* A refname can not be empty */
|
@@ -991,12 +1013,12 @@ int git_reference__normalize_name(
|
|
991
1013
|
|
992
1014
|
if ((segments_count == 1 ) &&
|
993
1015
|
!(flags & GIT_REFERENCE_FORMAT_REFSPEC_SHORTHAND) &&
|
994
|
-
!(
|
1016
|
+
!(is_valid_normalized_name(name, (size_t)segment_len) ||
|
995
1017
|
((flags & GIT_REFERENCE_FORMAT_REFSPEC_PATTERN) && !strcmp("*", name))))
|
996
1018
|
goto cleanup;
|
997
1019
|
|
998
1020
|
if ((segments_count > 1)
|
999
|
-
&& (
|
1021
|
+
&& (is_valid_normalized_name(name, strchr(name, '/') - name)))
|
1000
1022
|
goto cleanup;
|
1001
1023
|
|
1002
1024
|
error = 0;
|
@@ -1008,10 +1030,10 @@ cleanup:
|
|
1008
1030
|
"the given reference name '%s' is not valid", name);
|
1009
1031
|
|
1010
1032
|
if (error && normalize)
|
1011
|
-
|
1033
|
+
git_str_dispose(buf);
|
1012
1034
|
|
1013
1035
|
#ifdef GIT_USE_ICONV
|
1014
|
-
|
1036
|
+
git_fs_path_iconv_clear(&ic);
|
1015
1037
|
#endif
|
1016
1038
|
|
1017
1039
|
return error;
|
@@ -1023,13 +1045,13 @@ int git_reference_normalize_name(
|
|
1023
1045
|
const char *name,
|
1024
1046
|
unsigned int flags)
|
1025
1047
|
{
|
1026
|
-
|
1048
|
+
git_str buf = GIT_STR_INIT;
|
1027
1049
|
int error;
|
1028
1050
|
|
1029
1051
|
if ((error = git_reference__normalize_name(&buf, name, flags)) < 0)
|
1030
1052
|
goto cleanup;
|
1031
1053
|
|
1032
|
-
if (
|
1054
|
+
if (git_str_len(&buf) > buffer_size - 1) {
|
1033
1055
|
git_error_set(
|
1034
1056
|
GIT_ERROR_REFERENCE,
|
1035
1057
|
"the provided buffer is too short to hold the normalization of '%s'", name);
|
@@ -1037,13 +1059,13 @@ int git_reference_normalize_name(
|
|
1037
1059
|
goto cleanup;
|
1038
1060
|
}
|
1039
1061
|
|
1040
|
-
if ((error =
|
1062
|
+
if ((error = git_str_copy_cstr(buffer_out, buffer_size, &buf)) < 0)
|
1041
1063
|
goto cleanup;
|
1042
1064
|
|
1043
1065
|
error = 0;
|
1044
1066
|
|
1045
1067
|
cleanup:
|
1046
|
-
|
1068
|
+
git_str_dispose(&buf);
|
1047
1069
|
return error;
|
1048
1070
|
}
|
1049
1071
|
|
@@ -1071,6 +1093,12 @@ int git_reference_cmp(
|
|
1071
1093
|
return git_oid__cmp(&ref1->target.oid, &ref2->target.oid);
|
1072
1094
|
}
|
1073
1095
|
|
1096
|
+
int git_reference__cmp_cb(const void *a, const void *b)
|
1097
|
+
{
|
1098
|
+
return git_reference_cmp(
|
1099
|
+
(const git_reference *)a, (const git_reference *)b);
|
1100
|
+
}
|
1101
|
+
|
1074
1102
|
/*
|
1075
1103
|
* Starting with the reference given by `ref_name`, follows symbolic
|
1076
1104
|
* references until a direct reference is found and updated the OID
|
@@ -1143,12 +1171,12 @@ int git_reference__update_for_commit(
|
|
1143
1171
|
{
|
1144
1172
|
git_reference *ref_new = NULL;
|
1145
1173
|
git_commit *commit = NULL;
|
1146
|
-
|
1174
|
+
git_str reflog_msg = GIT_STR_INIT;
|
1147
1175
|
const git_signature *who;
|
1148
1176
|
int error;
|
1149
1177
|
|
1150
1178
|
if ((error = git_commit_lookup(&commit, repo, id)) < 0 ||
|
1151
|
-
(error =
|
1179
|
+
(error = git_str_printf(&reflog_msg, "%s%s: %s",
|
1152
1180
|
operation ? operation : "commit",
|
1153
1181
|
commit_type(commit),
|
1154
1182
|
git_commit_summary(commit))) < 0)
|
@@ -1161,15 +1189,15 @@ int git_reference__update_for_commit(
|
|
1161
1189
|
return error;
|
1162
1190
|
|
1163
1191
|
error = reference__create(&ref_new, repo, ref->name, id, NULL, 1, who,
|
1164
|
-
|
1192
|
+
git_str_cstr(&reflog_msg), &ref->target.oid, NULL);
|
1165
1193
|
}
|
1166
1194
|
else
|
1167
1195
|
error = git_reference__update_terminal(
|
1168
|
-
repo, ref_name, id, who,
|
1196
|
+
repo, ref_name, id, who, git_str_cstr(&reflog_msg));
|
1169
1197
|
|
1170
1198
|
done:
|
1171
1199
|
git_reference_free(ref_new);
|
1172
|
-
|
1200
|
+
git_str_dispose(&reflog_msg);
|
1173
1201
|
git_commit_free(commit);
|
1174
1202
|
return error;
|
1175
1203
|
}
|
@@ -12,8 +12,7 @@
|
|
12
12
|
#include "git2/oid.h"
|
13
13
|
#include "git2/refs.h"
|
14
14
|
#include "git2/refdb.h"
|
15
|
-
#include "
|
16
|
-
#include "buffer.h"
|
15
|
+
#include "str.h"
|
17
16
|
#include "oid.h"
|
18
17
|
|
19
18
|
extern bool git_reference__enable_symbolic_ref_target_validation;
|
@@ -83,7 +82,7 @@ struct git_reference {
|
|
83
82
|
*/
|
84
83
|
git_reference *git_reference__realloc(git_reference **ptr_to_ref, const char *name);
|
85
84
|
|
86
|
-
int git_reference__normalize_name(
|
85
|
+
int git_reference__normalize_name(git_str *buf, const char *name, unsigned int flags);
|
87
86
|
int git_reference__update_terminal(git_repository *repo, const char *ref_name, const git_oid *oid, const git_signature *sig, const char *log_message);
|
88
87
|
int git_reference__name_is_valid(int *valid, const char *name, unsigned int flags);
|
89
88
|
int git_reference__is_branch(const char *ref_name);
|
@@ -92,6 +91,12 @@ int git_reference__is_tag(const char *ref_name);
|
|
92
91
|
int git_reference__is_note(const char *ref_name);
|
93
92
|
const char *git_reference__shorthand(const char *name);
|
94
93
|
|
94
|
+
/*
|
95
|
+
* A `git_reference_cmp` wrapper suitable for passing to generic
|
96
|
+
* comparators, like `vector_cmp` / `tsort` / etc.
|
97
|
+
*/
|
98
|
+
int git_reference__cmp_cb(const void *a, const void *b);
|
99
|
+
|
95
100
|
/**
|
96
101
|
* Lookup a reference by name and try to resolve to an OID.
|
97
102
|
*
|
@@ -7,8 +7,7 @@
|
|
7
7
|
|
8
8
|
#include "refspec.h"
|
9
9
|
|
10
|
-
#include "
|
11
|
-
|
10
|
+
#include "buf.h"
|
12
11
|
#include "refs.h"
|
13
12
|
#include "util.h"
|
14
13
|
#include "vector.h"
|
@@ -23,6 +22,7 @@ int git_refspec__parse(git_refspec *refspec, const char *input, bool is_fetch)
|
|
23
22
|
const char *lhs, *rhs;
|
24
23
|
int valid = 0;
|
25
24
|
unsigned int flags;
|
25
|
+
bool is_neg_refspec = false;
|
26
26
|
|
27
27
|
GIT_ASSERT_ARG(refspec);
|
28
28
|
GIT_ASSERT_ARG(input);
|
@@ -35,6 +35,9 @@ int git_refspec__parse(git_refspec *refspec, const char *input, bool is_fetch)
|
|
35
35
|
refspec->force = 1;
|
36
36
|
lhs++;
|
37
37
|
}
|
38
|
+
if (*lhs == '^') {
|
39
|
+
is_neg_refspec = true;
|
40
|
+
}
|
38
41
|
|
39
42
|
rhs = strrchr(lhs, ':');
|
40
43
|
|
@@ -63,7 +66,14 @@ int git_refspec__parse(git_refspec *refspec, const char *input, bool is_fetch)
|
|
63
66
|
|
64
67
|
llen = (rhs ? (size_t)(rhs - lhs - 1) : strlen(lhs));
|
65
68
|
if (1 <= llen && memchr(lhs, '*', llen)) {
|
66
|
-
|
69
|
+
/*
|
70
|
+
* If the lefthand side contains a glob, then one of the following must be
|
71
|
+
* true, otherwise the spec is invalid
|
72
|
+
* 1) the rhs exists and also contains a glob
|
73
|
+
* 2) it is a negative refspec (i.e. no rhs)
|
74
|
+
* 3) the rhs doesn't exist and we're fetching
|
75
|
+
*/
|
76
|
+
if ((rhs && !is_glob) || (rhs && is_neg_refspec) || (!rhs && is_fetch && !is_neg_refspec))
|
67
77
|
goto invalid;
|
68
78
|
is_glob = 1;
|
69
79
|
} else if (rhs && is_glob)
|
@@ -226,6 +236,14 @@ int git_refspec_force(const git_refspec *refspec)
|
|
226
236
|
return refspec->force;
|
227
237
|
}
|
228
238
|
|
239
|
+
int git_refspec_src_matches_negative(const git_refspec *refspec, const char *refname)
|
240
|
+
{
|
241
|
+
if (refspec == NULL || refspec->src == NULL || !git_refspec_is_negative(refspec))
|
242
|
+
return false;
|
243
|
+
|
244
|
+
return (wildmatch(refspec->src + 1, refname, 0) == 0);
|
245
|
+
}
|
246
|
+
|
229
247
|
int git_refspec_src_matches(const git_refspec *refspec, const char *refname)
|
230
248
|
{
|
231
249
|
if (refspec == NULL || refspec->src == NULL)
|
@@ -243,16 +261,12 @@ int git_refspec_dst_matches(const git_refspec *refspec, const char *refname)
|
|
243
261
|
}
|
244
262
|
|
245
263
|
static int refspec_transform(
|
246
|
-
|
264
|
+
git_str *out, const char *from, const char *to, const char *name)
|
247
265
|
{
|
248
266
|
const char *from_star, *to_star;
|
249
267
|
size_t replacement_len, star_offset;
|
250
|
-
int error;
|
251
268
|
|
252
|
-
|
253
|
-
return error;
|
254
|
-
|
255
|
-
git_buf_clear(out);
|
269
|
+
git_str_clear(out);
|
256
270
|
|
257
271
|
/*
|
258
272
|
* There are two parts to each side of a refspec, the bit
|
@@ -269,72 +283,72 @@ static int refspec_transform(
|
|
269
283
|
star_offset = from_star - from;
|
270
284
|
|
271
285
|
/* the first half is copied over */
|
272
|
-
|
286
|
+
git_str_put(out, to, to_star - to);
|
273
287
|
|
274
288
|
/*
|
275
289
|
* Copy over the name, but exclude the trailing part in "from" starting
|
276
290
|
* after the glob
|
277
291
|
*/
|
278
292
|
replacement_len = strlen(name + star_offset) - strlen(from_star + 1);
|
279
|
-
|
293
|
+
git_str_put(out, name + star_offset, replacement_len);
|
280
294
|
|
281
|
-
return
|
295
|
+
return git_str_puts(out, to_star + 1);
|
282
296
|
}
|
283
297
|
|
284
298
|
int git_refspec_transform(git_buf *out, const git_refspec *spec, const char *name)
|
285
299
|
{
|
286
|
-
|
300
|
+
GIT_BUF_WRAP_PRIVATE(out, git_refspec__transform, spec, name);
|
301
|
+
}
|
287
302
|
|
303
|
+
int git_refspec__transform(git_str *out, const git_refspec *spec, const char *name)
|
304
|
+
{
|
288
305
|
GIT_ASSERT_ARG(out);
|
289
306
|
GIT_ASSERT_ARG(spec);
|
290
307
|
GIT_ASSERT_ARG(name);
|
291
308
|
|
292
|
-
if ((error = git_buf_sanitize(out)) < 0)
|
293
|
-
return error;
|
294
|
-
|
295
309
|
if (!git_refspec_src_matches(spec, name)) {
|
296
310
|
git_error_set(GIT_ERROR_INVALID, "ref '%s' doesn't match the source", name);
|
297
311
|
return -1;
|
298
312
|
}
|
299
313
|
|
300
314
|
if (!spec->pattern)
|
301
|
-
return
|
315
|
+
return git_str_puts(out, spec->dst ? spec->dst : "");
|
302
316
|
|
303
317
|
return refspec_transform(out, spec->src, spec->dst, name);
|
304
318
|
}
|
305
319
|
|
306
320
|
int git_refspec_rtransform(git_buf *out, const git_refspec *spec, const char *name)
|
307
321
|
{
|
308
|
-
|
322
|
+
GIT_BUF_WRAP_PRIVATE(out, git_refspec__rtransform, spec, name);
|
323
|
+
}
|
309
324
|
|
325
|
+
int git_refspec__rtransform(git_str *out, const git_refspec *spec, const char *name)
|
326
|
+
{
|
310
327
|
GIT_ASSERT_ARG(out);
|
311
328
|
GIT_ASSERT_ARG(spec);
|
312
329
|
GIT_ASSERT_ARG(name);
|
313
330
|
|
314
|
-
if ((error = git_buf_sanitize(out)) < 0)
|
315
|
-
return error;
|
316
|
-
|
317
331
|
if (!git_refspec_dst_matches(spec, name)) {
|
318
332
|
git_error_set(GIT_ERROR_INVALID, "ref '%s' doesn't match the destination", name);
|
319
333
|
return -1;
|
320
334
|
}
|
321
335
|
|
322
336
|
if (!spec->pattern)
|
323
|
-
return
|
337
|
+
return git_str_puts(out, spec->src);
|
324
338
|
|
325
339
|
return refspec_transform(out, spec->dst, spec->src, name);
|
326
340
|
}
|
327
341
|
|
328
|
-
int git_refspec__serialize(
|
342
|
+
int git_refspec__serialize(git_str *out, const git_refspec *refspec)
|
329
343
|
{
|
330
344
|
if (refspec->force)
|
331
|
-
|
345
|
+
git_str_putc(out, '+');
|
332
346
|
|
333
|
-
|
347
|
+
git_str_printf(out, "%s:%s",
|
334
348
|
refspec->src != NULL ? refspec->src : "",
|
335
349
|
refspec->dst != NULL ? refspec->dst : "");
|
336
350
|
|
337
|
-
return
|
351
|
+
return git_str_oom(out) == false;
|
338
352
|
}
|
339
353
|
|
340
354
|
int git_refspec_is_wildcard(const git_refspec *spec)
|
@@ -345,6 +359,14 @@ int git_refspec_is_wildcard(const git_refspec *spec)
|
|
345
359
|
return (spec->src[strlen(spec->src) - 1] == '*');
|
346
360
|
}
|
347
361
|
|
362
|
+
int git_refspec_is_negative(const git_refspec *spec)
|
363
|
+
{
|
364
|
+
GIT_ASSERT_ARG(spec);
|
365
|
+
GIT_ASSERT_ARG(spec->src);
|
366
|
+
|
367
|
+
return (spec->src[0] == '^' && spec->dst == NULL);
|
368
|
+
}
|
369
|
+
|
348
370
|
git_direction git_refspec_direction(const git_refspec *spec)
|
349
371
|
{
|
350
372
|
GIT_ASSERT_ARG(spec);
|
@@ -354,7 +376,7 @@ git_direction git_refspec_direction(const git_refspec *spec)
|
|
354
376
|
|
355
377
|
int git_refspec__dwim_one(git_vector *out, git_refspec *spec, git_vector *refs)
|
356
378
|
{
|
357
|
-
|
379
|
+
git_str buf = GIT_STR_INIT;
|
358
380
|
size_t j, pos;
|
359
381
|
git_remote_head key;
|
360
382
|
git_refspec *cur;
|
@@ -382,14 +404,14 @@ int git_refspec__dwim_one(git_vector *out, git_refspec *spec, git_vector *refs)
|
|
382
404
|
/* shorthand on the lhs */
|
383
405
|
if (git__prefixcmp(spec->src, GIT_REFS_DIR)) {
|
384
406
|
for (j = 0; formatters[j]; j++) {
|
385
|
-
|
386
|
-
|
387
|
-
|
407
|
+
git_str_clear(&buf);
|
408
|
+
git_str_printf(&buf, formatters[j], spec->src);
|
409
|
+
GIT_ERROR_CHECK_ALLOC_STR(&buf);
|
388
410
|
|
389
|
-
key.name = (char *)
|
411
|
+
key.name = (char *) git_str_cstr(&buf);
|
390
412
|
if (!git_vector_search(&pos, refs, &key)) {
|
391
413
|
/* we found something to match the shorthand, set src to that */
|
392
|
-
cur->src =
|
414
|
+
cur->src = git_str_detach(&buf);
|
393
415
|
}
|
394
416
|
}
|
395
417
|
}
|
@@ -403,18 +425,18 @@ int git_refspec__dwim_one(git_vector *out, git_refspec *spec, git_vector *refs)
|
|
403
425
|
if (spec->dst && git__prefixcmp(spec->dst, GIT_REFS_DIR)) {
|
404
426
|
/* if it starts with "remotes" then we just prepend "refs/" */
|
405
427
|
if (!git__prefixcmp(spec->dst, "remotes/")) {
|
406
|
-
|
428
|
+
git_str_puts(&buf, GIT_REFS_DIR);
|
407
429
|
} else {
|
408
|
-
|
430
|
+
git_str_puts(&buf, GIT_REFS_HEADS_DIR);
|
409
431
|
}
|
410
432
|
|
411
|
-
|
412
|
-
|
433
|
+
git_str_puts(&buf, spec->dst);
|
434
|
+
GIT_ERROR_CHECK_ALLOC_STR(&buf);
|
413
435
|
|
414
|
-
cur->dst =
|
436
|
+
cur->dst = git_str_detach(&buf);
|
415
437
|
}
|
416
438
|
|
417
|
-
|
439
|
+
git_str_dispose(&buf);
|
418
440
|
|
419
441
|
if (cur->dst == NULL && spec->dst != NULL) {
|
420
442
|
cur->dst = git__strdup(spec->dst);
|