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
@@ -88,7 +88,7 @@ static int xdl_cleanup_merge(xdmerge_t *c)
|
|
88
88
|
if (c->mode == 0)
|
89
89
|
count++;
|
90
90
|
next_c = c->next;
|
91
|
-
|
91
|
+
xdl_free(c);
|
92
92
|
}
|
93
93
|
return count;
|
94
94
|
}
|
@@ -109,53 +109,44 @@ static int xdl_merge_cmp_lines(xdfenv_t *xe1, int i1, xdfenv_t *xe2, int i2,
|
|
109
109
|
return 0;
|
110
110
|
}
|
111
111
|
|
112
|
-
static int xdl_recs_copy_0(
|
112
|
+
static int xdl_recs_copy_0(int use_orig, xdfenv_t *xe, int i, int count, int needs_cr, int add_nl, char *dest)
|
113
113
|
{
|
114
114
|
xrecord_t **recs;
|
115
|
-
|
116
|
-
|
117
|
-
*out = 0;
|
115
|
+
int size = 0;
|
118
116
|
|
119
117
|
recs = (use_orig ? xe->xdf1.recs : xe->xdf2.recs) + i;
|
120
118
|
|
121
119
|
if (count < 1)
|
122
120
|
return 0;
|
123
121
|
|
124
|
-
for (i = 0; i < count; )
|
122
|
+
for (i = 0; i < count; size += recs[i++]->size)
|
125
123
|
if (dest)
|
126
124
|
memcpy(dest + size, recs[i]->ptr, recs[i]->size);
|
127
|
-
|
128
|
-
GIT_ERROR_CHECK_ALLOC_ADD(&size, size, recs[i++]->size);
|
129
|
-
}
|
130
|
-
|
131
125
|
if (add_nl) {
|
132
126
|
i = recs[count - 1]->size;
|
133
127
|
if (i == 0 || recs[count - 1]->ptr[i - 1] != '\n') {
|
134
128
|
if (needs_cr) {
|
135
129
|
if (dest)
|
136
130
|
dest[size] = '\r';
|
137
|
-
|
131
|
+
size++;
|
138
132
|
}
|
139
133
|
|
140
134
|
if (dest)
|
141
135
|
dest[size] = '\n';
|
142
|
-
|
143
|
-
GIT_ERROR_CHECK_ALLOC_ADD(&size, size, 1);
|
136
|
+
size++;
|
144
137
|
}
|
145
138
|
}
|
146
|
-
|
147
|
-
*out = size;
|
148
|
-
return 0;
|
139
|
+
return size;
|
149
140
|
}
|
150
141
|
|
151
|
-
static int xdl_recs_copy(
|
142
|
+
static int xdl_recs_copy(xdfenv_t *xe, int i, int count, int needs_cr, int add_nl, char *dest)
|
152
143
|
{
|
153
|
-
return xdl_recs_copy_0(
|
144
|
+
return xdl_recs_copy_0(0, xe, i, count, needs_cr, add_nl, dest);
|
154
145
|
}
|
155
146
|
|
156
|
-
static int xdl_orig_copy(
|
147
|
+
static int xdl_orig_copy(xdfenv_t *xe, int i, int count, int needs_cr, int add_nl, char *dest)
|
157
148
|
{
|
158
|
-
return xdl_recs_copy_0(
|
149
|
+
return xdl_recs_copy_0(1, xe, i, count, needs_cr, add_nl, dest);
|
159
150
|
}
|
160
151
|
|
161
152
|
/*
|
@@ -202,32 +193,26 @@ static int is_cr_needed(xdfenv_t *xe1, xdfenv_t *xe2, xdmerge_t *m)
|
|
202
193
|
return needs_cr < 0 ? 0 : needs_cr;
|
203
194
|
}
|
204
195
|
|
205
|
-
static int fill_conflict_hunk(
|
196
|
+
static int fill_conflict_hunk(xdfenv_t *xe1, const char *name1,
|
206
197
|
xdfenv_t *xe2, const char *name2,
|
207
198
|
const char *name3,
|
208
|
-
|
199
|
+
int size, int i, int style,
|
209
200
|
xdmerge_t *m, char *dest, int marker_size)
|
210
201
|
{
|
211
|
-
int marker1_size = (name1 ?
|
212
|
-
int marker2_size = (name2 ?
|
213
|
-
int marker3_size = (name3 ?
|
202
|
+
int marker1_size = (name1 ? strlen(name1) + 1 : 0);
|
203
|
+
int marker2_size = (name2 ? strlen(name2) + 1 : 0);
|
204
|
+
int marker3_size = (name3 ? strlen(name3) + 1 : 0);
|
214
205
|
int needs_cr = is_cr_needed(xe1, xe2, m);
|
215
|
-
size_t copied;
|
216
|
-
|
217
|
-
*out = 0;
|
218
206
|
|
219
207
|
if (marker_size <= 0)
|
220
208
|
marker_size = DEFAULT_CONFLICT_MARKER_SIZE;
|
221
209
|
|
222
210
|
/* Before conflicting part */
|
223
|
-
|
224
|
-
dest ? dest + size : NULL)
|
225
|
-
return -1;
|
226
|
-
|
227
|
-
GIT_ERROR_CHECK_ALLOC_ADD(&size, size, copied);
|
211
|
+
size += xdl_recs_copy(xe1, i, m->i1 - i, 0, 0,
|
212
|
+
dest ? dest + size : NULL);
|
228
213
|
|
229
214
|
if (!dest) {
|
230
|
-
|
215
|
+
size += marker_size + 1 + needs_cr + marker1_size;
|
231
216
|
} else {
|
232
217
|
memset(dest + size, '<', marker_size);
|
233
218
|
size += marker_size;
|
@@ -242,16 +227,13 @@ static int fill_conflict_hunk(size_t *out, xdfenv_t *xe1, const char *name1,
|
|
242
227
|
}
|
243
228
|
|
244
229
|
/* Postimage from side #1 */
|
245
|
-
|
246
|
-
dest ? dest + size : NULL)
|
247
|
-
return -1;
|
248
|
-
|
249
|
-
GIT_ERROR_CHECK_ALLOC_ADD(&size, size, copied);
|
230
|
+
size += xdl_recs_copy(xe1, m->i1, m->chg1, needs_cr, 1,
|
231
|
+
dest ? dest + size : NULL);
|
250
232
|
|
251
|
-
if (style == XDL_MERGE_DIFF3) {
|
233
|
+
if (style == XDL_MERGE_DIFF3 || style == XDL_MERGE_ZEALOUS_DIFF3) {
|
252
234
|
/* Shared preimage */
|
253
235
|
if (!dest) {
|
254
|
-
|
236
|
+
size += marker_size + 1 + needs_cr + marker3_size;
|
255
237
|
} else {
|
256
238
|
memset(dest + size, '|', marker_size);
|
257
239
|
size += marker_size;
|
@@ -264,15 +246,12 @@ static int fill_conflict_hunk(size_t *out, xdfenv_t *xe1, const char *name1,
|
|
264
246
|
dest[size++] = '\r';
|
265
247
|
dest[size++] = '\n';
|
266
248
|
}
|
267
|
-
|
268
|
-
|
269
|
-
dest ? dest + size : NULL) < 0)
|
270
|
-
return -1;
|
271
|
-
GIT_ERROR_CHECK_ALLOC_ADD(&size, size, copied);
|
249
|
+
size += xdl_orig_copy(xe1, m->i0, m->chg0, needs_cr, 1,
|
250
|
+
dest ? dest + size : NULL);
|
272
251
|
}
|
273
252
|
|
274
253
|
if (!dest) {
|
275
|
-
|
254
|
+
size += marker_size + 1 + needs_cr;
|
276
255
|
} else {
|
277
256
|
memset(dest + size, '=', marker_size);
|
278
257
|
size += marker_size;
|
@@ -282,14 +261,10 @@ static int fill_conflict_hunk(size_t *out, xdfenv_t *xe1, const char *name1,
|
|
282
261
|
}
|
283
262
|
|
284
263
|
/* Postimage from side #2 */
|
285
|
-
|
286
|
-
|
287
|
-
dest ? dest + size : NULL) < 0)
|
288
|
-
return -1;
|
289
|
-
GIT_ERROR_CHECK_ALLOC_ADD(&size, size, copied);
|
290
|
-
|
264
|
+
size += xdl_recs_copy(xe2, m->i2, m->chg2, needs_cr, 1,
|
265
|
+
dest ? dest + size : NULL);
|
291
266
|
if (!dest) {
|
292
|
-
|
267
|
+
size += marker_size + 1 + needs_cr + marker2_size;
|
293
268
|
} else {
|
294
269
|
memset(dest + size, '>', marker_size);
|
295
270
|
size += marker_size;
|
@@ -302,71 +277,83 @@ static int fill_conflict_hunk(size_t *out, xdfenv_t *xe1, const char *name1,
|
|
302
277
|
dest[size++] = '\r';
|
303
278
|
dest[size++] = '\n';
|
304
279
|
}
|
305
|
-
|
306
|
-
*out = size;
|
307
|
-
return 0;
|
280
|
+
return size;
|
308
281
|
}
|
309
282
|
|
310
|
-
static int xdl_fill_merge_buffer(
|
311
|
-
xdfenv_t *xe1, const char *name1,
|
283
|
+
static int xdl_fill_merge_buffer(xdfenv_t *xe1, const char *name1,
|
312
284
|
xdfenv_t *xe2, const char *name2,
|
313
285
|
const char *ancestor_name,
|
314
286
|
int favor,
|
315
287
|
xdmerge_t *m, char *dest, int style,
|
316
288
|
int marker_size)
|
317
289
|
{
|
318
|
-
|
319
|
-
int i;
|
320
|
-
|
321
|
-
*out = 0;
|
290
|
+
int size, i;
|
322
291
|
|
323
292
|
for (size = i = 0; m; m = m->next) {
|
324
293
|
if (favor && !m->mode)
|
325
294
|
m->mode = favor;
|
326
295
|
|
327
|
-
if (m->mode == 0)
|
328
|
-
|
296
|
+
if (m->mode == 0)
|
297
|
+
size = fill_conflict_hunk(xe1, name1, xe2, name2,
|
329
298
|
ancestor_name,
|
330
299
|
size, i, style, m, dest,
|
331
|
-
marker_size)
|
332
|
-
return -1;
|
333
|
-
}
|
300
|
+
marker_size);
|
334
301
|
else if (m->mode & 3) {
|
335
302
|
/* Before conflicting part */
|
336
|
-
|
337
|
-
dest ? dest + size : NULL)
|
338
|
-
return -1;
|
339
|
-
GIT_ERROR_CHECK_ALLOC_ADD(&size, size, copied);
|
340
|
-
|
303
|
+
size += xdl_recs_copy(xe1, i, m->i1 - i, 0, 0,
|
304
|
+
dest ? dest + size : NULL);
|
341
305
|
/* Postimage from side #1 */
|
342
306
|
if (m->mode & 1) {
|
343
307
|
int needs_cr = is_cr_needed(xe1, xe2, m);
|
344
308
|
|
345
|
-
|
346
|
-
dest ? dest + size : NULL)
|
347
|
-
return -1;
|
348
|
-
GIT_ERROR_CHECK_ALLOC_ADD(&size, size, copied);
|
309
|
+
size += xdl_recs_copy(xe1, m->i1, m->chg1, needs_cr, (m->mode & 2),
|
310
|
+
dest ? dest + size : NULL);
|
349
311
|
}
|
350
|
-
|
351
312
|
/* Postimage from side #2 */
|
352
|
-
if (m->mode & 2)
|
353
|
-
|
354
|
-
dest ? dest + size : NULL)
|
355
|
-
return -1;
|
356
|
-
GIT_ERROR_CHECK_ALLOC_ADD(&size, size, copied);
|
357
|
-
}
|
313
|
+
if (m->mode & 2)
|
314
|
+
size += xdl_recs_copy(xe2, m->i2, m->chg2, 0, 0,
|
315
|
+
dest ? dest + size : NULL);
|
358
316
|
} else
|
359
317
|
continue;
|
360
318
|
i = m->i1 + m->chg1;
|
361
319
|
}
|
320
|
+
size += xdl_recs_copy(xe1, i, xe1->xdf2.nrec - i, 0, 0,
|
321
|
+
dest ? dest + size : NULL);
|
322
|
+
return size;
|
323
|
+
}
|
362
324
|
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
325
|
+
static int recmatch(xrecord_t *rec1, xrecord_t *rec2, unsigned long flags)
|
326
|
+
{
|
327
|
+
return xdl_recmatch(rec1->ptr, rec1->size,
|
328
|
+
rec2->ptr, rec2->size, flags);
|
329
|
+
}
|
367
330
|
|
368
|
-
|
369
|
-
|
331
|
+
/*
|
332
|
+
* Remove any common lines from the beginning and end of the conflicted region.
|
333
|
+
*/
|
334
|
+
static void xdl_refine_zdiff3_conflicts(xdfenv_t *xe1, xdfenv_t *xe2, xdmerge_t *m,
|
335
|
+
xpparam_t const *xpp)
|
336
|
+
{
|
337
|
+
xrecord_t **rec1 = xe1->xdf2.recs, **rec2 = xe2->xdf2.recs;
|
338
|
+
for (; m; m = m->next) {
|
339
|
+
/* let's handle just the conflicts */
|
340
|
+
if (m->mode)
|
341
|
+
continue;
|
342
|
+
|
343
|
+
while(m->chg1 && m->chg2 &&
|
344
|
+
recmatch(rec1[m->i1], rec2[m->i2], xpp->flags)) {
|
345
|
+
m->chg1--;
|
346
|
+
m->chg2--;
|
347
|
+
m->i1++;
|
348
|
+
m->i2++;
|
349
|
+
}
|
350
|
+
while (m->chg1 && m->chg2 &&
|
351
|
+
recmatch(rec1[m->i1 + m->chg1 - 1],
|
352
|
+
rec2[m->i2 + m->chg2 - 1], xpp->flags)) {
|
353
|
+
m->chg1--;
|
354
|
+
m->chg2--;
|
355
|
+
}
|
356
|
+
}
|
370
357
|
}
|
371
358
|
|
372
359
|
/*
|
@@ -469,7 +456,7 @@ static void xdl_merge_two_conflicts(xdmerge_t *m)
|
|
469
456
|
m->chg1 = next_m->i1 + next_m->chg1 - m->i1;
|
470
457
|
m->chg2 = next_m->i2 + next_m->chg2 - m->i2;
|
471
458
|
m->next = next_m->next;
|
472
|
-
|
459
|
+
xdl_free(next_m);
|
473
460
|
}
|
474
461
|
|
475
462
|
/*
|
@@ -529,7 +516,22 @@ static int xdl_do_merge(xdfenv_t *xe1, xdchange_t *xscr1,
|
|
529
516
|
int style = xmp->style;
|
530
517
|
int favor = xmp->favor;
|
531
518
|
|
532
|
-
|
519
|
+
/*
|
520
|
+
* XDL_MERGE_DIFF3 does not attempt to refine conflicts by looking
|
521
|
+
* at common areas of sides 1 & 2, because the base (side 0) does
|
522
|
+
* not match and is being shown. Similarly, simplification of
|
523
|
+
* non-conflicts is also skipped due to the skipping of conflict
|
524
|
+
* refinement.
|
525
|
+
*
|
526
|
+
* XDL_MERGE_ZEALOUS_DIFF3, on the other hand, will attempt to
|
527
|
+
* refine conflicts looking for common areas of sides 1 & 2.
|
528
|
+
* However, since the base is being shown and does not match,
|
529
|
+
* it will only look for common areas at the beginning or end
|
530
|
+
* of the conflict block. Since XDL_MERGE_ZEALOUS_DIFF3's
|
531
|
+
* conflict refinement is much more limited in this fashion, the
|
532
|
+
* conflict simplification will be skipped.
|
533
|
+
*/
|
534
|
+
if (style == XDL_MERGE_DIFF3 || style == XDL_MERGE_ZEALOUS_DIFF3) {
|
533
535
|
/*
|
534
536
|
* "diff3 -m" output does not make sense for anything
|
535
537
|
* more aggressive than XDL_MERGE_EAGER.
|
@@ -650,34 +652,31 @@ static int xdl_do_merge(xdfenv_t *xe1, xdchange_t *xscr1,
|
|
650
652
|
if (!changes)
|
651
653
|
changes = c;
|
652
654
|
/* refine conflicts */
|
653
|
-
if (
|
654
|
-
|
655
|
-
|
656
|
-
|
655
|
+
if (style == XDL_MERGE_ZEALOUS_DIFF3) {
|
656
|
+
xdl_refine_zdiff3_conflicts(xe1, xe2, changes, xpp);
|
657
|
+
} else if (XDL_MERGE_ZEALOUS <= level &&
|
658
|
+
(xdl_refine_conflicts(xe1, xe2, changes, xpp) < 0 ||
|
659
|
+
xdl_simplify_non_conflicts(xe1, changes,
|
660
|
+
XDL_MERGE_ZEALOUS < level) < 0)) {
|
657
661
|
xdl_cleanup_merge(changes);
|
658
662
|
return -1;
|
659
663
|
}
|
660
664
|
/* output */
|
661
665
|
if (result) {
|
662
666
|
int marker_size = xmp->marker_size;
|
663
|
-
|
664
|
-
|
665
|
-
if (xdl_fill_merge_buffer(&size, xe1, name1, xe2, name2,
|
667
|
+
int size = xdl_fill_merge_buffer(xe1, name1, xe2, name2,
|
666
668
|
ancestor_name,
|
667
669
|
favor, changes, NULL, style,
|
668
|
-
marker_size)
|
669
|
-
return -1;
|
670
|
-
|
670
|
+
marker_size);
|
671
671
|
result->ptr = xdl_malloc(size);
|
672
672
|
if (!result->ptr) {
|
673
673
|
xdl_cleanup_merge(changes);
|
674
674
|
return -1;
|
675
675
|
}
|
676
676
|
result->size = size;
|
677
|
-
|
677
|
+
xdl_fill_merge_buffer(xe1, name1, xe2, name2,
|
678
678
|
ancestor_name, favor, changes,
|
679
|
-
result->ptr, style, marker_size)
|
680
|
-
return -1;
|
679
|
+
result->ptr, style, marker_size);
|
681
680
|
}
|
682
681
|
return xdl_cleanup_merge(changes);
|
683
682
|
}
|
@@ -685,54 +684,42 @@ static int xdl_do_merge(xdfenv_t *xe1, xdchange_t *xscr1,
|
|
685
684
|
int xdl_merge(mmfile_t *orig, mmfile_t *mf1, mmfile_t *mf2,
|
686
685
|
xmparam_t const *xmp, mmbuffer_t *result)
|
687
686
|
{
|
688
|
-
xdchange_t *xscr1, *xscr2;
|
687
|
+
xdchange_t *xscr1 = NULL, *xscr2 = NULL;
|
689
688
|
xdfenv_t xe1, xe2;
|
690
|
-
int status;
|
689
|
+
int status = -1;
|
691
690
|
xpparam_t const *xpp = &xmp->xpp;
|
692
691
|
|
693
692
|
result->ptr = NULL;
|
694
693
|
result->size = 0;
|
695
694
|
|
696
|
-
if (xdl_do_diff(orig, mf1, xpp, &xe1) < 0)
|
697
|
-
return -1;
|
698
|
-
}
|
699
|
-
if (xdl_do_diff(orig, mf2, xpp, &xe2) < 0) {
|
700
|
-
xdl_free_env(&xe1);
|
695
|
+
if (xdl_do_diff(orig, mf1, xpp, &xe1) < 0)
|
701
696
|
return -1;
|
702
|
-
|
697
|
+
|
698
|
+
if (xdl_do_diff(orig, mf2, xpp, &xe2) < 0)
|
699
|
+
goto free_xe1; /* avoid double free of xe2 */
|
700
|
+
|
703
701
|
if (xdl_change_compact(&xe1.xdf1, &xe1.xdf2, xpp->flags) < 0 ||
|
704
702
|
xdl_change_compact(&xe1.xdf2, &xe1.xdf1, xpp->flags) < 0 ||
|
705
|
-
xdl_build_script(&xe1, &xscr1) < 0)
|
706
|
-
|
707
|
-
|
708
|
-
}
|
703
|
+
xdl_build_script(&xe1, &xscr1) < 0)
|
704
|
+
goto out;
|
705
|
+
|
709
706
|
if (xdl_change_compact(&xe2.xdf1, &xe2.xdf2, xpp->flags) < 0 ||
|
710
707
|
xdl_change_compact(&xe2.xdf2, &xe2.xdf1, xpp->flags) < 0 ||
|
711
|
-
xdl_build_script(&xe2, &xscr2) < 0)
|
712
|
-
|
713
|
-
|
714
|
-
xdl_free_env(&xe2);
|
715
|
-
return -1;
|
716
|
-
}
|
717
|
-
status = 0;
|
708
|
+
xdl_build_script(&xe2, &xscr2) < 0)
|
709
|
+
goto out;
|
710
|
+
|
718
711
|
if (!xscr1) {
|
719
712
|
result->ptr = xdl_malloc(mf2->size);
|
720
|
-
if (!result->ptr)
|
721
|
-
|
722
|
-
|
723
|
-
xdl_free_env(&xe2);
|
724
|
-
return -1;
|
725
|
-
}
|
713
|
+
if (!result->ptr)
|
714
|
+
goto out;
|
715
|
+
status = 0;
|
726
716
|
memcpy(result->ptr, mf2->ptr, mf2->size);
|
727
717
|
result->size = mf2->size;
|
728
718
|
} else if (!xscr2) {
|
729
719
|
result->ptr = xdl_malloc(mf1->size);
|
730
|
-
if (!result->ptr)
|
731
|
-
|
732
|
-
|
733
|
-
xdl_free_env(&xe2);
|
734
|
-
return -1;
|
735
|
-
}
|
720
|
+
if (!result->ptr)
|
721
|
+
goto out;
|
722
|
+
status = 0;
|
736
723
|
memcpy(result->ptr, mf1->ptr, mf1->size);
|
737
724
|
result->size = mf1->size;
|
738
725
|
} else {
|
@@ -740,11 +727,13 @@ int xdl_merge(mmfile_t *orig, mmfile_t *mf1, mmfile_t *mf2,
|
|
740
727
|
&xe2, xscr2,
|
741
728
|
xmp, result);
|
742
729
|
}
|
730
|
+
out:
|
743
731
|
xdl_free_script(xscr1);
|
744
732
|
xdl_free_script(xscr2);
|
745
733
|
|
746
|
-
xdl_free_env(&xe1);
|
747
734
|
xdl_free_env(&xe2);
|
735
|
+
free_xe1:
|
736
|
+
xdl_free_env(&xe1);
|
748
737
|
|
749
738
|
return status;
|
750
739
|
}
|
@@ -20,8 +20,6 @@
|
|
20
20
|
*
|
21
21
|
*/
|
22
22
|
#include "xinclude.h"
|
23
|
-
#include "xtypes.h"
|
24
|
-
#include "xdiff.h"
|
25
23
|
|
26
24
|
/*
|
27
25
|
* The basic idea of patience diff is to find lines that are unique in
|
@@ -71,14 +69,13 @@ struct hashmap {
|
|
71
69
|
} *entries, *first, *last;
|
72
70
|
/* were common records found? */
|
73
71
|
unsigned long has_matches;
|
74
|
-
mmfile_t *file1, *file2;
|
75
72
|
xdfenv_t *env;
|
76
73
|
xpparam_t const *xpp;
|
77
74
|
};
|
78
75
|
|
79
76
|
static int is_anchor(xpparam_t const *xpp, const char *line)
|
80
77
|
{
|
81
|
-
|
78
|
+
int i;
|
82
79
|
for (i = 0; i < xpp->anchors_nr; i++) {
|
83
80
|
if (!strncmp(line, xpp->anchors[i], strlen(xpp->anchors[i])))
|
84
81
|
return 1;
|
@@ -92,7 +89,7 @@ static void insert_record(xpparam_t const *xpp, int line, struct hashmap *map,
|
|
92
89
|
{
|
93
90
|
xrecord_t **records = pass == 1 ?
|
94
91
|
map->env->xdf1.recs : map->env->xdf2.recs;
|
95
|
-
xrecord_t *record = records[line - 1]
|
92
|
+
xrecord_t *record = records[line - 1];
|
96
93
|
/*
|
97
94
|
* After xdl_prepare_env() (or more precisely, due to
|
98
95
|
* xdl_classify_record()), the "ha" member of the records (AKA lines)
|
@@ -106,11 +103,7 @@ static void insert_record(xpparam_t const *xpp, int line, struct hashmap *map,
|
|
106
103
|
int index = (int)((record->ha << 1) % map->alloc);
|
107
104
|
|
108
105
|
while (map->entries[index].line1) {
|
109
|
-
|
110
|
-
if (map->entries[index].hash != record->ha ||
|
111
|
-
!xdl_recmatch(record->ptr, record->size,
|
112
|
-
other->ptr, other->size,
|
113
|
-
map->xpp->flags)) {
|
106
|
+
if (map->entries[index].hash != record->ha) {
|
114
107
|
if (++index >= map->alloc)
|
115
108
|
index = 0;
|
116
109
|
continue;
|
@@ -145,23 +138,17 @@ static void insert_record(xpparam_t const *xpp, int line, struct hashmap *map,
|
|
145
138
|
*
|
146
139
|
* It is assumed that env has been prepared using xdl_prepare().
|
147
140
|
*/
|
148
|
-
static int fill_hashmap(
|
149
|
-
xpparam_t const *xpp, xdfenv_t *env,
|
141
|
+
static int fill_hashmap(xpparam_t const *xpp, xdfenv_t *env,
|
150
142
|
struct hashmap *result,
|
151
143
|
int line1, int count1, int line2, int count2)
|
152
144
|
{
|
153
|
-
result->file1 = file1;
|
154
|
-
result->file2 = file2;
|
155
145
|
result->xpp = xpp;
|
156
146
|
result->env = env;
|
157
147
|
|
158
148
|
/* We know exactly how large we want the hash map */
|
159
149
|
result->alloc = count1 * 2;
|
160
|
-
result->entries
|
161
|
-
xdl_malloc(result->alloc * sizeof(struct entry));
|
162
|
-
if (!result->entries)
|
150
|
+
if (!XDL_CALLOC_ARRAY(result->entries, result->alloc))
|
163
151
|
return -1;
|
164
|
-
memset(result->entries, 0, result->alloc * sizeof(struct entry));
|
165
152
|
|
166
153
|
/* First, fill with entries from the first file */
|
167
154
|
while (count1--)
|
@@ -204,9 +191,9 @@ static int binary_search(struct entry **sequence, int longest,
|
|
204
191
|
* item per sequence length: the sequence with the smallest last
|
205
192
|
* element (in terms of line2).
|
206
193
|
*/
|
207
|
-
static
|
194
|
+
static int find_longest_common_sequence(struct hashmap *map, struct entry **res)
|
208
195
|
{
|
209
|
-
struct entry **sequence
|
196
|
+
struct entry **sequence;
|
210
197
|
int longest = 0, i;
|
211
198
|
struct entry *entry;
|
212
199
|
|
@@ -217,8 +204,8 @@ static struct entry *find_longest_common_sequence(struct hashmap *map)
|
|
217
204
|
*/
|
218
205
|
int anchor_i = -1;
|
219
206
|
|
220
|
-
if (!sequence)
|
221
|
-
return
|
207
|
+
if (!XDL_ALLOC_ARRAY(sequence, map->nr))
|
208
|
+
return -1;
|
222
209
|
|
223
210
|
for (entry = map->first; entry; entry = entry->next) {
|
224
211
|
if (!entry->line2 || entry->line2 == NON_UNIQUE)
|
@@ -239,8 +226,9 @@ static struct entry *find_longest_common_sequence(struct hashmap *map)
|
|
239
226
|
|
240
227
|
/* No common unique lines were found */
|
241
228
|
if (!longest) {
|
229
|
+
*res = NULL;
|
242
230
|
xdl_free(sequence);
|
243
|
-
return
|
231
|
+
return 0;
|
244
232
|
}
|
245
233
|
|
246
234
|
/* Iterate starting at the last element, adjusting the "next" members */
|
@@ -250,20 +238,19 @@ static struct entry *find_longest_common_sequence(struct hashmap *map)
|
|
250
238
|
entry->previous->next = entry;
|
251
239
|
entry = entry->previous;
|
252
240
|
}
|
241
|
+
*res = entry;
|
253
242
|
xdl_free(sequence);
|
254
|
-
return
|
243
|
+
return 0;
|
255
244
|
}
|
256
245
|
|
257
246
|
static int match(struct hashmap *map, int line1, int line2)
|
258
247
|
{
|
259
248
|
xrecord_t *record1 = map->env->xdf1.recs[line1 - 1];
|
260
249
|
xrecord_t *record2 = map->env->xdf2.recs[line2 - 1];
|
261
|
-
return
|
262
|
-
record2->ptr, record2->size, map->xpp->flags);
|
250
|
+
return record1->ha == record2->ha;
|
263
251
|
}
|
264
252
|
|
265
|
-
static int patience_diff(
|
266
|
-
xpparam_t const *xpp, xdfenv_t *env,
|
253
|
+
static int patience_diff(xpparam_t const *xpp, xdfenv_t *env,
|
267
254
|
int line1, int count1, int line2, int count2);
|
268
255
|
|
269
256
|
static int walk_common_sequence(struct hashmap *map, struct entry *first,
|
@@ -294,11 +281,7 @@ static int walk_common_sequence(struct hashmap *map, struct entry *first,
|
|
294
281
|
|
295
282
|
/* Recurse */
|
296
283
|
if (next1 > line1 || next2 > line2) {
|
297
|
-
|
298
|
-
|
299
|
-
memset(&submap, 0, sizeof(submap));
|
300
|
-
if (patience_diff(map->file1, map->file2,
|
301
|
-
map->xpp, map->env,
|
284
|
+
if (patience_diff(map->xpp, map->env,
|
302
285
|
line1, next1 - line1,
|
303
286
|
line2, next2 - line2))
|
304
287
|
return -1;
|
@@ -323,6 +306,8 @@ static int fall_back_to_classic_diff(struct hashmap *map,
|
|
323
306
|
int line1, int count1, int line2, int count2)
|
324
307
|
{
|
325
308
|
xpparam_t xpp;
|
309
|
+
|
310
|
+
memset(&xpp, 0, sizeof(xpp));
|
326
311
|
xpp.flags = map->xpp->flags & ~XDF_DIFF_ALGORITHM_MASK;
|
327
312
|
|
328
313
|
return xdl_fall_back_diff(map->env, &xpp,
|
@@ -335,8 +320,7 @@ static int fall_back_to_classic_diff(struct hashmap *map,
|
|
335
320
|
*
|
336
321
|
* This function assumes that env was prepared with xdl_prepare_env().
|
337
322
|
*/
|
338
|
-
static int patience_diff(
|
339
|
-
xpparam_t const *xpp, xdfenv_t *env,
|
323
|
+
static int patience_diff(xpparam_t const *xpp, xdfenv_t *env,
|
340
324
|
int line1, int count1, int line2, int count2)
|
341
325
|
{
|
342
326
|
struct hashmap map;
|
@@ -355,7 +339,7 @@ static int patience_diff(mmfile_t *file1, mmfile_t *file2,
|
|
355
339
|
}
|
356
340
|
|
357
341
|
memset(&map, 0, sizeof(map));
|
358
|
-
if (fill_hashmap(
|
342
|
+
if (fill_hashmap(xpp, env, &map,
|
359
343
|
line1, count1, line2, count2))
|
360
344
|
return -1;
|
361
345
|
|
@@ -369,25 +353,21 @@ static int patience_diff(mmfile_t *file1, mmfile_t *file2,
|
|
369
353
|
return 0;
|
370
354
|
}
|
371
355
|
|
372
|
-
|
356
|
+
result = find_longest_common_sequence(&map, &first);
|
357
|
+
if (result)
|
358
|
+
goto out;
|
373
359
|
if (first)
|
374
360
|
result = walk_common_sequence(&map, first,
|
375
361
|
line1, count1, line2, count2);
|
376
362
|
else
|
377
363
|
result = fall_back_to_classic_diff(&map,
|
378
364
|
line1, count1, line2, count2);
|
379
|
-
|
365
|
+
out:
|
380
366
|
xdl_free(map.entries);
|
381
367
|
return result;
|
382
368
|
}
|
383
369
|
|
384
|
-
int xdl_do_patience_diff(
|
385
|
-
xpparam_t const *xpp, xdfenv_t *env)
|
370
|
+
int xdl_do_patience_diff(xpparam_t const *xpp, xdfenv_t *env)
|
386
371
|
{
|
387
|
-
|
388
|
-
return -1;
|
389
|
-
|
390
|
-
/* environment is cleaned up in xdl_diff() */
|
391
|
-
return patience_diff(file1, file2, xpp, env,
|
392
|
-
1, env->xdf1.nrec, 1, env->xdf2.nrec);
|
372
|
+
return patience_diff(xpp, env, 1, env->xdf1.nrec, 1, env->xdf2.nrec);
|
393
373
|
}
|