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
@@ -27,10 +27,11 @@
|
|
27
27
|
#include "diff_generate.h"
|
28
28
|
#include "pathspec.h"
|
29
29
|
#include "diff_xdiff.h"
|
30
|
-
#include "
|
30
|
+
#include "fs_path.h"
|
31
31
|
#include "attr.h"
|
32
32
|
#include "pool.h"
|
33
|
-
#include "
|
33
|
+
#include "path.h"
|
34
|
+
#include "hashmap_str.h"
|
34
35
|
|
35
36
|
/* See docs/checkout-internals.md for more information */
|
36
37
|
|
@@ -44,7 +45,7 @@ enum {
|
|
44
45
|
CHECKOUT_ACTION__UPDATE_CONFLICT = 32,
|
45
46
|
CHECKOUT_ACTION__MAX = 32,
|
46
47
|
CHECKOUT_ACTION__REMOVE_AND_UPDATE =
|
47
|
-
(CHECKOUT_ACTION__UPDATE_BLOB | CHECKOUT_ACTION__REMOVE)
|
48
|
+
(CHECKOUT_ACTION__UPDATE_BLOB | CHECKOUT_ACTION__REMOVE)
|
48
49
|
};
|
49
50
|
|
50
51
|
typedef struct {
|
@@ -61,9 +62,9 @@ typedef struct {
|
|
61
62
|
git_vector update_conflicts;
|
62
63
|
git_vector *update_reuc;
|
63
64
|
git_vector *update_names;
|
64
|
-
|
65
|
+
git_str target_path;
|
65
66
|
size_t target_len;
|
66
|
-
|
67
|
+
git_str tmp;
|
67
68
|
unsigned int strategy;
|
68
69
|
int can_symlink;
|
69
70
|
int respect_filemode;
|
@@ -71,7 +72,7 @@ typedef struct {
|
|
71
72
|
size_t total_steps;
|
72
73
|
size_t completed_steps;
|
73
74
|
git_checkout_perfdata perfdata;
|
74
|
-
|
75
|
+
git_hashset_str mkdir_pathcache;
|
75
76
|
git_attr_session attr_session;
|
76
77
|
} checkout_data;
|
77
78
|
|
@@ -80,11 +81,11 @@ typedef struct {
|
|
80
81
|
const git_index_entry *ours;
|
81
82
|
const git_index_entry *theirs;
|
82
83
|
|
83
|
-
int name_collision:1,
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
84
|
+
unsigned int name_collision:1,
|
85
|
+
directoryfile:1,
|
86
|
+
one_to_two:1,
|
87
|
+
binary:1,
|
88
|
+
submodule:1;
|
88
89
|
} checkout_conflictdata;
|
89
90
|
|
90
91
|
static int checkout_notify(
|
@@ -293,6 +294,9 @@ static int checkout_action_no_wd(
|
|
293
294
|
|
294
295
|
*action = CHECKOUT_ACTION__NONE;
|
295
296
|
|
297
|
+
if ((data->strategy & GIT_CHECKOUT_NONE))
|
298
|
+
return 0;
|
299
|
+
|
296
300
|
switch (delta->status) {
|
297
301
|
case GIT_DELTA_UNMODIFIED: /* case 12 */
|
298
302
|
error = checkout_notify(data, GIT_CHECKOUT_NOTIFY_DIRTY, delta, NULL);
|
@@ -301,17 +305,17 @@ static int checkout_action_no_wd(
|
|
301
305
|
*action = CHECKOUT_ACTION_IF(RECREATE_MISSING, UPDATE_BLOB, NONE);
|
302
306
|
break;
|
303
307
|
case GIT_DELTA_ADDED: /* case 2 or 28 (and 5 but not really) */
|
304
|
-
*action =
|
308
|
+
*action = CHECKOUT_ACTION__UPDATE_BLOB;
|
305
309
|
break;
|
306
310
|
case GIT_DELTA_MODIFIED: /* case 13 (and 35 but not really) */
|
307
311
|
*action = CHECKOUT_ACTION_IF(RECREATE_MISSING, UPDATE_BLOB, CONFLICT);
|
308
312
|
break;
|
309
313
|
case GIT_DELTA_TYPECHANGE: /* case 21 (B->T) and 28 (T->B)*/
|
310
314
|
if (delta->new_file.mode == GIT_FILEMODE_TREE)
|
311
|
-
*action =
|
315
|
+
*action = CHECKOUT_ACTION__UPDATE_BLOB;
|
312
316
|
break;
|
313
317
|
case GIT_DELTA_DELETED: /* case 8 or 25 */
|
314
|
-
*action =
|
318
|
+
*action = CHECKOUT_ACTION__REMOVE;
|
315
319
|
break;
|
316
320
|
default: /* impossible */
|
317
321
|
break;
|
@@ -321,14 +325,14 @@ static int checkout_action_no_wd(
|
|
321
325
|
}
|
322
326
|
|
323
327
|
static int checkout_target_fullpath(
|
324
|
-
|
328
|
+
git_str **out, checkout_data *data, const char *path)
|
325
329
|
{
|
326
|
-
|
330
|
+
git_str_truncate(&data->target_path, data->target_len);
|
327
331
|
|
328
|
-
if (path &&
|
332
|
+
if (path && git_str_puts(&data->target_path, path) < 0)
|
329
333
|
return -1;
|
330
334
|
|
331
|
-
if (
|
335
|
+
if (git_path_validate_str_length(data->repo, &data->target_path) < 0)
|
332
336
|
return -1;
|
333
337
|
|
334
338
|
*out = &data->target_path;
|
@@ -339,7 +343,7 @@ static int checkout_target_fullpath(
|
|
339
343
|
static bool wd_item_is_removable(
|
340
344
|
checkout_data *data, const git_index_entry *wd)
|
341
345
|
{
|
342
|
-
|
346
|
+
git_str *full;
|
343
347
|
|
344
348
|
if (wd->mode != GIT_FILEMODE_TREE)
|
345
349
|
return true;
|
@@ -347,7 +351,7 @@ static bool wd_item_is_removable(
|
|
347
351
|
if (checkout_target_fullpath(&full, data, wd->path) < 0)
|
348
352
|
return false;
|
349
353
|
|
350
|
-
return !full || !
|
354
|
+
return !full || !git_fs_path_contains(full, DOT_GIT);
|
351
355
|
}
|
352
356
|
|
353
357
|
static int checkout_queue_remove(checkout_data *data, const char *path)
|
@@ -423,7 +427,7 @@ static int checkout_action_wd_only(
|
|
423
427
|
|
424
428
|
/* copy the entry for issuing notification callback later */
|
425
429
|
git_index_entry saved_wd = *wd;
|
426
|
-
|
430
|
+
git_str_sets(&data->tmp, wd->path);
|
427
431
|
saved_wd.path = data->tmp.ptr;
|
428
432
|
|
429
433
|
error = git_iterator_advance_over(
|
@@ -476,12 +480,12 @@ static bool submodule_is_config_only(
|
|
476
480
|
|
477
481
|
static bool checkout_is_empty_dir(checkout_data *data, const char *path)
|
478
482
|
{
|
479
|
-
|
483
|
+
git_str *fullpath;
|
480
484
|
|
481
485
|
if (checkout_target_fullpath(&fullpath, data, path) < 0)
|
482
486
|
return false;
|
483
487
|
|
484
|
-
return
|
488
|
+
return git_fs_path_is_empty_dir(fullpath->ptr);
|
485
489
|
}
|
486
490
|
|
487
491
|
static int checkout_action_with_wd(
|
@@ -493,6 +497,9 @@ static int checkout_action_with_wd(
|
|
493
497
|
{
|
494
498
|
*action = CHECKOUT_ACTION__NONE;
|
495
499
|
|
500
|
+
if ((data->strategy & GIT_CHECKOUT_NONE))
|
501
|
+
return 0;
|
502
|
+
|
496
503
|
switch (delta->status) {
|
497
504
|
case GIT_DELTA_UNMODIFIED: /* case 14/15 or 33 */
|
498
505
|
if (checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd)) {
|
@@ -511,14 +518,14 @@ static int checkout_action_with_wd(
|
|
511
518
|
if (checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd))
|
512
519
|
*action = CHECKOUT_ACTION_IF(FORCE, REMOVE, CONFLICT);
|
513
520
|
else
|
514
|
-
*action =
|
521
|
+
*action = CHECKOUT_ACTION__REMOVE;
|
515
522
|
break;
|
516
523
|
case GIT_DELTA_MODIFIED: /* case 16, 17, 18 (or 36 but not really) */
|
517
524
|
if (wd->mode != GIT_FILEMODE_COMMIT &&
|
518
525
|
checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd))
|
519
526
|
*action = CHECKOUT_ACTION_IF(FORCE, UPDATE_BLOB, CONFLICT);
|
520
527
|
else
|
521
|
-
*action =
|
528
|
+
*action = CHECKOUT_ACTION__UPDATE_BLOB;
|
522
529
|
break;
|
523
530
|
case GIT_DELTA_TYPECHANGE: /* case 22, 23, 29, 30 */
|
524
531
|
if (delta->old_file.mode == GIT_FILEMODE_TREE) {
|
@@ -526,13 +533,13 @@ static int checkout_action_with_wd(
|
|
526
533
|
/* either deleting items in old tree will delete the wd dir,
|
527
534
|
* or we'll get a conflict when we attempt blob update...
|
528
535
|
*/
|
529
|
-
*action =
|
536
|
+
*action = CHECKOUT_ACTION__UPDATE_BLOB;
|
530
537
|
else if (wd->mode == GIT_FILEMODE_COMMIT) {
|
531
538
|
/* workdir is possibly a "phantom" submodule - treat as a
|
532
539
|
* tree if the only submodule info came from the config
|
533
540
|
*/
|
534
541
|
if (submodule_is_config_only(data, wd->path))
|
535
|
-
*action =
|
542
|
+
*action = CHECKOUT_ACTION__UPDATE_BLOB;
|
536
543
|
else
|
537
544
|
*action = CHECKOUT_ACTION_IF(FORCE, REMOVE_AND_UPDATE, CONFLICT);
|
538
545
|
} else
|
@@ -541,7 +548,7 @@ static int checkout_action_with_wd(
|
|
541
548
|
else if (checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd))
|
542
549
|
*action = CHECKOUT_ACTION_IF(FORCE, REMOVE_AND_UPDATE, CONFLICT);
|
543
550
|
else
|
544
|
-
*action =
|
551
|
+
*action = CHECKOUT_ACTION__REMOVE_AND_UPDATE;
|
545
552
|
|
546
553
|
/* don't update if the typechange is to a tree */
|
547
554
|
if (delta->new_file.mode == GIT_FILEMODE_TREE)
|
@@ -562,6 +569,9 @@ static int checkout_action_with_wd_blocker(
|
|
562
569
|
{
|
563
570
|
*action = CHECKOUT_ACTION__NONE;
|
564
571
|
|
572
|
+
if ((data->strategy & GIT_CHECKOUT_NONE))
|
573
|
+
return 0;
|
574
|
+
|
565
575
|
switch (delta->status) {
|
566
576
|
case GIT_DELTA_UNMODIFIED:
|
567
577
|
/* should show delta as dirty / deleted */
|
@@ -596,6 +606,9 @@ static int checkout_action_with_wd_dir(
|
|
596
606
|
{
|
597
607
|
*action = CHECKOUT_ACTION__NONE;
|
598
608
|
|
609
|
+
if ((data->strategy & GIT_CHECKOUT_NONE))
|
610
|
+
return 0;
|
611
|
+
|
599
612
|
switch (delta->status) {
|
600
613
|
case GIT_DELTA_UNMODIFIED: /* case 19 or 24 (or 34 but not really) */
|
601
614
|
GIT_ERROR_CHECK_ERROR(
|
@@ -626,7 +639,7 @@ static int checkout_action_with_wd_dir(
|
|
626
639
|
* directory if is it left empty, so we can defer removing the
|
627
640
|
* dir and it will succeed if no children are left.
|
628
641
|
*/
|
629
|
-
*action =
|
642
|
+
*action = CHECKOUT_ACTION__UPDATE_BLOB;
|
630
643
|
}
|
631
644
|
else if (delta->new_file.mode != GIT_FILEMODE_TREE)
|
632
645
|
/* For typechange to dir, dir is already created so no action */
|
@@ -962,7 +975,7 @@ static int checkout_conflicts_load(checkout_data *data, git_iterator *workdir, g
|
|
962
975
|
{
|
963
976
|
git_index *index;
|
964
977
|
|
965
|
-
/* Only write
|
978
|
+
/* Only write conflicts from sources that have them: indexes. */
|
966
979
|
if ((index = git_iterator_index(data->target)) == NULL)
|
967
980
|
return 0;
|
968
981
|
|
@@ -1201,12 +1214,12 @@ static int checkout_conflicts_mark_directoryfile(
|
|
1201
1214
|
goto done;
|
1202
1215
|
}
|
1203
1216
|
|
1204
|
-
prefixed =
|
1217
|
+
prefixed = git_fs_path_equal_or_prefixed(path, entry->path, NULL);
|
1205
1218
|
|
1206
|
-
if (prefixed ==
|
1219
|
+
if (prefixed == GIT_FS_PATH_EQUAL)
|
1207
1220
|
continue;
|
1208
1221
|
|
1209
|
-
if (prefixed ==
|
1222
|
+
if (prefixed == GIT_FS_PATH_PREFIX)
|
1210
1223
|
conflict->directoryfile = 1;
|
1211
1224
|
|
1212
1225
|
break;
|
@@ -1280,14 +1293,14 @@ static int checkout_verify_paths(
|
|
1280
1293
|
unsigned int flags = GIT_PATH_REJECT_WORKDIR_DEFAULTS;
|
1281
1294
|
|
1282
1295
|
if (action & CHECKOUT_ACTION__REMOVE) {
|
1283
|
-
if (!
|
1296
|
+
if (!git_path_is_valid(repo, delta->old_file.path, delta->old_file.mode, flags)) {
|
1284
1297
|
git_error_set(GIT_ERROR_CHECKOUT, "cannot remove invalid path '%s'", delta->old_file.path);
|
1285
1298
|
return -1;
|
1286
1299
|
}
|
1287
1300
|
}
|
1288
1301
|
|
1289
1302
|
if (action & ~CHECKOUT_ACTION__REMOVE) {
|
1290
|
-
if (!
|
1303
|
+
if (!git_path_is_valid(repo, delta->new_file.path, delta->new_file.mode, flags)) {
|
1291
1304
|
git_error_set(GIT_ERROR_CHECKOUT, "cannot checkout to invalid path '%s'", delta->new_file.path);
|
1292
1305
|
return -1;
|
1293
1306
|
}
|
@@ -1418,8 +1431,10 @@ static int checkout_mkdir(
|
|
1418
1431
|
struct git_futils_mkdir_options mkdir_opts = {0};
|
1419
1432
|
int error;
|
1420
1433
|
|
1421
|
-
|
1422
|
-
|
1434
|
+
if (git_pool_is_initialized(&data->pool)) {
|
1435
|
+
mkdir_opts.cache_pool = &data->pool;
|
1436
|
+
mkdir_opts.cache_pathset = &data->mkdir_pathcache;
|
1437
|
+
}
|
1423
1438
|
|
1424
1439
|
error = git_futils_mkdir_relative(
|
1425
1440
|
path, base, mode, flags, &mkdir_opts);
|
@@ -1584,7 +1599,7 @@ static int blob_content_to_link(
|
|
1584
1599
|
git_blob *blob,
|
1585
1600
|
const char *path)
|
1586
1601
|
{
|
1587
|
-
|
1602
|
+
git_str linktarget = GIT_STR_INIT;
|
1588
1603
|
int error;
|
1589
1604
|
|
1590
1605
|
if ((error = mkpath2file(data, path, data->opts.dir_mode)) < 0)
|
@@ -1594,10 +1609,10 @@ static int blob_content_to_link(
|
|
1594
1609
|
return error;
|
1595
1610
|
|
1596
1611
|
if (data->can_symlink) {
|
1597
|
-
if ((error = p_symlink(
|
1612
|
+
if ((error = p_symlink(git_str_cstr(&linktarget), path)) < 0)
|
1598
1613
|
git_error_set(GIT_ERROR_OS, "could not create symlink %s", path);
|
1599
1614
|
} else {
|
1600
|
-
error = git_futils_fake_symlink(
|
1615
|
+
error = git_futils_fake_symlink(git_str_cstr(&linktarget), path);
|
1601
1616
|
}
|
1602
1617
|
|
1603
1618
|
if (!error) {
|
@@ -1609,7 +1624,7 @@ static int blob_content_to_link(
|
|
1609
1624
|
st->st_mode = GIT_FILEMODE_LINK;
|
1610
1625
|
}
|
1611
1626
|
|
1612
|
-
|
1627
|
+
git_str_dispose(&linktarget);
|
1613
1628
|
|
1614
1629
|
return error;
|
1615
1630
|
}
|
@@ -1636,7 +1651,7 @@ static int checkout_submodule_update_index(
|
|
1636
1651
|
checkout_data *data,
|
1637
1652
|
const git_diff_file *file)
|
1638
1653
|
{
|
1639
|
-
|
1654
|
+
git_str *fullpath;
|
1640
1655
|
struct stat st;
|
1641
1656
|
|
1642
1657
|
/* update the index unless prevented */
|
@@ -1772,7 +1787,7 @@ static int checkout_blob(
|
|
1772
1787
|
checkout_data *data,
|
1773
1788
|
const git_diff_file *file)
|
1774
1789
|
{
|
1775
|
-
|
1790
|
+
git_str *fullpath;
|
1776
1791
|
struct stat st;
|
1777
1792
|
int error = 0;
|
1778
1793
|
|
@@ -1809,7 +1824,7 @@ static int checkout_remove_the_old(
|
|
1809
1824
|
git_diff_delta *delta;
|
1810
1825
|
const char *str;
|
1811
1826
|
size_t i;
|
1812
|
-
|
1827
|
+
git_str *fullpath;
|
1813
1828
|
uint32_t flg = GIT_RMDIR_EMPTY_PARENTS |
|
1814
1829
|
GIT_RMDIR_REMOVE_FILES | GIT_RMDIR_REMOVE_BLOCKERS;
|
1815
1830
|
|
@@ -1927,40 +1942,40 @@ static int checkout_lookup_head_tree(git_tree **out, git_repository *repo)
|
|
1927
1942
|
|
1928
1943
|
|
1929
1944
|
static int conflict_entry_name(
|
1930
|
-
|
1945
|
+
git_str *out,
|
1931
1946
|
const char *side_name,
|
1932
1947
|
const char *filename)
|
1933
1948
|
{
|
1934
|
-
if (
|
1935
|
-
|
1936
|
-
|
1949
|
+
if (git_str_puts(out, side_name) < 0 ||
|
1950
|
+
git_str_putc(out, ':') < 0 ||
|
1951
|
+
git_str_puts(out, filename) < 0)
|
1937
1952
|
return -1;
|
1938
1953
|
|
1939
1954
|
return 0;
|
1940
1955
|
}
|
1941
1956
|
|
1942
|
-
static int checkout_path_suffixed(
|
1957
|
+
static int checkout_path_suffixed(git_str *path, const char *suffix)
|
1943
1958
|
{
|
1944
1959
|
size_t path_len;
|
1945
1960
|
int i = 0, error = 0;
|
1946
1961
|
|
1947
|
-
if ((error =
|
1962
|
+
if ((error = git_str_putc(path, '~')) < 0 || (error = git_str_puts(path, suffix)) < 0)
|
1948
1963
|
return -1;
|
1949
1964
|
|
1950
|
-
path_len =
|
1965
|
+
path_len = git_str_len(path);
|
1951
1966
|
|
1952
|
-
while (
|
1953
|
-
|
1967
|
+
while (git_fs_path_exists(git_str_cstr(path)) && i < INT_MAX) {
|
1968
|
+
git_str_truncate(path, path_len);
|
1954
1969
|
|
1955
|
-
if ((error =
|
1956
|
-
(error =
|
1970
|
+
if ((error = git_str_putc(path, '_')) < 0 ||
|
1971
|
+
(error = git_str_printf(path, "%d", i)) < 0)
|
1957
1972
|
return error;
|
1958
1973
|
|
1959
1974
|
i++;
|
1960
1975
|
}
|
1961
1976
|
|
1962
1977
|
if (i == INT_MAX) {
|
1963
|
-
|
1978
|
+
git_str_truncate(path, path_len);
|
1964
1979
|
|
1965
1980
|
git_error_set(GIT_ERROR_CHECKOUT, "could not write '%s': working directory file exists", path->ptr);
|
1966
1981
|
return GIT_EEXISTS;
|
@@ -1974,8 +1989,8 @@ static int checkout_write_entry(
|
|
1974
1989
|
checkout_conflictdata *conflict,
|
1975
1990
|
const git_index_entry *side)
|
1976
1991
|
{
|
1977
|
-
const char *hint_path, *suffix;
|
1978
|
-
|
1992
|
+
const char *hint_path = NULL, *suffix;
|
1993
|
+
git_str *fullpath;
|
1979
1994
|
struct stat st;
|
1980
1995
|
int error;
|
1981
1996
|
|
@@ -2025,7 +2040,7 @@ static int checkout_write_entries(
|
|
2025
2040
|
}
|
2026
2041
|
|
2027
2042
|
static int checkout_merge_path(
|
2028
|
-
|
2043
|
+
git_str *out,
|
2029
2044
|
checkout_data *data,
|
2030
2045
|
checkout_conflictdata *conflict,
|
2031
2046
|
git_merge_file_result *result)
|
@@ -2033,8 +2048,8 @@ static int checkout_merge_path(
|
|
2033
2048
|
const char *our_label_raw, *their_label_raw, *suffix;
|
2034
2049
|
int error = 0;
|
2035
2050
|
|
2036
|
-
if ((error =
|
2037
|
-
(error =
|
2051
|
+
if ((error = git_str_joinpath(out, data->opts.target_directory, result->path)) < 0 ||
|
2052
|
+
(error = git_path_validate_str_length(data->repo, out)) < 0)
|
2038
2053
|
return error;
|
2039
2054
|
|
2040
2055
|
/* Most conflicts simply use the filename in the index */
|
@@ -2056,9 +2071,9 @@ static int checkout_write_merge(
|
|
2056
2071
|
checkout_data *data,
|
2057
2072
|
checkout_conflictdata *conflict)
|
2058
2073
|
{
|
2059
|
-
|
2060
|
-
path_suffixed =
|
2061
|
-
in_data =
|
2074
|
+
git_str our_label = GIT_STR_INIT, their_label = GIT_STR_INIT,
|
2075
|
+
path_suffixed = GIT_STR_INIT, path_workdir = GIT_STR_INIT,
|
2076
|
+
in_data = GIT_STR_INIT, out_data = GIT_STR_INIT;
|
2062
2077
|
git_merge_file_options opts = GIT_MERGE_FILE_OPTIONS_INIT;
|
2063
2078
|
git_merge_file_result result = {0};
|
2064
2079
|
git_filebuf output = GIT_FILEBUF_INIT;
|
@@ -2069,6 +2084,9 @@ static int checkout_write_merge(
|
|
2069
2084
|
if (data->opts.checkout_strategy & GIT_CHECKOUT_CONFLICT_STYLE_DIFF3)
|
2070
2085
|
opts.flags |= GIT_MERGE_FILE_STYLE_DIFF3;
|
2071
2086
|
|
2087
|
+
if (data->opts.checkout_strategy & GIT_CHECKOUT_CONFLICT_STYLE_ZDIFF3)
|
2088
|
+
opts.flags |= GIT_MERGE_FILE_STYLE_ZDIFF3;
|
2089
|
+
|
2072
2090
|
opts.ancestor_label = data->opts.ancestor_label ?
|
2073
2091
|
data->opts.ancestor_label : "ancestor";
|
2074
2092
|
opts.our_label = data->opts.our_label ?
|
@@ -2088,8 +2106,8 @@ static int checkout_write_merge(
|
|
2088
2106
|
&their_label, opts.their_label, conflict->theirs->path)) < 0)
|
2089
2107
|
goto done;
|
2090
2108
|
|
2091
|
-
opts.our_label =
|
2092
|
-
opts.their_label =
|
2109
|
+
opts.our_label = git_str_cstr(&our_label);
|
2110
|
+
opts.their_label = git_str_cstr(&their_label);
|
2093
2111
|
}
|
2094
2112
|
|
2095
2113
|
if ((error = git_merge_file_from_index(&result, data->repo,
|
@@ -2106,7 +2124,7 @@ static int checkout_write_merge(
|
|
2106
2124
|
goto done;
|
2107
2125
|
|
2108
2126
|
if ((data->strategy & GIT_CHECKOUT_UPDATE_ONLY) != 0 &&
|
2109
|
-
(error = checkout_safe_for_update_only(data,
|
2127
|
+
(error = checkout_safe_for_update_only(data, git_str_cstr(&path_workdir), result.mode)) <= 0)
|
2110
2128
|
goto done;
|
2111
2129
|
|
2112
2130
|
if (!data->opts.disable_filters) {
|
@@ -2127,7 +2145,7 @@ static int checkout_write_merge(
|
|
2127
2145
|
}
|
2128
2146
|
|
2129
2147
|
if ((error = mkpath2file(data, path_workdir.ptr, data->opts.dir_mode)) < 0 ||
|
2130
|
-
(error = git_filebuf_open(&output,
|
2148
|
+
(error = git_filebuf_open(&output, git_str_cstr(&path_workdir), GIT_FILEBUF_DO_NOT_BUFFER, result.mode)) < 0 ||
|
2131
2149
|
(error = git_filebuf_write(&output, out_data.ptr, out_data.size)) < 0 ||
|
2132
2150
|
(error = git_filebuf_commit(&output)) < 0)
|
2133
2151
|
goto done;
|
@@ -2135,13 +2153,13 @@ static int checkout_write_merge(
|
|
2135
2153
|
done:
|
2136
2154
|
git_filter_list_free(fl);
|
2137
2155
|
|
2138
|
-
|
2139
|
-
|
2140
|
-
|
2156
|
+
git_str_dispose(&out_data);
|
2157
|
+
git_str_dispose(&our_label);
|
2158
|
+
git_str_dispose(&their_label);
|
2141
2159
|
|
2142
2160
|
git_merge_file_result_free(&result);
|
2143
|
-
|
2144
|
-
|
2161
|
+
git_str_dispose(&path_workdir);
|
2162
|
+
git_str_dispose(&path_suffixed);
|
2145
2163
|
|
2146
2164
|
return error;
|
2147
2165
|
}
|
@@ -2312,23 +2330,22 @@ static void checkout_data_clear(checkout_data *data)
|
|
2312
2330
|
data->opts.baseline = NULL;
|
2313
2331
|
}
|
2314
2332
|
|
2315
|
-
|
2333
|
+
git_vector_dispose(&data->removes);
|
2316
2334
|
git_pool_clear(&data->pool);
|
2317
2335
|
|
2318
|
-
|
2319
|
-
|
2336
|
+
git_vector_dispose_deep(&data->remove_conflicts);
|
2337
|
+
git_vector_dispose_deep(&data->update_conflicts);
|
2320
2338
|
|
2321
2339
|
git__free(data->pfx);
|
2322
2340
|
data->pfx = NULL;
|
2323
2341
|
|
2324
|
-
|
2325
|
-
|
2342
|
+
git_str_dispose(&data->target_path);
|
2343
|
+
git_str_dispose(&data->tmp);
|
2326
2344
|
|
2327
2345
|
git_index_free(data->index);
|
2328
2346
|
data->index = NULL;
|
2329
2347
|
|
2330
|
-
|
2331
|
-
data->mkdir_map = NULL;
|
2348
|
+
git_hashset_str_dispose(&data->mkdir_pathcache);
|
2332
2349
|
|
2333
2350
|
git_attr_session__free(&data->attr_session);
|
2334
2351
|
}
|
@@ -2337,10 +2354,10 @@ static int validate_target_directory(checkout_data *data)
|
|
2337
2354
|
{
|
2338
2355
|
int error;
|
2339
2356
|
|
2340
|
-
if ((error =
|
2357
|
+
if ((error = git_path_validate_length(data->repo, data->opts.target_directory)) < 0)
|
2341
2358
|
return error;
|
2342
2359
|
|
2343
|
-
if (
|
2360
|
+
if (git_fs_path_isdir(data->opts.target_directory))
|
2344
2361
|
return 0;
|
2345
2362
|
|
2346
2363
|
error = checkout_mkdir(data, data->opts.target_directory, NULL,
|
@@ -2428,14 +2445,12 @@ static int checkout_data_init(
|
|
2428
2445
|
|
2429
2446
|
/* if you are forcing, allow all safe updates, plus recreate missing */
|
2430
2447
|
if ((data->opts.checkout_strategy & GIT_CHECKOUT_FORCE) != 0)
|
2431
|
-
data->opts.checkout_strategy |=
|
2432
|
-
GIT_CHECKOUT_RECREATE_MISSING;
|
2448
|
+
data->opts.checkout_strategy |= GIT_CHECKOUT_RECREATE_MISSING;
|
2433
2449
|
|
2434
2450
|
/* if the repository does not actually have an index file, then this
|
2435
2451
|
* is an initial checkout (perhaps from clone), so we allow safe updates
|
2436
2452
|
*/
|
2437
|
-
if (!data->index->on_disk
|
2438
|
-
(data->opts.checkout_strategy & GIT_CHECKOUT_SAFE) != 0)
|
2453
|
+
if (!data->index->on_disk)
|
2439
2454
|
data->opts.checkout_strategy |= GIT_CHECKOUT_RECREATE_MISSING;
|
2440
2455
|
|
2441
2456
|
data->strategy = data->opts.checkout_strategy;
|
@@ -2492,6 +2507,8 @@ static int checkout_data_init(
|
|
2492
2507
|
data->opts.checkout_strategy |= GIT_CHECKOUT_CONFLICT_STYLE_MERGE;
|
2493
2508
|
else if (strcmp(conflict_style->value, "diff3") == 0)
|
2494
2509
|
data->opts.checkout_strategy |= GIT_CHECKOUT_CONFLICT_STYLE_DIFF3;
|
2510
|
+
else if (strcmp(conflict_style->value, "zdiff3") == 0)
|
2511
|
+
data->opts.checkout_strategy |= GIT_CHECKOUT_CONFLICT_STYLE_ZDIFF3;
|
2495
2512
|
else {
|
2496
2513
|
git_error_set(GIT_ERROR_CHECKOUT, "unknown style '%s' given for 'merge.conflictstyle'",
|
2497
2514
|
conflict_style->value);
|
@@ -2506,12 +2523,11 @@ static int checkout_data_init(
|
|
2506
2523
|
(error = git_vector_init(&data->removes, 0, git__strcmp_cb)) < 0 ||
|
2507
2524
|
(error = git_vector_init(&data->remove_conflicts, 0, NULL)) < 0 ||
|
2508
2525
|
(error = git_vector_init(&data->update_conflicts, 0, NULL)) < 0 ||
|
2509
|
-
(error =
|
2510
|
-
(error =
|
2511
|
-
(error = git_strmap_new(&data->mkdir_map)) < 0)
|
2526
|
+
(error = git_str_puts(&data->target_path, data->opts.target_directory)) < 0 ||
|
2527
|
+
(error = git_fs_path_to_dir(&data->target_path)) < 0)
|
2512
2528
|
goto cleanup;
|
2513
2529
|
|
2514
|
-
data->target_len =
|
2530
|
+
data->target_len = git_str_len(&data->target_path);
|
2515
2531
|
|
2516
2532
|
git_attr_session__init(&data->attr_session, data->repo);
|
2517
2533
|
|
@@ -2623,7 +2639,7 @@ int git_checkout_iterator(
|
|
2623
2639
|
|
2624
2640
|
if (data.strategy & GIT_CHECKOUT_DRY_RUN)
|
2625
2641
|
goto cleanup;
|
2626
|
-
|
2642
|
+
|
2627
2643
|
data.total_steps = counts[CHECKOUT_ACTION__REMOVE] +
|
2628
2644
|
counts[CHECKOUT_ACTION__REMOVE_CONFLICT] +
|
2629
2645
|
counts[CHECKOUT_ACTION__UPDATE_BLOB] +
|
@@ -12,8 +12,6 @@
|
|
12
12
|
#include "git2/checkout.h"
|
13
13
|
#include "iterator.h"
|
14
14
|
|
15
|
-
#define GIT_CHECKOUT__NOTIFY_CONFLICT_TREE (1u << 12)
|
16
|
-
|
17
15
|
/**
|
18
16
|
* Update the working directory to match the target iterator. The
|
19
17
|
* expected baseline value can be passed in via the checkout options
|
@@ -26,10 +26,10 @@ static int write_cherrypick_head(
|
|
26
26
|
const char *commit_oidstr)
|
27
27
|
{
|
28
28
|
git_filebuf file = GIT_FILEBUF_INIT;
|
29
|
-
|
29
|
+
git_str file_path = GIT_STR_INIT;
|
30
30
|
int error = 0;
|
31
31
|
|
32
|
-
if ((error =
|
32
|
+
if ((error = git_str_joinpath(&file_path, repo->gitdir, GIT_CHERRYPICK_HEAD_FILE)) >= 0 &&
|
33
33
|
(error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_CHERRYPICK_FILE_MODE)) >= 0 &&
|
34
34
|
(error = git_filebuf_printf(&file, "%s\n", commit_oidstr)) >= 0)
|
35
35
|
error = git_filebuf_commit(&file);
|
@@ -37,7 +37,7 @@ static int write_cherrypick_head(
|
|
37
37
|
if (error < 0)
|
38
38
|
git_filebuf_cleanup(&file);
|
39
39
|
|
40
|
-
|
40
|
+
git_str_dispose(&file_path);
|
41
41
|
|
42
42
|
return error;
|
43
43
|
}
|
@@ -47,10 +47,10 @@ static int write_merge_msg(
|
|
47
47
|
const char *commit_msg)
|
48
48
|
{
|
49
49
|
git_filebuf file = GIT_FILEBUF_INIT;
|
50
|
-
|
50
|
+
git_str file_path = GIT_STR_INIT;
|
51
51
|
int error = 0;
|
52
52
|
|
53
|
-
if ((error =
|
53
|
+
if ((error = git_str_joinpath(&file_path, repo->gitdir, GIT_MERGE_MSG_FILE)) < 0 ||
|
54
54
|
(error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_CHERRYPICK_FILE_MODE)) < 0 ||
|
55
55
|
(error = git_filebuf_printf(&file, "%s", commit_msg)) < 0)
|
56
56
|
goto cleanup;
|
@@ -61,7 +61,7 @@ cleanup:
|
|
61
61
|
if (error < 0)
|
62
62
|
git_filebuf_cleanup(&file);
|
63
63
|
|
64
|
-
|
64
|
+
git_str_dispose(&file_path);
|
65
65
|
|
66
66
|
return error;
|
67
67
|
}
|
@@ -73,8 +73,7 @@ static int cherrypick_normalize_opts(
|
|
73
73
|
const char *their_label)
|
74
74
|
{
|
75
75
|
int error = 0;
|
76
|
-
unsigned int default_checkout_strategy =
|
77
|
-
GIT_CHECKOUT_ALLOW_CONFLICTS;
|
76
|
+
unsigned int default_checkout_strategy = GIT_CHECKOUT_ALLOW_CONFLICTS;
|
78
77
|
|
79
78
|
GIT_UNUSED(repo);
|
80
79
|
|
@@ -106,10 +105,10 @@ static int cherrypick_state_cleanup(git_repository *repo)
|
|
106
105
|
|
107
106
|
static int cherrypick_seterr(git_commit *commit, const char *fmt)
|
108
107
|
{
|
109
|
-
char commit_oidstr[
|
108
|
+
char commit_oidstr[GIT_OID_MAX_HEXSIZE + 1];
|
110
109
|
|
111
110
|
git_error_set(GIT_ERROR_CHERRYPICK, fmt,
|
112
|
-
git_oid_tostr(commit_oidstr,
|
111
|
+
git_oid_tostr(commit_oidstr, GIT_OID_MAX_HEXSIZE + 1, git_commit_id(commit)));
|
113
112
|
|
114
113
|
return -1;
|
115
114
|
}
|
@@ -173,9 +172,9 @@ int git_cherrypick(
|
|
173
172
|
git_cherrypick_options opts;
|
174
173
|
git_reference *our_ref = NULL;
|
175
174
|
git_commit *our_commit = NULL;
|
176
|
-
char commit_oidstr[
|
175
|
+
char commit_oidstr[GIT_OID_MAX_HEXSIZE + 1];
|
177
176
|
const char *commit_msg, *commit_summary;
|
178
|
-
|
177
|
+
git_str their_label = GIT_STR_INIT;
|
179
178
|
git_index *index = NULL;
|
180
179
|
git_indexwriter indexwriter = GIT_INDEXWRITER_INIT;
|
181
180
|
int error = 0;
|
@@ -197,8 +196,8 @@ int git_cherrypick(
|
|
197
196
|
git_oid_nfmt(commit_oidstr, sizeof(commit_oidstr), git_commit_id(commit));
|
198
197
|
|
199
198
|
if ((error = write_merge_msg(repo, commit_msg)) < 0 ||
|
200
|
-
(error =
|
201
|
-
(error = cherrypick_normalize_opts(repo, &opts, given_opts,
|
199
|
+
(error = git_str_printf(&their_label, "%.7s... %s", commit_oidstr, commit_summary)) < 0 ||
|
200
|
+
(error = cherrypick_normalize_opts(repo, &opts, given_opts, git_str_cstr(&their_label))) < 0 ||
|
202
201
|
(error = git_indexwriter_init_for_operation(&indexwriter, repo, &opts.checkout_opts.checkout_strategy)) < 0 ||
|
203
202
|
(error = write_cherrypick_head(repo, commit_oidstr)) < 0 ||
|
204
203
|
(error = git_repository_head(&our_ref, repo)) < 0 ||
|
@@ -220,7 +219,7 @@ done:
|
|
220
219
|
git_index_free(index);
|
221
220
|
git_commit_free(our_commit);
|
222
221
|
git_reference_free(our_ref);
|
223
|
-
|
222
|
+
git_str_dispose(&their_label);
|
224
223
|
|
225
224
|
return error;
|
226
225
|
}
|