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
@@ -7,6 +7,7 @@
|
|
7
7
|
|
8
8
|
#include "branch.h"
|
9
9
|
|
10
|
+
#include "buf.h"
|
10
11
|
#include "commit.h"
|
11
12
|
#include "tag.h"
|
12
13
|
#include "config.h"
|
@@ -27,11 +28,11 @@ static int retrieve_branch_reference(
|
|
27
28
|
git_reference *branch = NULL;
|
28
29
|
int error = 0;
|
29
30
|
char *prefix;
|
30
|
-
|
31
|
+
git_str ref_name = GIT_STR_INIT;
|
31
32
|
|
32
33
|
prefix = is_remote ? GIT_REFS_REMOTES_DIR : GIT_REFS_HEADS_DIR;
|
33
34
|
|
34
|
-
if ((error =
|
35
|
+
if ((error = git_str_joinpath(&ref_name, prefix, branch_name)) < 0)
|
35
36
|
/* OOM */;
|
36
37
|
else if ((error = git_reference_lookup(&branch, repo, ref_name.ptr)) < 0)
|
37
38
|
git_error_set(
|
@@ -40,7 +41,7 @@ static int retrieve_branch_reference(
|
|
40
41
|
|
41
42
|
*branch_reference_out = branch; /* will be NULL on error */
|
42
43
|
|
43
|
-
|
44
|
+
git_str_dispose(&ref_name);
|
44
45
|
return error;
|
45
46
|
}
|
46
47
|
|
@@ -52,6 +53,17 @@ static int not_a_local_branch(const char *reference_name)
|
|
52
53
|
return -1;
|
53
54
|
}
|
54
55
|
|
56
|
+
static bool branch_name_is_valid(const char *branch_name)
|
57
|
+
{
|
58
|
+
/*
|
59
|
+
* Discourage branch name starting with dash,
|
60
|
+
* https://github.com/git/git/commit/6348624010888b
|
61
|
+
* and discourage HEAD as branch name,
|
62
|
+
* https://github.com/git/git/commit/a625b092cc5994
|
63
|
+
*/
|
64
|
+
return branch_name[0] != '-' && git__strcmp(branch_name, "HEAD");
|
65
|
+
}
|
66
|
+
|
55
67
|
static int create_branch(
|
56
68
|
git_reference **ref_out,
|
57
69
|
git_repository *repository,
|
@@ -62,8 +74,8 @@ static int create_branch(
|
|
62
74
|
{
|
63
75
|
int is_unmovable_head = 0;
|
64
76
|
git_reference *branch = NULL;
|
65
|
-
|
66
|
-
log_message =
|
77
|
+
git_str canonical_branch_name = GIT_STR_INIT,
|
78
|
+
log_message = GIT_STR_INIT;
|
67
79
|
int error = -1;
|
68
80
|
int bare = git_repository_is_bare(repository);
|
69
81
|
|
@@ -72,8 +84,8 @@ static int create_branch(
|
|
72
84
|
GIT_ASSERT_ARG(ref_out);
|
73
85
|
GIT_ASSERT_ARG(git_commit_owner(commit) == repository);
|
74
86
|
|
75
|
-
if (!
|
76
|
-
git_error_set(GIT_ERROR_REFERENCE, "'
|
87
|
+
if (!branch_name_is_valid(branch_name)) {
|
88
|
+
git_error_set(GIT_ERROR_REFERENCE, "'%s' is not a valid branch name", branch_name);
|
77
89
|
error = -1;
|
78
90
|
goto cleanup;
|
79
91
|
}
|
@@ -96,22 +108,22 @@ static int create_branch(
|
|
96
108
|
goto cleanup;
|
97
109
|
}
|
98
110
|
|
99
|
-
if (
|
111
|
+
if (git_str_joinpath(&canonical_branch_name, GIT_REFS_HEADS_DIR, branch_name) < 0)
|
100
112
|
goto cleanup;
|
101
113
|
|
102
|
-
if (
|
114
|
+
if (git_str_printf(&log_message, "branch: Created from %s", from) < 0)
|
103
115
|
goto cleanup;
|
104
116
|
|
105
117
|
error = git_reference_create(&branch, repository,
|
106
|
-
|
107
|
-
|
118
|
+
git_str_cstr(&canonical_branch_name), git_commit_id(commit), force,
|
119
|
+
git_str_cstr(&log_message));
|
108
120
|
|
109
121
|
if (!error)
|
110
122
|
*ref_out = branch;
|
111
123
|
|
112
124
|
cleanup:
|
113
|
-
|
114
|
-
|
125
|
+
git_str_dispose(&canonical_branch_name);
|
126
|
+
git_str_dispose(&log_message);
|
115
127
|
return error;
|
116
128
|
}
|
117
129
|
|
@@ -122,7 +134,10 @@ int git_branch_create(
|
|
122
134
|
const git_commit *commit,
|
123
135
|
int force)
|
124
136
|
{
|
125
|
-
|
137
|
+
char commit_id[GIT_OID_MAX_HEXSIZE + 1];
|
138
|
+
|
139
|
+
git_oid_tostr(commit_id, GIT_OID_MAX_HEXSIZE + 1, git_commit_id(commit));
|
140
|
+
return create_branch(ref_out, repository, branch_name, commit, commit_id, force);
|
126
141
|
}
|
127
142
|
|
128
143
|
int git_branch_create_from_annotated(
|
@@ -174,7 +189,7 @@ int git_branch_is_checked_out(const git_reference *branch)
|
|
174
189
|
int git_branch_delete(git_reference *branch)
|
175
190
|
{
|
176
191
|
int is_head;
|
177
|
-
|
192
|
+
git_str config_section = GIT_STR_INIT;
|
178
193
|
int error = -1;
|
179
194
|
|
180
195
|
GIT_ASSERT_ARG(branch);
|
@@ -200,18 +215,18 @@ int git_branch_delete(git_reference *branch)
|
|
200
215
|
return -1;
|
201
216
|
}
|
202
217
|
|
203
|
-
if (
|
218
|
+
if (git_str_join(&config_section, '.', "branch",
|
204
219
|
git_reference_name(branch) + strlen(GIT_REFS_HEADS_DIR)) < 0)
|
205
220
|
goto on_error;
|
206
221
|
|
207
222
|
if (git_config_rename_section(
|
208
|
-
git_reference_owner(branch),
|
223
|
+
git_reference_owner(branch), git_str_cstr(&config_section), NULL) < 0)
|
209
224
|
goto on_error;
|
210
225
|
|
211
226
|
error = git_reference_delete(branch);
|
212
227
|
|
213
228
|
on_error:
|
214
|
-
|
229
|
+
git_str_dispose(&config_section);
|
215
230
|
return error;
|
216
231
|
}
|
217
232
|
|
@@ -286,10 +301,10 @@ int git_branch_move(
|
|
286
301
|
const char *new_branch_name,
|
287
302
|
int force)
|
288
303
|
{
|
289
|
-
|
290
|
-
old_config_section =
|
291
|
-
new_config_section =
|
292
|
-
log_message =
|
304
|
+
git_str new_reference_name = GIT_STR_INIT,
|
305
|
+
old_config_section = GIT_STR_INIT,
|
306
|
+
new_config_section = GIT_STR_INIT,
|
307
|
+
log_message = GIT_STR_INIT;
|
293
308
|
int error;
|
294
309
|
|
295
310
|
GIT_ASSERT_ARG(branch);
|
@@ -298,35 +313,35 @@ int git_branch_move(
|
|
298
313
|
if (!git_reference_is_branch(branch))
|
299
314
|
return not_a_local_branch(git_reference_name(branch));
|
300
315
|
|
301
|
-
if ((error =
|
316
|
+
if ((error = git_str_joinpath(&new_reference_name, GIT_REFS_HEADS_DIR, new_branch_name)) < 0)
|
302
317
|
goto done;
|
303
318
|
|
304
|
-
if ((error =
|
305
|
-
git_reference_name(branch),
|
319
|
+
if ((error = git_str_printf(&log_message, "branch: renamed %s to %s",
|
320
|
+
git_reference_name(branch), git_str_cstr(&new_reference_name))) < 0)
|
306
321
|
goto done;
|
307
322
|
|
308
323
|
/* first update ref then config so failure won't trash config */
|
309
324
|
|
310
325
|
error = git_reference_rename(
|
311
|
-
out, branch,
|
312
|
-
|
326
|
+
out, branch, git_str_cstr(&new_reference_name), force,
|
327
|
+
git_str_cstr(&log_message));
|
313
328
|
if (error < 0)
|
314
329
|
goto done;
|
315
330
|
|
316
|
-
|
331
|
+
git_str_join(&old_config_section, '.', "branch",
|
317
332
|
git_reference_name(branch) + strlen(GIT_REFS_HEADS_DIR));
|
318
|
-
|
333
|
+
git_str_join(&new_config_section, '.', "branch", new_branch_name);
|
319
334
|
|
320
335
|
error = git_config_rename_section(
|
321
336
|
git_reference_owner(branch),
|
322
|
-
|
323
|
-
|
337
|
+
git_str_cstr(&old_config_section),
|
338
|
+
git_str_cstr(&new_config_section));
|
324
339
|
|
325
340
|
done:
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
341
|
+
git_str_dispose(&new_reference_name);
|
342
|
+
git_str_dispose(&old_config_section);
|
343
|
+
git_str_dispose(&new_config_section);
|
344
|
+
git_str_dispose(&log_message);
|
330
345
|
|
331
346
|
return error;
|
332
347
|
}
|
@@ -384,20 +399,20 @@ int git_branch_name(
|
|
384
399
|
}
|
385
400
|
|
386
401
|
static int retrieve_upstream_configuration(
|
387
|
-
|
402
|
+
git_str *out,
|
388
403
|
const git_config *config,
|
389
404
|
const char *canonical_branch_name,
|
390
405
|
const char *format)
|
391
406
|
{
|
392
|
-
|
407
|
+
git_str buf = GIT_STR_INIT;
|
393
408
|
int error;
|
394
409
|
|
395
|
-
if (
|
410
|
+
if (git_str_printf(&buf, format,
|
396
411
|
canonical_branch_name + strlen(GIT_REFS_HEADS_DIR)) < 0)
|
397
412
|
return -1;
|
398
413
|
|
399
|
-
error =
|
400
|
-
|
414
|
+
error = git_config__get_string_buf(out, config, git_str_cstr(&buf));
|
415
|
+
git_str_dispose(&buf);
|
401
416
|
return error;
|
402
417
|
}
|
403
418
|
|
@@ -406,20 +421,26 @@ int git_branch_upstream_name(
|
|
406
421
|
git_repository *repo,
|
407
422
|
const char *refname)
|
408
423
|
{
|
409
|
-
|
410
|
-
|
411
|
-
|
424
|
+
GIT_BUF_WRAP_PRIVATE(out, git_branch__upstream_name, repo, refname);
|
425
|
+
}
|
426
|
+
|
427
|
+
int git_branch__upstream_name(
|
428
|
+
git_str *out,
|
429
|
+
git_repository *repo,
|
430
|
+
const char *refname)
|
431
|
+
{
|
432
|
+
git_str remote_name = GIT_STR_INIT;
|
433
|
+
git_str merge_name = GIT_STR_INIT;
|
434
|
+
git_str buf = GIT_STR_INIT;
|
412
435
|
int error = -1;
|
413
436
|
git_remote *remote = NULL;
|
414
437
|
const git_refspec *refspec;
|
415
438
|
git_config *config;
|
416
439
|
|
417
440
|
GIT_ASSERT_ARG(out);
|
441
|
+
GIT_ASSERT_ARG(repo);
|
418
442
|
GIT_ASSERT_ARG(refname);
|
419
443
|
|
420
|
-
if ((error = git_buf_sanitize(out)) < 0)
|
421
|
-
return error;
|
422
|
-
|
423
444
|
if (!git_reference__is_branch(refname))
|
424
445
|
return not_a_local_branch(refname);
|
425
446
|
|
@@ -434,75 +455,109 @@ int git_branch_upstream_name(
|
|
434
455
|
&merge_name, config, refname, "branch.%s.merge")) < 0)
|
435
456
|
goto cleanup;
|
436
457
|
|
437
|
-
if (
|
458
|
+
if (git_str_len(&remote_name) == 0 || git_str_len(&merge_name) == 0) {
|
438
459
|
git_error_set(GIT_ERROR_REFERENCE,
|
439
460
|
"branch '%s' does not have an upstream", refname);
|
440
461
|
error = GIT_ENOTFOUND;
|
441
462
|
goto cleanup;
|
442
463
|
}
|
443
464
|
|
444
|
-
if (strcmp(".",
|
445
|
-
if ((error = git_remote_lookup(&remote, repo,
|
465
|
+
if (strcmp(".", git_str_cstr(&remote_name)) != 0) {
|
466
|
+
if ((error = git_remote_lookup(&remote, repo, git_str_cstr(&remote_name))) < 0)
|
446
467
|
goto cleanup;
|
447
468
|
|
448
|
-
refspec = git_remote__matching_refspec(remote,
|
469
|
+
refspec = git_remote__matching_refspec(remote, git_str_cstr(&merge_name));
|
449
470
|
if (!refspec) {
|
450
471
|
error = GIT_ENOTFOUND;
|
451
472
|
goto cleanup;
|
452
473
|
}
|
453
474
|
|
454
|
-
if (
|
475
|
+
if (git_refspec__transform(&buf, refspec, git_str_cstr(&merge_name)) < 0)
|
455
476
|
goto cleanup;
|
456
477
|
} else
|
457
|
-
if (
|
478
|
+
if (git_str_set(&buf, git_str_cstr(&merge_name), git_str_len(&merge_name)) < 0)
|
458
479
|
goto cleanup;
|
459
480
|
|
460
|
-
|
481
|
+
git_str_swap(out, &buf);
|
461
482
|
|
462
483
|
cleanup:
|
463
484
|
git_config_free(config);
|
464
485
|
git_remote_free(remote);
|
465
|
-
|
466
|
-
|
467
|
-
|
486
|
+
git_str_dispose(&remote_name);
|
487
|
+
git_str_dispose(&merge_name);
|
488
|
+
git_str_dispose(&buf);
|
468
489
|
return error;
|
469
490
|
}
|
470
491
|
|
471
|
-
static int git_branch_upstream_with_format(
|
492
|
+
static int git_branch_upstream_with_format(
|
493
|
+
git_str *out,
|
494
|
+
git_repository *repo,
|
495
|
+
const char *refname,
|
496
|
+
const char *format,
|
497
|
+
const char *format_name)
|
472
498
|
{
|
473
|
-
int error;
|
474
499
|
git_config *cfg;
|
500
|
+
int error;
|
475
501
|
|
476
502
|
if (!git_reference__is_branch(refname))
|
477
503
|
return not_a_local_branch(refname);
|
478
504
|
|
479
|
-
if ((error = git_repository_config__weakptr(&cfg, repo)) < 0
|
505
|
+
if ((error = git_repository_config__weakptr(&cfg, repo)) < 0 ||
|
506
|
+
(error = retrieve_upstream_configuration(out, cfg, refname, format)) < 0)
|
480
507
|
return error;
|
481
508
|
|
482
|
-
if ((
|
483
|
-
(error = retrieve_upstream_configuration(buf, cfg, refname, format)) < 0)
|
484
|
-
return error;
|
485
|
-
|
486
|
-
if (git_buf_len(buf) == 0) {
|
509
|
+
if (git_str_len(out) == 0) {
|
487
510
|
git_error_set(GIT_ERROR_REFERENCE, "branch '%s' does not have an upstream %s", refname, format_name);
|
488
511
|
error = GIT_ENOTFOUND;
|
489
|
-
git_buf_clear(buf);
|
490
512
|
}
|
491
513
|
|
492
514
|
return error;
|
493
515
|
}
|
494
516
|
|
495
|
-
int git_branch_upstream_remote(
|
517
|
+
int git_branch_upstream_remote(
|
518
|
+
git_buf *out,
|
519
|
+
git_repository *repo,
|
520
|
+
const char *refname)
|
496
521
|
{
|
497
|
-
|
522
|
+
GIT_BUF_WRAP_PRIVATE(out, git_branch__upstream_remote, repo, refname);
|
498
523
|
}
|
499
524
|
|
500
|
-
int
|
525
|
+
int git_branch__upstream_remote(
|
526
|
+
git_str *out,
|
527
|
+
git_repository *repo,
|
528
|
+
const char *refname)
|
501
529
|
{
|
502
|
-
return git_branch_upstream_with_format(
|
530
|
+
return git_branch_upstream_with_format(out, repo, refname, "branch.%s.remote", "remote");
|
503
531
|
}
|
504
532
|
|
505
|
-
int
|
533
|
+
int git_branch_upstream_merge(
|
534
|
+
git_buf *out,
|
535
|
+
git_repository *repo,
|
536
|
+
const char *refname)
|
537
|
+
{
|
538
|
+
GIT_BUF_WRAP_PRIVATE(out, git_branch__upstream_merge, repo, refname);
|
539
|
+
}
|
540
|
+
|
541
|
+
int git_branch__upstream_merge(
|
542
|
+
git_str *out,
|
543
|
+
git_repository *repo,
|
544
|
+
const char *refname)
|
545
|
+
{
|
546
|
+
return git_branch_upstream_with_format(out, repo, refname, "branch.%s.merge", "merge");
|
547
|
+
}
|
548
|
+
|
549
|
+
int git_branch_remote_name(
|
550
|
+
git_buf *out,
|
551
|
+
git_repository *repo,
|
552
|
+
const char *refname)
|
553
|
+
{
|
554
|
+
GIT_BUF_WRAP_PRIVATE(out, git_branch__remote_name, repo, refname);
|
555
|
+
}
|
556
|
+
|
557
|
+
int git_branch__remote_name(
|
558
|
+
git_str *out,
|
559
|
+
git_repository *repo,
|
560
|
+
const char *refname)
|
506
561
|
{
|
507
562
|
git_strarray remote_list = {0};
|
508
563
|
size_t i;
|
@@ -511,13 +566,10 @@ int git_branch_remote_name(git_buf *buf, git_repository *repo, const char *refna
|
|
511
566
|
int error = 0;
|
512
567
|
char *remote_name = NULL;
|
513
568
|
|
514
|
-
GIT_ASSERT_ARG(
|
569
|
+
GIT_ASSERT_ARG(out);
|
515
570
|
GIT_ASSERT_ARG(repo);
|
516
571
|
GIT_ASSERT_ARG(refname);
|
517
572
|
|
518
|
-
if ((error = git_buf_sanitize(buf)) < 0)
|
519
|
-
return error;
|
520
|
-
|
521
573
|
/* Verify that this is a remote branch */
|
522
574
|
if (!git_reference__is_remote(refname)) {
|
523
575
|
git_error_set(GIT_ERROR_INVALID, "reference '%s' is not a remote branch.",
|
@@ -557,8 +609,8 @@ int git_branch_remote_name(git_buf *buf, git_repository *repo, const char *refna
|
|
557
609
|
}
|
558
610
|
|
559
611
|
if (remote_name) {
|
560
|
-
|
561
|
-
error =
|
612
|
+
git_str_clear(out);
|
613
|
+
error = git_str_puts(out, remote_name);
|
562
614
|
} else {
|
563
615
|
git_error_set(GIT_ERROR_REFERENCE,
|
564
616
|
"could not determine remote for '%s'", refname);
|
@@ -567,7 +619,7 @@ int git_branch_remote_name(git_buf *buf, git_repository *repo, const char *refna
|
|
567
619
|
|
568
620
|
cleanup:
|
569
621
|
if (error < 0)
|
570
|
-
|
622
|
+
git_str_dispose(out);
|
571
623
|
|
572
624
|
git_strarray_dispose(&remote_list);
|
573
625
|
return error;
|
@@ -578,49 +630,49 @@ int git_branch_upstream(
|
|
578
630
|
const git_reference *branch)
|
579
631
|
{
|
580
632
|
int error;
|
581
|
-
|
633
|
+
git_str tracking_name = GIT_STR_INIT;
|
582
634
|
|
583
|
-
if ((error =
|
635
|
+
if ((error = git_branch__upstream_name(&tracking_name,
|
584
636
|
git_reference_owner(branch), git_reference_name(branch))) < 0)
|
585
637
|
return error;
|
586
638
|
|
587
639
|
error = git_reference_lookup(
|
588
640
|
tracking_out,
|
589
641
|
git_reference_owner(branch),
|
590
|
-
|
642
|
+
git_str_cstr(&tracking_name));
|
591
643
|
|
592
|
-
|
644
|
+
git_str_dispose(&tracking_name);
|
593
645
|
return error;
|
594
646
|
}
|
595
647
|
|
596
648
|
static int unset_upstream(git_config *config, const char *shortname)
|
597
649
|
{
|
598
|
-
|
650
|
+
git_str buf = GIT_STR_INIT;
|
599
651
|
|
600
|
-
if (
|
652
|
+
if (git_str_printf(&buf, "branch.%s.remote", shortname) < 0)
|
601
653
|
return -1;
|
602
654
|
|
603
|
-
if (git_config_delete_entry(config,
|
655
|
+
if (git_config_delete_entry(config, git_str_cstr(&buf)) < 0)
|
604
656
|
goto on_error;
|
605
657
|
|
606
|
-
|
607
|
-
if (
|
658
|
+
git_str_clear(&buf);
|
659
|
+
if (git_str_printf(&buf, "branch.%s.merge", shortname) < 0)
|
608
660
|
goto on_error;
|
609
661
|
|
610
|
-
if (git_config_delete_entry(config,
|
662
|
+
if (git_config_delete_entry(config, git_str_cstr(&buf)) < 0)
|
611
663
|
goto on_error;
|
612
664
|
|
613
|
-
|
665
|
+
git_str_dispose(&buf);
|
614
666
|
return 0;
|
615
667
|
|
616
668
|
on_error:
|
617
|
-
|
669
|
+
git_str_dispose(&buf);
|
618
670
|
return -1;
|
619
671
|
}
|
620
672
|
|
621
673
|
int git_branch_set_upstream(git_reference *branch, const char *branch_name)
|
622
674
|
{
|
623
|
-
|
675
|
+
git_str key = GIT_STR_INIT, remote_name = GIT_STR_INIT, merge_refspec = GIT_STR_INIT;
|
624
676
|
git_reference *upstream;
|
625
677
|
git_repository *repo;
|
626
678
|
git_remote *remote = NULL;
|
@@ -662,31 +714,31 @@ int git_branch_set_upstream(git_reference *branch, const char *branch_name)
|
|
662
714
|
* name on the remote is and use that.
|
663
715
|
*/
|
664
716
|
if (local)
|
665
|
-
error =
|
717
|
+
error = git_str_puts(&remote_name, ".");
|
666
718
|
else
|
667
|
-
error =
|
719
|
+
error = git_branch__remote_name(&remote_name, repo, git_reference_name(upstream));
|
668
720
|
|
669
721
|
if (error < 0)
|
670
722
|
goto on_error;
|
671
723
|
|
672
|
-
/* Update the
|
673
|
-
if (
|
724
|
+
/* Update the upstream branch config with the new name */
|
725
|
+
if (git_str_printf(&key, "branch.%s.remote", shortname) < 0)
|
674
726
|
goto on_error;
|
675
727
|
|
676
|
-
if (git_config_set_string(config,
|
728
|
+
if (git_config_set_string(config, git_str_cstr(&key), git_str_cstr(&remote_name)) < 0)
|
677
729
|
goto on_error;
|
678
730
|
|
679
731
|
if (local) {
|
680
732
|
/* A local branch uses the upstream refname directly */
|
681
|
-
if (
|
733
|
+
if (git_str_puts(&merge_refspec, git_reference_name(upstream)) < 0)
|
682
734
|
goto on_error;
|
683
735
|
} else {
|
684
736
|
/* We transform the upstream branch name according to the remote's refspecs */
|
685
|
-
if (git_remote_lookup(&remote, repo,
|
737
|
+
if (git_remote_lookup(&remote, repo, git_str_cstr(&remote_name)) < 0)
|
686
738
|
goto on_error;
|
687
739
|
|
688
740
|
fetchspec = git_remote__matching_dst_refspec(remote, git_reference_name(upstream));
|
689
|
-
if (!fetchspec ||
|
741
|
+
if (!fetchspec || git_refspec__rtransform(&merge_refspec, fetchspec, git_reference_name(upstream)) < 0)
|
690
742
|
goto on_error;
|
691
743
|
|
692
744
|
git_remote_free(remote);
|
@@ -694,25 +746,25 @@ int git_branch_set_upstream(git_reference *branch, const char *branch_name)
|
|
694
746
|
}
|
695
747
|
|
696
748
|
/* Update the merge branch config with the refspec */
|
697
|
-
|
698
|
-
if (
|
749
|
+
git_str_clear(&key);
|
750
|
+
if (git_str_printf(&key, "branch.%s.merge", shortname) < 0)
|
699
751
|
goto on_error;
|
700
752
|
|
701
|
-
if (git_config_set_string(config,
|
753
|
+
if (git_config_set_string(config, git_str_cstr(&key), git_str_cstr(&merge_refspec)) < 0)
|
702
754
|
goto on_error;
|
703
755
|
|
704
756
|
git_reference_free(upstream);
|
705
|
-
|
706
|
-
|
707
|
-
|
757
|
+
git_str_dispose(&key);
|
758
|
+
git_str_dispose(&remote_name);
|
759
|
+
git_str_dispose(&merge_refspec);
|
708
760
|
|
709
761
|
return 0;
|
710
762
|
|
711
763
|
on_error:
|
712
764
|
git_reference_free(upstream);
|
713
|
-
|
714
|
-
|
715
|
-
|
765
|
+
git_str_dispose(&key);
|
766
|
+
git_str_dispose(&remote_name);
|
767
|
+
git_str_dispose(&merge_refspec);
|
716
768
|
git_remote_free(remote);
|
717
769
|
|
718
770
|
return -1;
|
@@ -749,29 +801,23 @@ int git_branch_is_head(
|
|
749
801
|
|
750
802
|
int git_branch_name_is_valid(int *valid, const char *name)
|
751
803
|
{
|
752
|
-
|
804
|
+
git_str ref_name = GIT_STR_INIT;
|
753
805
|
int error = 0;
|
754
806
|
|
755
807
|
GIT_ASSERT(valid);
|
756
808
|
|
757
809
|
*valid = 0;
|
758
810
|
|
759
|
-
|
760
|
-
* Discourage branch name starting with dash,
|
761
|
-
* https://github.com/git/git/commit/6348624010888b
|
762
|
-
* and discourage HEAD as branch name,
|
763
|
-
* https://github.com/git/git/commit/a625b092cc5994
|
764
|
-
*/
|
765
|
-
if (!name || name[0] == '-' || !git__strcmp(name, "HEAD"))
|
811
|
+
if (!name || !branch_name_is_valid(name))
|
766
812
|
goto done;
|
767
813
|
|
768
|
-
if ((error =
|
769
|
-
(error =
|
814
|
+
if ((error = git_str_puts(&ref_name, GIT_REFS_HEADS_DIR)) < 0 ||
|
815
|
+
(error = git_str_puts(&ref_name, name)) < 0)
|
770
816
|
goto done;
|
771
817
|
|
772
818
|
error = git_reference_name_is_valid(valid, ref_name.ptr);
|
773
819
|
|
774
820
|
done:
|
775
|
-
|
821
|
+
git_str_dispose(&ref_name);
|
776
822
|
return error;
|
777
823
|
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
3
|
+
*
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
6
|
+
*/
|
7
|
+
#ifndef INCLUDE_branch_h__
|
8
|
+
#define INCLUDE_branch_h__
|
9
|
+
|
10
|
+
#include "common.h"
|
11
|
+
|
12
|
+
#include "str.h"
|
13
|
+
|
14
|
+
int git_branch__remote_name(
|
15
|
+
git_str *out,
|
16
|
+
git_repository *repo,
|
17
|
+
const char *refname);
|
18
|
+
int git_branch__upstream_remote(
|
19
|
+
git_str *out,
|
20
|
+
git_repository *repo,
|
21
|
+
const char *refname);
|
22
|
+
int git_branch__upstream_merge(
|
23
|
+
git_str *out,
|
24
|
+
git_repository *repo,
|
25
|
+
const char *refname);
|
26
|
+
int git_branch__upstream_name(
|
27
|
+
git_str *tracking_name,
|
28
|
+
git_repository *repo,
|
29
|
+
const char *canonical_branch_name);
|
30
|
+
|
31
|
+
#endif
|