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
@@ -11,17 +11,17 @@
|
|
11
11
|
|
12
12
|
#include "common.h"
|
13
13
|
#include "diff.h"
|
14
|
-
#include "strmap.h"
|
15
14
|
#include "map.h"
|
16
15
|
#include "config.h"
|
17
16
|
#include "regexp.h"
|
18
17
|
#include "repository.h"
|
18
|
+
#include "userdiff.h"
|
19
19
|
|
20
20
|
typedef enum {
|
21
21
|
DIFF_DRIVER_AUTO = 0,
|
22
22
|
DIFF_DRIVER_BINARY = 1,
|
23
23
|
DIFF_DRIVER_TEXT = 2,
|
24
|
-
DIFF_DRIVER_PATTERNLIST = 3
|
24
|
+
DIFF_DRIVER_PATTERNLIST = 3
|
25
25
|
} git_diff_driver_t;
|
26
26
|
|
27
27
|
typedef struct {
|
@@ -43,44 +43,35 @@ struct git_diff_driver {
|
|
43
43
|
char name[GIT_FLEX_ARRAY];
|
44
44
|
};
|
45
45
|
|
46
|
-
|
46
|
+
GIT_HASHMAP_STR_SETUP(git_diff_driver_map, git_diff_driver *);
|
47
47
|
|
48
48
|
struct git_diff_driver_registry {
|
49
|
-
|
49
|
+
git_diff_driver_map map;
|
50
50
|
};
|
51
51
|
|
52
52
|
#define FORCE_DIFFABLE (GIT_DIFF_FORCE_TEXT | GIT_DIFF_FORCE_BINARY)
|
53
53
|
|
54
|
-
static git_diff_driver
|
55
|
-
|
56
|
-
|
57
|
-
{ DIFF_DRIVER_TEXT, GIT_DIFF_FORCE_TEXT, 0 },
|
58
|
-
};
|
54
|
+
static git_diff_driver diff_driver_auto = { DIFF_DRIVER_AUTO, 0, 0 };
|
55
|
+
static git_diff_driver diff_driver_binary = { DIFF_DRIVER_BINARY, GIT_DIFF_FORCE_BINARY, 0 };
|
56
|
+
static git_diff_driver diff_driver_text = { DIFF_DRIVER_TEXT, GIT_DIFF_FORCE_TEXT, 0 };
|
59
57
|
|
60
58
|
git_diff_driver_registry *git_diff_driver_registry_new(void)
|
61
59
|
{
|
62
|
-
|
63
|
-
git__calloc(1, sizeof(git_diff_driver_registry));
|
64
|
-
if (!reg)
|
65
|
-
return NULL;
|
66
|
-
|
67
|
-
if (git_strmap_new(®->drivers) < 0) {
|
68
|
-
git_diff_driver_registry_free(reg);
|
69
|
-
return NULL;
|
70
|
-
}
|
71
|
-
|
72
|
-
return reg;
|
60
|
+
return git__calloc(1, sizeof(git_diff_driver_registry));
|
73
61
|
}
|
74
62
|
|
75
63
|
void git_diff_driver_registry_free(git_diff_driver_registry *reg)
|
76
64
|
{
|
77
65
|
git_diff_driver *drv;
|
66
|
+
git_hashmap_iter_t iter = 0;
|
78
67
|
|
79
68
|
if (!reg)
|
80
69
|
return;
|
81
70
|
|
82
|
-
|
83
|
-
|
71
|
+
while (git_diff_driver_map_iterate(&iter, NULL, &drv, ®->map) == 0)
|
72
|
+
git_diff_driver_free(drv);
|
73
|
+
|
74
|
+
git_diff_driver_map_dispose(®->map);
|
84
75
|
git__free(reg);
|
85
76
|
}
|
86
77
|
|
@@ -90,7 +81,7 @@ static int diff_driver_add_patterns(
|
|
90
81
|
int error = 0;
|
91
82
|
const char *scan, *end;
|
92
83
|
git_diff_driver_pattern *pat = NULL;
|
93
|
-
|
84
|
+
git_str buf = GIT_STR_INIT;
|
94
85
|
|
95
86
|
for (scan = regex_str; scan; scan = end) {
|
96
87
|
/* get pattern to fill in */
|
@@ -105,10 +96,10 @@ static int diff_driver_add_patterns(
|
|
105
96
|
}
|
106
97
|
|
107
98
|
if ((end = strchr(scan, '\n')) != NULL) {
|
108
|
-
error =
|
99
|
+
error = git_str_set(&buf, scan, end - scan);
|
109
100
|
end++;
|
110
101
|
} else {
|
111
|
-
error =
|
102
|
+
error = git_str_sets(&buf, scan);
|
112
103
|
}
|
113
104
|
if (error < 0)
|
114
105
|
break;
|
@@ -122,7 +113,7 @@ static int diff_driver_add_patterns(
|
|
122
113
|
|
123
114
|
if (error && pat != NULL)
|
124
115
|
(void)git_array_pop(drv->fn_patterns); /* release last item */
|
125
|
-
|
116
|
+
git_str_dispose(&buf);
|
126
117
|
|
127
118
|
/* We want to ignore bad patterns, so return success regardless */
|
128
119
|
return 0;
|
@@ -217,7 +208,7 @@ static int git_diff_driver_builtin(
|
|
217
208
|
(error = git_regexp_compile(&drv->word_pattern, ddef->words, ddef->flags)) < 0)
|
218
209
|
goto done;
|
219
210
|
|
220
|
-
if ((error =
|
211
|
+
if ((error = git_diff_driver_map_put(®->map, drv->name, drv)) < 0)
|
221
212
|
goto done;
|
222
213
|
|
223
214
|
done:
|
@@ -237,14 +228,14 @@ static int git_diff_driver_load(
|
|
237
228
|
git_diff_driver *drv;
|
238
229
|
size_t namelen;
|
239
230
|
git_config *cfg = NULL;
|
240
|
-
|
231
|
+
git_str name = GIT_STR_INIT;
|
241
232
|
git_config_entry *ce = NULL;
|
242
233
|
bool found_driver = false;
|
243
234
|
|
244
235
|
if ((reg = git_repository_driver_registry(repo)) == NULL)
|
245
236
|
return -1;
|
246
237
|
|
247
|
-
if ((drv
|
238
|
+
if (git_diff_driver_map_get(&drv, ®->map, driver_name) == 0) {
|
248
239
|
*out = drv;
|
249
240
|
return 0;
|
250
241
|
}
|
@@ -260,13 +251,13 @@ static int git_diff_driver_load(
|
|
260
251
|
goto done;
|
261
252
|
}
|
262
253
|
|
263
|
-
if ((error =
|
254
|
+
if ((error = git_str_printf(&name, "diff.%s.binary", driver_name)) < 0)
|
264
255
|
goto done;
|
265
256
|
|
266
257
|
switch (git_config__get_bool_force(cfg, name.ptr, -1)) {
|
267
258
|
case true:
|
268
259
|
/* if diff.<driver>.binary is true, just return the binary driver */
|
269
|
-
*out = &
|
260
|
+
*out = &diff_driver_binary;
|
270
261
|
goto done;
|
271
262
|
case false:
|
272
263
|
/* if diff.<driver>.binary is false, force binary checks off */
|
@@ -281,8 +272,8 @@ static int git_diff_driver_load(
|
|
281
272
|
|
282
273
|
/* TODO: warn if diff.<name>.command or diff.<name>.textconv are set */
|
283
274
|
|
284
|
-
|
285
|
-
if ((error =
|
275
|
+
git_str_truncate(&name, namelen + strlen("diff.."));
|
276
|
+
if ((error = git_str_PUTS(&name, "xfuncname")) < 0)
|
286
277
|
goto done;
|
287
278
|
|
288
279
|
if ((error = git_config_get_multivar_foreach(
|
@@ -292,8 +283,8 @@ static int git_diff_driver_load(
|
|
292
283
|
git_error_clear(); /* no diff.<driver>.xfuncname, so just continue */
|
293
284
|
}
|
294
285
|
|
295
|
-
|
296
|
-
if ((error =
|
286
|
+
git_str_truncate(&name, namelen + strlen("diff.."));
|
287
|
+
if ((error = git_str_PUTS(&name, "funcname")) < 0)
|
297
288
|
goto done;
|
298
289
|
|
299
290
|
if ((error = git_config_get_multivar_foreach(
|
@@ -309,8 +300,8 @@ static int git_diff_driver_load(
|
|
309
300
|
found_driver = true;
|
310
301
|
}
|
311
302
|
|
312
|
-
|
313
|
-
if ((error =
|
303
|
+
git_str_truncate(&name, namelen + strlen("diff.."));
|
304
|
+
if ((error = git_str_PUTS(&name, "wordregex")) < 0)
|
314
305
|
goto done;
|
315
306
|
|
316
307
|
if ((error = git_config__lookup_entry(&ce, cfg, name.ptr, false)) < 0)
|
@@ -333,14 +324,14 @@ static int git_diff_driver_load(
|
|
333
324
|
goto done;
|
334
325
|
|
335
326
|
/* store driver in registry */
|
336
|
-
if ((error =
|
327
|
+
if ((error = git_diff_driver_map_put(®->map, drv->name, drv)) < 0)
|
337
328
|
goto done;
|
338
329
|
|
339
330
|
*out = drv;
|
340
331
|
|
341
332
|
done:
|
342
333
|
git_config_entry_free(ce);
|
343
|
-
|
334
|
+
git_str_dispose(&name);
|
344
335
|
git_config_free(cfg);
|
345
336
|
|
346
337
|
if (!*out) {
|
@@ -374,9 +365,9 @@ int git_diff_driver_lookup(
|
|
374
365
|
else if (GIT_ATTR_IS_UNSPECIFIED(values[0]))
|
375
366
|
/* just use the auto value */;
|
376
367
|
else if (GIT_ATTR_IS_FALSE(values[0]))
|
377
|
-
*out = &
|
368
|
+
*out = &diff_driver_binary;
|
378
369
|
else if (GIT_ATTR_IS_TRUE(values[0]))
|
379
|
-
*out = &
|
370
|
+
*out = &diff_driver_text;
|
380
371
|
|
381
372
|
/* otherwise look for driver information in config and build driver */
|
382
373
|
else if ((error = git_diff_driver_load(out, repo, values[0])) < 0) {
|
@@ -387,7 +378,7 @@ int git_diff_driver_lookup(
|
|
387
378
|
}
|
388
379
|
|
389
380
|
if (!*out)
|
390
|
-
*out = &
|
381
|
+
*out = &diff_driver_auto;
|
391
382
|
|
392
383
|
return error;
|
393
384
|
}
|
@@ -420,11 +411,11 @@ void git_diff_driver_update_options(
|
|
420
411
|
int git_diff_driver_content_is_binary(
|
421
412
|
git_diff_driver *driver, const char *content, size_t content_len)
|
422
413
|
{
|
423
|
-
|
414
|
+
git_str search = GIT_STR_INIT;
|
424
415
|
|
425
416
|
GIT_UNUSED(driver);
|
426
417
|
|
427
|
-
|
418
|
+
git_str_attach_notowned(&search, content,
|
428
419
|
min(content_len, GIT_FILTER_BYTES_TO_CHECK_NUL));
|
429
420
|
|
430
421
|
/* TODO: provide encoding / binary detection callbacks that can
|
@@ -432,15 +423,15 @@ int git_diff_driver_content_is_binary(
|
|
432
423
|
* let's just use the simple NUL-byte detection that core git uses.
|
433
424
|
*/
|
434
425
|
|
435
|
-
/* previously was: if (
|
436
|
-
if (
|
426
|
+
/* previously was: if (git_str_is_binary(&search)) */
|
427
|
+
if (git_str_contains_nul(&search))
|
437
428
|
return 1;
|
438
429
|
|
439
430
|
return 0;
|
440
431
|
}
|
441
432
|
|
442
433
|
static int diff_context_line__simple(
|
443
|
-
git_diff_driver *driver,
|
434
|
+
git_diff_driver *driver, git_str *line)
|
444
435
|
{
|
445
436
|
char firstch = line->ptr[0];
|
446
437
|
GIT_UNUSED(driver);
|
@@ -448,7 +439,7 @@ static int diff_context_line__simple(
|
|
448
439
|
}
|
449
440
|
|
450
441
|
static int diff_context_line__pattern_match(
|
451
|
-
git_diff_driver *driver,
|
442
|
+
git_diff_driver *driver, git_str *line)
|
452
443
|
{
|
453
444
|
size_t i, maxi = git_array_size(driver->fn_patterns);
|
454
445
|
git_regmatch pmatch[2];
|
@@ -462,9 +453,9 @@ static int diff_context_line__pattern_match(
|
|
462
453
|
|
463
454
|
/* use pmatch data to trim line data */
|
464
455
|
i = (pmatch[1].start >= 0) ? 1 : 0;
|
465
|
-
|
466
|
-
|
467
|
-
|
456
|
+
git_str_consume(line, git_str_cstr(line) + pmatch[i].start);
|
457
|
+
git_str_truncate(line, pmatch[i].end - pmatch[i].start);
|
458
|
+
git_str_rtrim(line);
|
468
459
|
|
469
460
|
return true;
|
470
461
|
}
|
@@ -482,9 +473,9 @@ static long diff_context_find(
|
|
482
473
|
{
|
483
474
|
git_diff_find_context_payload *ctxt = payload;
|
484
475
|
|
485
|
-
if (
|
476
|
+
if (git_str_set(&ctxt->line, line, (size_t)line_len) < 0)
|
486
477
|
return -1;
|
487
|
-
|
478
|
+
git_str_rtrim(&ctxt->line);
|
488
479
|
|
489
480
|
if (!ctxt->line.size)
|
490
481
|
return -1;
|
@@ -511,14 +502,14 @@ void git_diff_find_context_init(
|
|
511
502
|
payload_out->driver = driver;
|
512
503
|
payload_out->match_line = (driver->type == DIFF_DRIVER_PATTERNLIST) ?
|
513
504
|
diff_context_line__pattern_match : diff_context_line__simple;
|
514
|
-
|
505
|
+
git_str_init(&payload_out->line, 0);
|
515
506
|
}
|
516
507
|
}
|
517
508
|
|
518
509
|
void git_diff_find_context_clear(git_diff_find_context_payload *payload)
|
519
510
|
{
|
520
511
|
if (payload) {
|
521
|
-
|
512
|
+
git_str_dispose(&payload->line);
|
522
513
|
payload->driver = NULL;
|
523
514
|
}
|
524
515
|
}
|
@@ -10,15 +10,15 @@
|
|
10
10
|
#include "common.h"
|
11
11
|
|
12
12
|
#include "attr_file.h"
|
13
|
-
#include "
|
13
|
+
#include "str.h"
|
14
|
+
#include "hashmap.h"
|
14
15
|
|
16
|
+
typedef struct git_diff_driver git_diff_driver;
|
15
17
|
typedef struct git_diff_driver_registry git_diff_driver_registry;
|
16
18
|
|
17
19
|
git_diff_driver_registry *git_diff_driver_registry_new(void);
|
18
20
|
void git_diff_driver_registry_free(git_diff_driver_registry *);
|
19
21
|
|
20
|
-
typedef struct git_diff_driver git_diff_driver;
|
21
|
-
|
22
22
|
int git_diff_driver_lookup(git_diff_driver **, git_repository *,
|
23
23
|
git_attr_session *attrsession, const char *);
|
24
24
|
void git_diff_driver_free(git_diff_driver *);
|
@@ -34,12 +34,12 @@ typedef long (*git_diff_find_context_fn)(
|
|
34
34
|
const char *, long, char *, long, void *);
|
35
35
|
|
36
36
|
typedef int (*git_diff_find_context_line)(
|
37
|
-
git_diff_driver *,
|
37
|
+
git_diff_driver *, git_str *);
|
38
38
|
|
39
39
|
typedef struct {
|
40
40
|
git_diff_driver *driver;
|
41
41
|
git_diff_find_context_line match_line;
|
42
|
-
|
42
|
+
git_str line;
|
43
43
|
} git_diff_find_context_payload;
|
44
44
|
|
45
45
|
void git_diff_find_context_init(
|
@@ -112,7 +112,7 @@ int git_diff_file_content__init_from_diff(
|
|
112
112
|
case GIT_DELTA_DELETED:
|
113
113
|
has_data = use_old; break;
|
114
114
|
case GIT_DELTA_UNTRACKED:
|
115
|
-
has_data =
|
115
|
+
has_data = (use_old == (diff->opts.flags & GIT_DIFF_REVERSE)) &&
|
116
116
|
(diff->opts.flags & GIT_DIFF_SHOW_UNTRACKED_CONTENT) != 0;
|
117
117
|
break;
|
118
118
|
case GIT_DELTA_UNREADABLE:
|
@@ -144,6 +144,7 @@ int git_diff_file_content__init_from_src(
|
|
144
144
|
|
145
145
|
if (!src->blob && !src->buf) {
|
146
146
|
fc->flags |= GIT_DIFF_FLAG__NO_DATA;
|
147
|
+
git_oid_clear(&fc->file->id, opts->oid_type);
|
147
148
|
} else {
|
148
149
|
fc->flags |= GIT_DIFF_FLAG__LOADED;
|
149
150
|
fc->file->flags |= GIT_DIFF_FLAG_VALID_ID;
|
@@ -153,7 +154,7 @@ int git_diff_file_content__init_from_src(
|
|
153
154
|
git_blob_dup((git_blob **)&fc->blob, (git_blob *) src->blob);
|
154
155
|
fc->file->size = git_blob_rawsize(src->blob);
|
155
156
|
git_oid_cpy(&fc->file->id, git_blob_id(src->blob));
|
156
|
-
fc->file->id_abbrev =
|
157
|
+
fc->file->id_abbrev = (uint16_t)git_oid_hexsize(repo->oid_type);
|
157
158
|
|
158
159
|
fc->map.len = (size_t)fc->file->size;
|
159
160
|
fc->map.data = (char *)git_blob_rawcontent(src->blob);
|
@@ -161,10 +162,10 @@ int git_diff_file_content__init_from_src(
|
|
161
162
|
fc->flags |= GIT_DIFF_FLAG__FREE_BLOB;
|
162
163
|
} else {
|
163
164
|
int error;
|
164
|
-
if ((error =
|
165
|
+
if ((error = git_odb__hash(&fc->file->id, src->buf, src->buflen, GIT_OBJECT_BLOB, opts->oid_type)) < 0)
|
165
166
|
return error;
|
166
167
|
fc->file->size = src->buflen;
|
167
|
-
fc->file->id_abbrev =
|
168
|
+
fc->file->id_abbrev = (uint16_t)git_oid_hexsize(opts->oid_type);
|
168
169
|
|
169
170
|
fc->map.len = src->buflen;
|
170
171
|
fc->map.data = (char *)src->buf;
|
@@ -177,8 +178,8 @@ int git_diff_file_content__init_from_src(
|
|
177
178
|
static int diff_file_content_commit_to_str(
|
178
179
|
git_diff_file_content *fc, bool check_status)
|
179
180
|
{
|
180
|
-
char oid[
|
181
|
-
|
181
|
+
char oid[GIT_OID_MAX_HEXSIZE+1];
|
182
|
+
git_str content = GIT_STR_INIT;
|
182
183
|
const char *status = "";
|
183
184
|
|
184
185
|
if (check_status) {
|
@@ -217,11 +218,11 @@ static int diff_file_content_commit_to_str(
|
|
217
218
|
}
|
218
219
|
|
219
220
|
git_oid_tostr(oid, sizeof(oid), &fc->file->id);
|
220
|
-
if (
|
221
|
+
if (git_str_printf(&content, "Subproject commit %s%s\n", oid, status) < 0)
|
221
222
|
return -1;
|
222
223
|
|
223
|
-
fc->map.len =
|
224
|
-
fc->map.data =
|
224
|
+
fc->map.len = git_str_len(&content);
|
225
|
+
fc->map.data = git_str_detach(&content);
|
225
226
|
fc->flags |= GIT_DIFF_FLAG__FREE_DATA;
|
226
227
|
|
227
228
|
return 0;
|
@@ -270,24 +271,24 @@ static int diff_file_content_load_blob(
|
|
270
271
|
}
|
271
272
|
|
272
273
|
static int diff_file_content_load_workdir_symlink_fake(
|
273
|
-
git_diff_file_content *fc,
|
274
|
+
git_diff_file_content *fc, git_str *path)
|
274
275
|
{
|
275
|
-
|
276
|
+
git_str target = GIT_STR_INIT;
|
276
277
|
int error;
|
277
278
|
|
278
279
|
if ((error = git_futils_readbuffer(&target, path->ptr)) < 0)
|
279
280
|
return error;
|
280
281
|
|
281
|
-
fc->map.len =
|
282
|
-
fc->map.data =
|
282
|
+
fc->map.len = git_str_len(&target);
|
283
|
+
fc->map.data = git_str_detach(&target);
|
283
284
|
fc->flags |= GIT_DIFF_FLAG__FREE_DATA;
|
284
285
|
|
285
|
-
|
286
|
+
git_str_dispose(&target);
|
286
287
|
return error;
|
287
288
|
}
|
288
289
|
|
289
290
|
static int diff_file_content_load_workdir_symlink(
|
290
|
-
git_diff_file_content *fc,
|
291
|
+
git_diff_file_content *fc, git_str *path)
|
291
292
|
{
|
292
293
|
ssize_t alloc_len, read_len;
|
293
294
|
int symlink_supported, error;
|
@@ -309,7 +310,7 @@ static int diff_file_content_load_workdir_symlink(
|
|
309
310
|
|
310
311
|
fc->flags |= GIT_DIFF_FLAG__FREE_DATA;
|
311
312
|
|
312
|
-
read_len = p_readlink(
|
313
|
+
read_len = p_readlink(git_str_cstr(path), fc->map.data, alloc_len);
|
313
314
|
if (read_len < 0) {
|
314
315
|
git_error_set(GIT_ERROR_OS, "failed to read symlink '%s'", fc->file->path);
|
315
316
|
return -1;
|
@@ -321,23 +322,39 @@ static int diff_file_content_load_workdir_symlink(
|
|
321
322
|
|
322
323
|
static int diff_file_content_load_workdir_file(
|
323
324
|
git_diff_file_content *fc,
|
324
|
-
|
325
|
+
git_str *path,
|
325
326
|
git_diff_options *diff_opts)
|
326
327
|
{
|
327
328
|
int error = 0;
|
328
329
|
git_filter_list *fl = NULL;
|
329
|
-
git_file fd = git_futils_open_ro(
|
330
|
-
|
330
|
+
git_file fd = git_futils_open_ro(git_str_cstr(path));
|
331
|
+
git_str raw = GIT_STR_INIT;
|
332
|
+
git_object_size_t new_file_size = 0;
|
331
333
|
|
332
334
|
if (fd < 0)
|
333
335
|
return fd;
|
334
336
|
|
335
|
-
|
336
|
-
error = git_futils_filesize(&fc->file->size, fd);
|
337
|
+
error = git_futils_filesize(&new_file_size, fd);
|
337
338
|
|
338
|
-
if (error < 0
|
339
|
+
if (error < 0)
|
339
340
|
goto cleanup;
|
340
341
|
|
342
|
+
if (!(fc->file->flags & GIT_DIFF_FLAG_VALID_SIZE)) {
|
343
|
+
fc->file->size = new_file_size;
|
344
|
+
fc->file->flags |= GIT_DIFF_FLAG_VALID_SIZE;
|
345
|
+
} else if (fc->file->size != new_file_size) {
|
346
|
+
git_error_set(GIT_ERROR_FILESYSTEM, "file changed before we could read it");
|
347
|
+
error = -1;
|
348
|
+
goto cleanup;
|
349
|
+
}
|
350
|
+
|
351
|
+
/* if file is empty, don't attempt to mmap or readbuffer */
|
352
|
+
if (fc->file->size == 0) {
|
353
|
+
fc->map.len = 0;
|
354
|
+
fc->map.data = git_str__initstr;
|
355
|
+
goto cleanup;
|
356
|
+
}
|
357
|
+
|
341
358
|
if ((diff_opts->flags & GIT_DIFF_SHOW_BINARY) == 0 &&
|
342
359
|
diff_file_content_binary_by_size(fc))
|
343
360
|
goto cleanup;
|
@@ -360,7 +377,7 @@ static int diff_file_content_load_workdir_file(
|
|
360
377
|
}
|
361
378
|
|
362
379
|
if (!(error = git_futils_readbuffer_fd(&raw, fd, (size_t)fc->file->size))) {
|
363
|
-
|
380
|
+
git_str out = GIT_STR_INIT;
|
364
381
|
|
365
382
|
error = git_filter_list__convert_buf(&out, fl, &raw);
|
366
383
|
|
@@ -383,7 +400,7 @@ static int diff_file_content_load_workdir(
|
|
383
400
|
git_diff_options *diff_opts)
|
384
401
|
{
|
385
402
|
int error = 0;
|
386
|
-
|
403
|
+
git_str path = GIT_STR_INIT;
|
387
404
|
|
388
405
|
if (fc->file->mode == GIT_FILEMODE_COMMIT)
|
389
406
|
return diff_file_content_commit_to_str(fc, true);
|
@@ -401,12 +418,13 @@ static int diff_file_content_load_workdir(
|
|
401
418
|
|
402
419
|
/* once data is loaded, update OID if we didn't have it previously */
|
403
420
|
if (!error && (fc->file->flags & GIT_DIFF_FLAG_VALID_ID) == 0) {
|
404
|
-
error =
|
405
|
-
&fc->file->id, fc->map.data, fc->map.len,
|
421
|
+
error = git_odb__hash(
|
422
|
+
&fc->file->id, fc->map.data, fc->map.len,
|
423
|
+
GIT_OBJECT_BLOB, diff_opts->oid_type);
|
406
424
|
fc->file->flags |= GIT_DIFF_FLAG_VALID_ID;
|
407
425
|
}
|
408
426
|
|
409
|
-
|
427
|
+
git_str_dispose(&path);
|
410
428
|
return error;
|
411
429
|
}
|
412
430
|
|