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 "common.h"
|
9
9
|
|
10
|
+
#include "buf.h"
|
10
11
|
#include "diff.h"
|
11
12
|
#include "diff_file.h"
|
12
13
|
#include "patch_generate.h"
|
@@ -14,6 +15,7 @@
|
|
14
15
|
#include "zstream.h"
|
15
16
|
#include "blob.h"
|
16
17
|
#include "delta.h"
|
18
|
+
#include "repository.h"
|
17
19
|
#include "git2/sys/diff.h"
|
18
20
|
|
19
21
|
typedef struct {
|
@@ -21,20 +23,22 @@ typedef struct {
|
|
21
23
|
git_diff_line_cb print_cb;
|
22
24
|
void *payload;
|
23
25
|
|
24
|
-
|
26
|
+
git_str *buf;
|
25
27
|
git_diff_line line;
|
26
28
|
|
27
29
|
const char *old_prefix;
|
28
30
|
const char *new_prefix;
|
29
31
|
uint32_t flags;
|
30
32
|
int id_strlen;
|
33
|
+
unsigned int sent_file_header;
|
34
|
+
git_oid_t oid_type;
|
31
35
|
|
32
36
|
int (*strcomp)(const char *, const char *);
|
33
37
|
} diff_print_info;
|
34
38
|
|
35
39
|
static int diff_print_info_init__common(
|
36
40
|
diff_print_info *pi,
|
37
|
-
|
41
|
+
git_str *out,
|
38
42
|
git_repository *repo,
|
39
43
|
git_diff_format_t format,
|
40
44
|
git_diff_line_cb cb,
|
@@ -45,16 +49,15 @@ static int diff_print_info_init__common(
|
|
45
49
|
pi->payload = payload;
|
46
50
|
pi->buf = out;
|
47
51
|
|
52
|
+
GIT_ASSERT(pi->oid_type);
|
53
|
+
|
48
54
|
if (!pi->id_strlen) {
|
49
55
|
if (!repo)
|
50
56
|
pi->id_strlen = GIT_ABBREV_DEFAULT;
|
51
|
-
else if (
|
57
|
+
else if (git_repository__abbrev_length(&pi->id_strlen, repo) < 0)
|
52
58
|
return -1;
|
53
59
|
}
|
54
60
|
|
55
|
-
if (pi->id_strlen > GIT_OID_HEXSZ)
|
56
|
-
pi->id_strlen = GIT_OID_HEXSZ;
|
57
|
-
|
58
61
|
memset(&pi->line, 0, sizeof(pi->line));
|
59
62
|
pi->line.old_lineno = -1;
|
60
63
|
pi->line.new_lineno = -1;
|
@@ -65,7 +68,7 @@ static int diff_print_info_init__common(
|
|
65
68
|
|
66
69
|
static int diff_print_info_init_fromdiff(
|
67
70
|
diff_print_info *pi,
|
68
|
-
|
71
|
+
git_str *out,
|
69
72
|
git_diff *diff,
|
70
73
|
git_diff_format_t format,
|
71
74
|
git_diff_line_cb cb,
|
@@ -77,6 +80,7 @@ static int diff_print_info_init_fromdiff(
|
|
77
80
|
|
78
81
|
if (diff) {
|
79
82
|
pi->flags = diff->opts.flags;
|
83
|
+
pi->oid_type = diff->opts.oid_type;
|
80
84
|
pi->id_strlen = diff->opts.id_abbrev;
|
81
85
|
pi->old_prefix = diff->opts.old_prefix;
|
82
86
|
pi->new_prefix = diff->opts.new_prefix;
|
@@ -89,7 +93,7 @@ static int diff_print_info_init_fromdiff(
|
|
89
93
|
|
90
94
|
static int diff_print_info_init_frompatch(
|
91
95
|
diff_print_info *pi,
|
92
|
-
|
96
|
+
git_str *out,
|
93
97
|
git_patch *patch,
|
94
98
|
git_diff_format_t format,
|
95
99
|
git_diff_line_cb cb,
|
@@ -100,6 +104,7 @@ static int diff_print_info_init_frompatch(
|
|
100
104
|
memset(pi, 0, sizeof(diff_print_info));
|
101
105
|
|
102
106
|
pi->flags = patch->diff_opts.flags;
|
107
|
+
pi->oid_type = patch->diff_opts.oid_type;
|
103
108
|
pi->id_strlen = patch->diff_opts.id_abbrev;
|
104
109
|
pi->old_prefix = patch->diff_opts.old_prefix;
|
105
110
|
pi->new_prefix = patch->diff_opts.new_prefix;
|
@@ -142,7 +147,7 @@ static int diff_print_one_name_only(
|
|
142
147
|
const git_diff_delta *delta, float progress, void *data)
|
143
148
|
{
|
144
149
|
diff_print_info *pi = data;
|
145
|
-
|
150
|
+
git_str *out = pi->buf;
|
146
151
|
|
147
152
|
GIT_UNUSED(progress);
|
148
153
|
|
@@ -150,15 +155,15 @@ static int diff_print_one_name_only(
|
|
150
155
|
delta->status == GIT_DELTA_UNMODIFIED)
|
151
156
|
return 0;
|
152
157
|
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
if (
|
158
|
+
git_str_clear(out);
|
159
|
+
git_str_puts(out, delta->new_file.path);
|
160
|
+
git_str_putc(out, '\n');
|
161
|
+
if (git_str_oom(out))
|
157
162
|
return -1;
|
158
163
|
|
159
164
|
pi->line.origin = GIT_DIFF_LINE_FILE_HDR;
|
160
|
-
pi->line.content =
|
161
|
-
pi->line.content_len =
|
165
|
+
pi->line.content = git_str_cstr(out);
|
166
|
+
pi->line.content_len = git_str_len(out);
|
162
167
|
|
163
168
|
return pi->print_cb(delta, NULL, &pi->line, pi->payload);
|
164
169
|
}
|
@@ -167,7 +172,7 @@ static int diff_print_one_name_status(
|
|
167
172
|
const git_diff_delta *delta, float progress, void *data)
|
168
173
|
{
|
169
174
|
diff_print_info *pi = data;
|
170
|
-
|
175
|
+
git_str *out = pi->buf;
|
171
176
|
char old_suffix, new_suffix, code = git_diff_status_char(delta->status);
|
172
177
|
int(*strcomp)(const char *, const char *) = pi->strcomp ?
|
173
178
|
pi->strcomp : git__strcmp;
|
@@ -180,26 +185,26 @@ static int diff_print_one_name_status(
|
|
180
185
|
old_suffix = diff_pick_suffix(delta->old_file.mode);
|
181
186
|
new_suffix = diff_pick_suffix(delta->new_file.mode);
|
182
187
|
|
183
|
-
|
188
|
+
git_str_clear(out);
|
184
189
|
|
185
190
|
if (delta->old_file.path != delta->new_file.path &&
|
186
191
|
strcomp(delta->old_file.path,delta->new_file.path) != 0)
|
187
|
-
|
192
|
+
git_str_printf(out, "%c\t%s%c %s%c\n", code,
|
188
193
|
delta->old_file.path, old_suffix, delta->new_file.path, new_suffix);
|
189
194
|
else if (delta->old_file.mode != delta->new_file.mode &&
|
190
195
|
delta->old_file.mode != 0 && delta->new_file.mode != 0)
|
191
|
-
|
196
|
+
git_str_printf(out, "%c\t%s%c %s%c\n", code,
|
192
197
|
delta->old_file.path, old_suffix, delta->new_file.path, new_suffix);
|
193
198
|
else if (old_suffix != ' ')
|
194
|
-
|
199
|
+
git_str_printf(out, "%c\t%s%c\n", code, delta->old_file.path, old_suffix);
|
195
200
|
else
|
196
|
-
|
197
|
-
if (
|
201
|
+
git_str_printf(out, "%c\t%s\n", code, delta->old_file.path);
|
202
|
+
if (git_str_oom(out))
|
198
203
|
return -1;
|
199
204
|
|
200
205
|
pi->line.origin = GIT_DIFF_LINE_FILE_HDR;
|
201
|
-
pi->line.content =
|
202
|
-
pi->line.content_len =
|
206
|
+
pi->line.content = git_str_cstr(out);
|
207
|
+
pi->line.content_len = git_str_len(out);
|
203
208
|
|
204
209
|
return pi->print_cb(delta, NULL, &pi->line, pi->payload);
|
205
210
|
}
|
@@ -208,17 +213,20 @@ static int diff_print_one_raw(
|
|
208
213
|
const git_diff_delta *delta, float progress, void *data)
|
209
214
|
{
|
210
215
|
diff_print_info *pi = data;
|
211
|
-
|
216
|
+
git_str *out = pi->buf;
|
212
217
|
int id_abbrev;
|
213
218
|
char code = git_diff_status_char(delta->status);
|
214
|
-
char start_oid[
|
219
|
+
char start_oid[GIT_OID_MAX_HEXSIZE + 1],
|
220
|
+
end_oid[GIT_OID_MAX_HEXSIZE + 1];
|
221
|
+
size_t oid_hexsize;
|
222
|
+
bool id_is_abbrev;
|
215
223
|
|
216
224
|
GIT_UNUSED(progress);
|
217
225
|
|
218
226
|
if ((pi->flags & GIT_DIFF_SHOW_UNMODIFIED) == 0 && code == ' ')
|
219
227
|
return 0;
|
220
228
|
|
221
|
-
|
229
|
+
git_str_clear(out);
|
222
230
|
|
223
231
|
id_abbrev = delta->old_file.mode ? delta->old_file.id_abbrev :
|
224
232
|
delta->new_file.id_abbrev;
|
@@ -230,49 +238,59 @@ static int diff_print_one_raw(
|
|
230
238
|
return -1;
|
231
239
|
}
|
232
240
|
|
241
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
242
|
+
GIT_ASSERT(delta->old_file.id.type == delta->new_file.id.type);
|
243
|
+
oid_hexsize = git_oid_hexsize(delta->old_file.id.type);
|
244
|
+
#else
|
245
|
+
oid_hexsize = GIT_OID_SHA1_HEXSIZE;
|
246
|
+
#endif
|
247
|
+
|
248
|
+
id_is_abbrev = (pi->id_strlen > 0 &&
|
249
|
+
(size_t)pi->id_strlen <= oid_hexsize);
|
250
|
+
|
233
251
|
git_oid_tostr(start_oid, pi->id_strlen + 1, &delta->old_file.id);
|
234
252
|
git_oid_tostr(end_oid, pi->id_strlen + 1, &delta->new_file.id);
|
235
253
|
|
236
|
-
|
237
|
-
|
238
|
-
":%06o %06o %s... %s... %c" : ":%06o %06o %s %s %c",
|
254
|
+
git_str_printf(out,
|
255
|
+
id_is_abbrev ? ":%06o %06o %s... %s... %c" : ":%06o %06o %s %s %c",
|
239
256
|
delta->old_file.mode, delta->new_file.mode, start_oid, end_oid, code);
|
240
257
|
|
241
258
|
if (delta->similarity > 0)
|
242
|
-
|
259
|
+
git_str_printf(out, "%03u", delta->similarity);
|
243
260
|
|
244
261
|
if (delta->old_file.path != delta->new_file.path)
|
245
|
-
|
262
|
+
git_str_printf(
|
246
263
|
out, "\t%s %s\n", delta->old_file.path, delta->new_file.path);
|
247
264
|
else
|
248
|
-
|
265
|
+
git_str_printf(
|
249
266
|
out, "\t%s\n", delta->old_file.path ?
|
250
267
|
delta->old_file.path : delta->new_file.path);
|
251
268
|
|
252
|
-
if (
|
269
|
+
if (git_str_oom(out))
|
253
270
|
return -1;
|
254
271
|
|
255
272
|
pi->line.origin = GIT_DIFF_LINE_FILE_HDR;
|
256
|
-
pi->line.content =
|
257
|
-
pi->line.content_len =
|
273
|
+
pi->line.content = git_str_cstr(out);
|
274
|
+
pi->line.content_len = git_str_len(out);
|
258
275
|
|
259
276
|
return pi->print_cb(delta, NULL, &pi->line, pi->payload);
|
260
277
|
}
|
261
278
|
|
262
279
|
static int diff_print_modes(
|
263
|
-
|
280
|
+
git_str *out, const git_diff_delta *delta)
|
264
281
|
{
|
265
|
-
|
266
|
-
|
282
|
+
git_str_printf(out, "old mode %o\n", delta->old_file.mode);
|
283
|
+
git_str_printf(out, "new mode %o\n", delta->new_file.mode);
|
267
284
|
|
268
|
-
return
|
285
|
+
return git_str_oom(out) ? -1 : 0;
|
269
286
|
}
|
270
287
|
|
271
288
|
static int diff_print_oid_range(
|
272
|
-
|
289
|
+
git_str *out, const git_diff_delta *delta, int id_strlen,
|
273
290
|
bool print_index)
|
274
291
|
{
|
275
|
-
char start_oid[
|
292
|
+
char start_oid[GIT_OID_MAX_HEXSIZE + 1],
|
293
|
+
end_oid[GIT_OID_MAX_HEXSIZE + 1];
|
276
294
|
|
277
295
|
if (delta->old_file.mode &&
|
278
296
|
id_strlen > delta->old_file.id_abbrev) {
|
@@ -295,34 +313,39 @@ static int diff_print_oid_range(
|
|
295
313
|
|
296
314
|
if (delta->old_file.mode == delta->new_file.mode) {
|
297
315
|
if (print_index)
|
298
|
-
|
316
|
+
git_str_printf(out, "index %s..%s %o\n",
|
299
317
|
start_oid, end_oid, delta->old_file.mode);
|
300
318
|
} else {
|
301
319
|
if (delta->old_file.mode == 0)
|
302
|
-
|
320
|
+
git_str_printf(out, "new file mode %o\n", delta->new_file.mode);
|
303
321
|
else if (delta->new_file.mode == 0)
|
304
|
-
|
322
|
+
git_str_printf(out, "deleted file mode %o\n", delta->old_file.mode);
|
305
323
|
else
|
306
324
|
diff_print_modes(out, delta);
|
307
325
|
|
308
326
|
if (print_index)
|
309
|
-
|
327
|
+
git_str_printf(out, "index %s..%s\n", start_oid, end_oid);
|
310
328
|
}
|
311
329
|
|
312
|
-
return
|
330
|
+
return git_str_oom(out) ? -1 : 0;
|
313
331
|
}
|
314
332
|
|
315
333
|
static int diff_delta_format_path(
|
316
|
-
|
334
|
+
git_str *out, const char *prefix, const char *filename)
|
317
335
|
{
|
318
|
-
if (
|
336
|
+
if (!filename) {
|
337
|
+
/* don't prefix "/dev/null" */
|
338
|
+
return git_str_puts(out, "/dev/null");
|
339
|
+
}
|
340
|
+
|
341
|
+
if (git_str_joinpath(out, prefix, filename) < 0)
|
319
342
|
return -1;
|
320
343
|
|
321
|
-
return
|
344
|
+
return git_str_quote(out);
|
322
345
|
}
|
323
346
|
|
324
347
|
static int diff_delta_format_with_paths(
|
325
|
-
|
348
|
+
git_str *out,
|
326
349
|
const git_diff_delta *delta,
|
327
350
|
const char *template,
|
328
351
|
const char *oldpath,
|
@@ -334,14 +357,14 @@ static int diff_delta_format_with_paths(
|
|
334
357
|
if (git_oid_is_zero(&delta->new_file.id))
|
335
358
|
newpath = "/dev/null";
|
336
359
|
|
337
|
-
return
|
360
|
+
return git_str_printf(out, template, oldpath, newpath);
|
338
361
|
}
|
339
362
|
|
340
363
|
static int diff_delta_format_similarity_header(
|
341
|
-
|
364
|
+
git_str *out,
|
342
365
|
const git_diff_delta *delta)
|
343
366
|
{
|
344
|
-
|
367
|
+
git_str old_path = GIT_STR_INIT, new_path = GIT_STR_INIT;
|
345
368
|
const char *type;
|
346
369
|
int error = 0;
|
347
370
|
|
@@ -357,13 +380,13 @@ static int diff_delta_format_similarity_header(
|
|
357
380
|
else
|
358
381
|
type = "copy";
|
359
382
|
|
360
|
-
if ((error =
|
361
|
-
(error =
|
362
|
-
(error =
|
363
|
-
(error =
|
383
|
+
if ((error = git_str_puts(&old_path, delta->old_file.path)) < 0 ||
|
384
|
+
(error = git_str_puts(&new_path, delta->new_file.path)) < 0 ||
|
385
|
+
(error = git_str_quote(&old_path)) < 0 ||
|
386
|
+
(error = git_str_quote(&new_path)) < 0)
|
364
387
|
goto done;
|
365
388
|
|
366
|
-
|
389
|
+
git_str_printf(out,
|
367
390
|
"similarity index %d%%\n"
|
368
391
|
"%s from %s\n"
|
369
392
|
"%s to %s\n",
|
@@ -371,12 +394,12 @@ static int diff_delta_format_similarity_header(
|
|
371
394
|
type, old_path.ptr,
|
372
395
|
type, new_path.ptr);
|
373
396
|
|
374
|
-
if (
|
397
|
+
if (git_str_oom(out))
|
375
398
|
error = -1;
|
376
399
|
|
377
400
|
done:
|
378
|
-
|
379
|
-
|
401
|
+
git_str_dispose(&old_path);
|
402
|
+
git_str_dispose(&new_path);
|
380
403
|
|
381
404
|
return error;
|
382
405
|
}
|
@@ -398,14 +421,14 @@ static bool delta_is_unchanged(const git_diff_delta *delta)
|
|
398
421
|
}
|
399
422
|
|
400
423
|
int git_diff_delta__format_file_header(
|
401
|
-
|
424
|
+
git_str *out,
|
402
425
|
const git_diff_delta *delta,
|
403
426
|
const char *oldpfx,
|
404
427
|
const char *newpfx,
|
405
428
|
int id_strlen,
|
406
429
|
bool print_index)
|
407
430
|
{
|
408
|
-
|
431
|
+
git_str old_path = GIT_STR_INIT, new_path = GIT_STR_INIT;
|
409
432
|
bool unchanged = delta_is_unchanged(delta);
|
410
433
|
int error = 0;
|
411
434
|
|
@@ -422,9 +445,9 @@ int git_diff_delta__format_file_header(
|
|
422
445
|
&new_path, newpfx, delta->new_file.path)) < 0)
|
423
446
|
goto done;
|
424
447
|
|
425
|
-
|
448
|
+
git_str_clear(out);
|
426
449
|
|
427
|
-
|
450
|
+
git_str_printf(out, "diff --git %s %s\n",
|
428
451
|
old_path.ptr, new_path.ptr);
|
429
452
|
|
430
453
|
if (unchanged && delta->old_file.mode != delta->new_file.mode)
|
@@ -446,12 +469,12 @@ int git_diff_delta__format_file_header(
|
|
446
469
|
"--- %s\n+++ %s\n", old_path.ptr, new_path.ptr);
|
447
470
|
}
|
448
471
|
|
449
|
-
if (
|
472
|
+
if (git_str_oom(out))
|
450
473
|
error = -1;
|
451
474
|
|
452
475
|
done:
|
453
|
-
|
454
|
-
|
476
|
+
git_str_dispose(&old_path);
|
477
|
+
git_str_dispose(&new_path);
|
455
478
|
|
456
479
|
return error;
|
457
480
|
}
|
@@ -467,7 +490,7 @@ static int format_binary(
|
|
467
490
|
"delta" : "literal";
|
468
491
|
const char *scan, *end;
|
469
492
|
|
470
|
-
|
493
|
+
git_str_printf(pi->buf, "%s %" PRIuZ "\n", typename, inflatedlen);
|
471
494
|
pi->line.num_lines++;
|
472
495
|
|
473
496
|
for (scan = data, end = data + datalen; scan < end; ) {
|
@@ -476,22 +499,22 @@ static int format_binary(
|
|
476
499
|
chunk_len = 52;
|
477
500
|
|
478
501
|
if (chunk_len <= 26)
|
479
|
-
|
502
|
+
git_str_putc(pi->buf, (char)chunk_len + 'A' - 1);
|
480
503
|
else
|
481
|
-
|
504
|
+
git_str_putc(pi->buf, (char)chunk_len - 26 + 'a' - 1);
|
482
505
|
|
483
|
-
|
484
|
-
|
506
|
+
git_str_encode_base85(pi->buf, scan, chunk_len);
|
507
|
+
git_str_putc(pi->buf, '\n');
|
485
508
|
|
486
|
-
if (
|
509
|
+
if (git_str_oom(pi->buf))
|
487
510
|
return -1;
|
488
511
|
|
489
512
|
scan += chunk_len;
|
490
513
|
pi->line.num_lines++;
|
491
514
|
}
|
492
|
-
|
515
|
+
git_str_putc(pi->buf, '\n');
|
493
516
|
|
494
|
-
if (
|
517
|
+
if (git_str_oom(pi->buf))
|
495
518
|
return -1;
|
496
519
|
|
497
520
|
return 0;
|
@@ -501,7 +524,7 @@ static int diff_print_patch_file_binary_noshow(
|
|
501
524
|
diff_print_info *pi, git_diff_delta *delta,
|
502
525
|
const char *old_pfx, const char *new_pfx)
|
503
526
|
{
|
504
|
-
|
527
|
+
git_str old_path = GIT_STR_INIT, new_path = GIT_STR_INIT;
|
505
528
|
int error;
|
506
529
|
|
507
530
|
if ((error = diff_delta_format_path(&old_path, old_pfx, delta->old_file.path)) < 0 ||
|
@@ -513,8 +536,8 @@ static int diff_print_patch_file_binary_noshow(
|
|
513
536
|
pi->line.num_lines = 1;
|
514
537
|
|
515
538
|
done:
|
516
|
-
|
517
|
-
|
539
|
+
git_str_dispose(&old_path);
|
540
|
+
git_str_dispose(&new_path);
|
518
541
|
return error;
|
519
542
|
}
|
520
543
|
|
@@ -534,7 +557,7 @@ static int diff_print_patch_file_binary(
|
|
534
557
|
pi, delta, old_pfx, new_pfx);
|
535
558
|
|
536
559
|
pre_binary_size = pi->buf->size;
|
537
|
-
|
560
|
+
git_str_printf(pi->buf, "GIT binary patch\n");
|
538
561
|
pi->line.num_lines++;
|
539
562
|
|
540
563
|
if ((error = format_binary(pi, binary->new_file.type, binary->new_file.data,
|
@@ -543,7 +566,7 @@ static int diff_print_patch_file_binary(
|
|
543
566
|
binary->old_file.datalen, binary->old_file.inflatedlen)) < 0) {
|
544
567
|
if (error == GIT_EBUFS) {
|
545
568
|
git_error_clear();
|
546
|
-
|
569
|
+
git_str_truncate(pi->buf, pre_binary_size);
|
547
570
|
|
548
571
|
return diff_print_patch_file_binary_noshow(
|
549
572
|
pi, delta, old_pfx, new_pfx);
|
@@ -554,6 +577,30 @@ static int diff_print_patch_file_binary(
|
|
554
577
|
return error;
|
555
578
|
}
|
556
579
|
|
580
|
+
GIT_INLINE(int) should_force_header(const git_diff_delta *delta)
|
581
|
+
{
|
582
|
+
if (delta->old_file.mode != delta->new_file.mode)
|
583
|
+
return 1;
|
584
|
+
|
585
|
+
if (delta->status == GIT_DELTA_RENAMED || delta->status == GIT_DELTA_COPIED)
|
586
|
+
return 1;
|
587
|
+
|
588
|
+
return 0;
|
589
|
+
}
|
590
|
+
|
591
|
+
GIT_INLINE(int) flush_file_header(const git_diff_delta *delta, diff_print_info *pi)
|
592
|
+
{
|
593
|
+
if (pi->sent_file_header)
|
594
|
+
return 0;
|
595
|
+
|
596
|
+
pi->line.origin = GIT_DIFF_LINE_FILE_HDR;
|
597
|
+
pi->line.content = git_str_cstr(pi->buf);
|
598
|
+
pi->line.content_len = git_str_len(pi->buf);
|
599
|
+
pi->sent_file_header = 1;
|
600
|
+
|
601
|
+
return pi->print_cb(delta, NULL, &pi->line, pi->payload);
|
602
|
+
}
|
603
|
+
|
557
604
|
static int diff_print_patch_file(
|
558
605
|
const git_diff_delta *delta, float progress, void *data)
|
559
606
|
{
|
@@ -584,15 +631,22 @@ static int diff_print_patch_file(
|
|
584
631
|
(pi->flags & GIT_DIFF_SHOW_UNTRACKED_CONTENT) == 0))
|
585
632
|
return 0;
|
586
633
|
|
634
|
+
pi->sent_file_header = 0;
|
635
|
+
|
587
636
|
if ((error = git_diff_delta__format_file_header(pi->buf, delta, oldpfx, newpfx,
|
588
637
|
id_strlen, print_index)) < 0)
|
589
638
|
return error;
|
590
639
|
|
591
|
-
|
592
|
-
|
593
|
-
|
640
|
+
/*
|
641
|
+
* pi->buf now contains the file header data. Go ahead and send it
|
642
|
+
* if there's useful data in there, like similarity. Otherwise, we
|
643
|
+
* should queue it to send when we see the first hunk. This prevents
|
644
|
+
* us from sending a header when all hunks were ignored.
|
645
|
+
*/
|
646
|
+
if (should_force_header(delta) && (error = flush_file_header(delta, pi)) < 0)
|
647
|
+
return error;
|
594
648
|
|
595
|
-
return
|
649
|
+
return 0;
|
596
650
|
}
|
597
651
|
|
598
652
|
static int diff_print_patch_binary(
|
@@ -607,15 +661,25 @@ static int diff_print_patch_binary(
|
|
607
661
|
pi->new_prefix ? pi->new_prefix : DIFF_NEW_PREFIX_DEFAULT;
|
608
662
|
int error;
|
609
663
|
|
610
|
-
|
664
|
+
if ((error = flush_file_header(delta, pi)) < 0)
|
665
|
+
return error;
|
666
|
+
|
667
|
+
/*
|
668
|
+
* If the caller only wants the header, we just needed to make sure to
|
669
|
+
* call flush_file_header
|
670
|
+
*/
|
671
|
+
if (pi->format == GIT_DIFF_FORMAT_PATCH_HEADER)
|
672
|
+
return 0;
|
673
|
+
|
674
|
+
git_str_clear(pi->buf);
|
611
675
|
|
612
676
|
if ((error = diff_print_patch_file_binary(
|
613
677
|
pi, (git_diff_delta *)delta, old_pfx, new_pfx, binary)) < 0)
|
614
678
|
return error;
|
615
679
|
|
616
680
|
pi->line.origin = GIT_DIFF_LINE_BINARY;
|
617
|
-
pi->line.content =
|
618
|
-
pi->line.content_len =
|
681
|
+
pi->line.content = git_str_cstr(pi->buf);
|
682
|
+
pi->line.content_len = git_str_len(pi->buf);
|
619
683
|
|
620
684
|
return pi->print_cb(delta, NULL, &pi->line, pi->payload);
|
621
685
|
}
|
@@ -626,10 +690,21 @@ static int diff_print_patch_hunk(
|
|
626
690
|
void *data)
|
627
691
|
{
|
628
692
|
diff_print_info *pi = data;
|
693
|
+
int error;
|
629
694
|
|
630
695
|
if (S_ISDIR(d->new_file.mode))
|
631
696
|
return 0;
|
632
697
|
|
698
|
+
if ((error = flush_file_header(d, pi)) < 0)
|
699
|
+
return error;
|
700
|
+
|
701
|
+
/*
|
702
|
+
* If the caller only wants the header, we just needed to make sure to
|
703
|
+
* call flush_file_header
|
704
|
+
*/
|
705
|
+
if (pi->format == GIT_DIFF_FORMAT_PATCH_HEADER)
|
706
|
+
return 0;
|
707
|
+
|
633
708
|
pi->line.origin = GIT_DIFF_LINE_HUNK_HDR;
|
634
709
|
pi->line.content = h->header;
|
635
710
|
pi->line.content_len = h->header_len;
|
@@ -644,10 +719,14 @@ static int diff_print_patch_line(
|
|
644
719
|
void *data)
|
645
720
|
{
|
646
721
|
diff_print_info *pi = data;
|
722
|
+
int error;
|
647
723
|
|
648
724
|
if (S_ISDIR(delta->new_file.mode))
|
649
725
|
return 0;
|
650
726
|
|
727
|
+
if ((error = flush_file_header(delta, pi)) < 0)
|
728
|
+
return error;
|
729
|
+
|
651
730
|
return pi->print_cb(delta, hunk, line, pi->payload);
|
652
731
|
}
|
653
732
|
|
@@ -659,7 +738,7 @@ int git_diff_print(
|
|
659
738
|
void *payload)
|
660
739
|
{
|
661
740
|
int error;
|
662
|
-
|
741
|
+
git_str buf = GIT_STR_INIT;
|
663
742
|
diff_print_info pi;
|
664
743
|
git_diff_file_cb print_file = NULL;
|
665
744
|
git_diff_binary_cb print_binary = NULL;
|
@@ -680,6 +759,8 @@ int git_diff_print(
|
|
680
759
|
break;
|
681
760
|
case GIT_DIFF_FORMAT_PATCH_HEADER:
|
682
761
|
print_file = diff_print_patch_file;
|
762
|
+
print_binary = diff_print_patch_binary;
|
763
|
+
print_hunk = diff_print_patch_hunk;
|
683
764
|
break;
|
684
765
|
case GIT_DIFF_FORMAT_RAW:
|
685
766
|
print_file = diff_print_one_raw;
|
@@ -704,7 +785,7 @@ int git_diff_print(
|
|
704
785
|
}
|
705
786
|
|
706
787
|
out:
|
707
|
-
|
788
|
+
git_str_dispose(&buf);
|
708
789
|
return error;
|
709
790
|
}
|
710
791
|
|
@@ -714,7 +795,7 @@ int git_diff_print_callback__to_buf(
|
|
714
795
|
const git_diff_line *line,
|
715
796
|
void *payload)
|
716
797
|
{
|
717
|
-
|
798
|
+
git_str *output = payload;
|
718
799
|
GIT_UNUSED(delta); GIT_UNUSED(hunk);
|
719
800
|
|
720
801
|
if (!output) {
|
@@ -725,9 +806,9 @@ int git_diff_print_callback__to_buf(
|
|
725
806
|
if (line->origin == GIT_DIFF_LINE_ADDITION ||
|
726
807
|
line->origin == GIT_DIFF_LINE_DELETION ||
|
727
808
|
line->origin == GIT_DIFF_LINE_CONTEXT)
|
728
|
-
|
809
|
+
git_str_putc(output, line->origin);
|
729
810
|
|
730
|
-
return
|
811
|
+
return git_str_put(output, line->content, line->content_len);
|
731
812
|
}
|
732
813
|
|
733
814
|
int git_diff_print_callback__to_file_handle(
|
@@ -761,18 +842,24 @@ int git_diff_print_callback__to_file_handle(
|
|
761
842
|
return 0;
|
762
843
|
}
|
763
844
|
|
764
|
-
/* print a git_diff to a
|
845
|
+
/* print a git_diff to a git_str */
|
765
846
|
int git_diff_to_buf(git_buf *out, git_diff *diff, git_diff_format_t format)
|
766
847
|
{
|
848
|
+
git_str str = GIT_STR_INIT;
|
767
849
|
int error;
|
768
850
|
|
769
851
|
GIT_ASSERT_ARG(out);
|
770
852
|
GIT_ASSERT_ARG(diff);
|
771
853
|
|
772
|
-
if ((error =
|
773
|
-
|
854
|
+
if ((error = git_buf_tostr(&str, out)) < 0 ||
|
855
|
+
(error = git_diff_print(diff, format, git_diff_print_callback__to_buf, &str)) < 0)
|
856
|
+
goto done;
|
857
|
+
|
858
|
+
error = git_buf_fromstr(out, &str);
|
774
859
|
|
775
|
-
|
860
|
+
done:
|
861
|
+
git_str_dispose(&str);
|
862
|
+
return error;
|
776
863
|
}
|
777
864
|
|
778
865
|
/* print a git_patch to an output callback */
|
@@ -781,7 +868,7 @@ int git_patch_print(
|
|
781
868
|
git_diff_line_cb print_cb,
|
782
869
|
void *payload)
|
783
870
|
{
|
784
|
-
|
871
|
+
git_str temp = GIT_STR_INIT;
|
785
872
|
diff_print_info pi;
|
786
873
|
int error;
|
787
874
|
|
@@ -799,20 +886,20 @@ int git_patch_print(
|
|
799
886
|
}
|
800
887
|
|
801
888
|
out:
|
802
|
-
|
889
|
+
git_str_dispose(&temp);
|
803
890
|
return error;
|
804
891
|
}
|
805
892
|
|
806
|
-
/* print a git_patch to a
|
893
|
+
/* print a git_patch to a git_str */
|
807
894
|
int git_patch_to_buf(git_buf *out, git_patch *patch)
|
808
895
|
{
|
809
|
-
|
896
|
+
GIT_BUF_WRAP_PRIVATE(out, git_patch__to_buf, patch);
|
897
|
+
}
|
810
898
|
|
899
|
+
int git_patch__to_buf(git_str *out, git_patch *patch)
|
900
|
+
{
|
811
901
|
GIT_ASSERT_ARG(out);
|
812
902
|
GIT_ASSERT_ARG(patch);
|
813
903
|
|
814
|
-
if ((error = git_buf_sanitize(out)) < 0)
|
815
|
-
return error;
|
816
|
-
|
817
904
|
return git_patch_print(patch, git_diff_print_callback__to_buf, out);
|
818
905
|
}
|