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
@@ -21,8 +21,6 @@
|
|
21
21
|
*/
|
22
22
|
|
23
23
|
#include "xinclude.h"
|
24
|
-
#include "integer.h"
|
25
|
-
|
26
24
|
|
27
25
|
#define XDL_MAX_COST_MIN 256
|
28
26
|
#define XDL_HEUR_MIN_COST 256
|
@@ -30,41 +28,19 @@
|
|
30
28
|
#define XDL_SNAKE_CNT 20
|
31
29
|
#define XDL_K_HEUR 4
|
32
30
|
|
33
|
-
/** Declare a function as always inlined. */
|
34
|
-
#if defined(_MSC_VER)
|
35
|
-
# define XDL_INLINE(type) static __inline type
|
36
|
-
#elif defined(__GNUC__)
|
37
|
-
# define XDL_INLINE(type) static __inline__ type
|
38
|
-
#else
|
39
|
-
# define XDL_INLINE(type) static type
|
40
|
-
#endif
|
41
|
-
|
42
31
|
typedef struct s_xdpsplit {
|
43
32
|
long i1, i2;
|
44
33
|
int min_lo, min_hi;
|
45
34
|
} xdpsplit_t;
|
46
35
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
static long xdl_split(unsigned long const *ha1, long off1, long lim1,
|
51
|
-
unsigned long const *ha2, long off2, long lim2,
|
52
|
-
long *kvdf, long *kvdb, int need_min, xdpsplit_t *spl,
|
53
|
-
xdalgoenv_t *xenv);
|
54
|
-
static xdchange_t *xdl_add_change(xdchange_t *xscr, long i1, long i2, long chg1, long chg2);
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
36
|
/*
|
61
37
|
* See "An O(ND) Difference Algorithm and its Variations", by Eugene Myers.
|
62
38
|
* Basically considers a "box" (off1, off2, lim1, lim2) and scan from both
|
63
39
|
* the forward diagonal starting from (off1, off2) and the backward diagonal
|
64
40
|
* starting from (lim1, lim2). If the K values on the same diagonal crosses
|
65
|
-
* returns the furthest point of reach. We might
|
66
|
-
*
|
67
|
-
*
|
41
|
+
* returns the furthest point of reach. We might encounter expensive edge cases
|
42
|
+
* using this algorithm, so a little bit of heuristic is needed to cut the
|
43
|
+
* search and to return a suboptimal point.
|
68
44
|
*/
|
69
45
|
static long xdl_split(unsigned long const *ha1, long off1, long lim1,
|
70
46
|
unsigned long const *ha2, long off2, long lim2,
|
@@ -87,11 +63,13 @@ static long xdl_split(unsigned long const *ha1, long off1, long lim1,
|
|
87
63
|
int got_snake = 0;
|
88
64
|
|
89
65
|
/*
|
90
|
-
* We need to
|
66
|
+
* We need to extend the diagonal "domain" by one. If the next
|
91
67
|
* values exits the box boundaries we need to change it in the
|
92
|
-
* opposite direction because (max - min) must be a power of
|
68
|
+
* opposite direction because (max - min) must be a power of
|
69
|
+
* two.
|
70
|
+
*
|
93
71
|
* Also we initialize the external K value to -1 so that we can
|
94
|
-
* avoid extra conditions check inside the core loop.
|
72
|
+
* avoid extra conditions in the check inside the core loop.
|
95
73
|
*/
|
96
74
|
if (fmin > dmin)
|
97
75
|
kvdf[--fmin - 1] = -1;
|
@@ -122,11 +100,13 @@ static long xdl_split(unsigned long const *ha1, long off1, long lim1,
|
|
122
100
|
}
|
123
101
|
|
124
102
|
/*
|
125
|
-
* We need to
|
103
|
+
* We need to extend the diagonal "domain" by one. If the next
|
126
104
|
* values exits the box boundaries we need to change it in the
|
127
|
-
* opposite direction because (max - min) must be a power of
|
105
|
+
* opposite direction because (max - min) must be a power of
|
106
|
+
* two.
|
107
|
+
*
|
128
108
|
* Also we initialize the external K value to -1 so that we can
|
129
|
-
* avoid extra conditions check inside the core loop.
|
109
|
+
* avoid extra conditions in the check inside the core loop.
|
130
110
|
*/
|
131
111
|
if (bmin > dmin)
|
132
112
|
kvdb[--bmin - 1] = XDL_LINE_MAX;
|
@@ -162,7 +142,7 @@ static long xdl_split(unsigned long const *ha1, long off1, long lim1,
|
|
162
142
|
/*
|
163
143
|
* If the edit cost is above the heuristic trigger and if
|
164
144
|
* we got a good snake, we sample current diagonals to see
|
165
|
-
* if some of
|
145
|
+
* if some of them have reached an "interesting" path. Our
|
166
146
|
* measure is a function of the distance from the diagonal
|
167
147
|
* corner (i1 + i2) penalized with the distance from the
|
168
148
|
* mid diagonal itself. If this value is above the current
|
@@ -220,8 +200,9 @@ static long xdl_split(unsigned long const *ha1, long off1, long lim1,
|
|
220
200
|
}
|
221
201
|
|
222
202
|
/*
|
223
|
-
* Enough is enough. We spent too much time here and now we
|
224
|
-
* the furthest reaching path using the (i1 + i2)
|
203
|
+
* Enough is enough. We spent too much time here and now we
|
204
|
+
* collect the furthest reaching path using the (i1 + i2)
|
205
|
+
* measure.
|
225
206
|
*/
|
226
207
|
if (ec >= xenv->mxcost) {
|
227
208
|
long fbest, fbest1, bbest, bbest1;
|
@@ -268,9 +249,9 @@ static long xdl_split(unsigned long const *ha1, long off1, long lim1,
|
|
268
249
|
|
269
250
|
|
270
251
|
/*
|
271
|
-
* Rule: "Divide et Impera". Recursively split the box in
|
272
|
-
* the box splitting function. Note that the real job
|
273
|
-
* is done in the two boundary reaching checks.
|
252
|
+
* Rule: "Divide et Impera" (divide & conquer). Recursively split the box in
|
253
|
+
* sub-boxes by calling the box splitting function. Note that the real job
|
254
|
+
* (marking changed lines) is done in the two boundary reaching checks.
|
274
255
|
*/
|
275
256
|
int xdl_recs_cmp(diffdata_t *dd1, long off1, long lim1,
|
276
257
|
diffdata_t *dd2, long off2, long lim2,
|
@@ -330,32 +311,34 @@ int xdl_recs_cmp(diffdata_t *dd1, long off1, long lim1,
|
|
330
311
|
|
331
312
|
int xdl_do_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
|
332
313
|
xdfenv_t *xe) {
|
333
|
-
|
314
|
+
long ndiags;
|
334
315
|
long *kvd, *kvdf, *kvdb;
|
335
316
|
xdalgoenv_t xenv;
|
336
317
|
diffdata_t dd1, dd2;
|
318
|
+
int res;
|
337
319
|
|
338
|
-
if (
|
339
|
-
return
|
340
|
-
|
341
|
-
if (XDF_DIFF_ALG(xpp->flags) == XDF_HISTOGRAM_DIFF)
|
342
|
-
return xdl_do_histogram_diff(mf1, mf2, xpp, xe);
|
320
|
+
if (xdl_prepare_env(mf1, mf2, xpp, xe) < 0)
|
321
|
+
return -1;
|
343
322
|
|
344
|
-
if (
|
323
|
+
if (XDF_DIFF_ALG(xpp->flags) == XDF_PATIENCE_DIFF) {
|
324
|
+
res = xdl_do_patience_diff(xpp, xe);
|
325
|
+
goto out;
|
326
|
+
}
|
345
327
|
|
346
|
-
|
328
|
+
if (XDF_DIFF_ALG(xpp->flags) == XDF_HISTOGRAM_DIFF) {
|
329
|
+
res = xdl_do_histogram_diff(xpp, xe);
|
330
|
+
goto out;
|
347
331
|
}
|
348
332
|
|
349
333
|
/*
|
350
|
-
* Allocate and setup K vectors to be used by the differential
|
334
|
+
* Allocate and setup K vectors to be used by the differential
|
335
|
+
* algorithm.
|
336
|
+
*
|
351
337
|
* One is to store the forward path and one to store the backward path.
|
352
338
|
*/
|
353
|
-
|
354
|
-
|
355
|
-
GIT_ERROR_CHECK_ALLOC_ADD(&allocsize, allocsize, 2);
|
356
|
-
GIT_ERROR_CHECK_ALLOC_MULTIPLY(&allocsize, allocsize, sizeof(long));
|
339
|
+
ndiags = xe->xdf1.nreff + xe->xdf2.nreff + 3;
|
340
|
+
if (!XDL_ALLOC_ARRAY(kvd, 2 * ndiags + 2)) {
|
357
341
|
|
358
|
-
if (!(kvd = (long *) xdl_malloc(allocsize))) {
|
359
342
|
xdl_free_env(xe);
|
360
343
|
return -1;
|
361
344
|
}
|
@@ -379,17 +362,15 @@ int xdl_do_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
|
|
379
362
|
dd2.rchg = xe->xdf2.rchg;
|
380
363
|
dd2.rindex = xe->xdf2.rindex;
|
381
364
|
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
xdl_free(kvd);
|
386
|
-
xdl_free_env(xe);
|
387
|
-
return -1;
|
388
|
-
}
|
389
|
-
|
365
|
+
res = xdl_recs_cmp(&dd1, 0, dd1.nrec, &dd2, 0, dd2.nrec,
|
366
|
+
kvdf, kvdb, (xpp->flags & XDF_NEED_MINIMAL) != 0,
|
367
|
+
&xenv);
|
390
368
|
xdl_free(kvd);
|
369
|
+
out:
|
370
|
+
if (res < 0)
|
371
|
+
xdl_free_env(xe);
|
391
372
|
|
392
|
-
return
|
373
|
+
return res;
|
393
374
|
}
|
394
375
|
|
395
376
|
|
@@ -410,19 +391,16 @@ static xdchange_t *xdl_add_change(xdchange_t *xscr, long i1, long i2, long chg1,
|
|
410
391
|
}
|
411
392
|
|
412
393
|
|
413
|
-
static int recs_match(xrecord_t *rec1, xrecord_t *rec2
|
394
|
+
static int recs_match(xrecord_t *rec1, xrecord_t *rec2)
|
414
395
|
{
|
415
|
-
return (rec1->ha == rec2->ha
|
416
|
-
xdl_recmatch(rec1->ptr, rec1->size,
|
417
|
-
rec2->ptr, rec2->size,
|
418
|
-
flags));
|
396
|
+
return (rec1->ha == rec2->ha);
|
419
397
|
}
|
420
398
|
|
421
399
|
/*
|
422
400
|
* If a line is indented more than this, get_indent() just returns this value.
|
423
401
|
* This avoids having to do absurd amounts of work for data that are not
|
424
|
-
* human-readable text, and also ensures that the output of get_indent fits
|
425
|
-
* an int.
|
402
|
+
* human-readable text, and also ensures that the output of get_indent fits
|
403
|
+
* within an int.
|
426
404
|
*/
|
427
405
|
#define MAX_INDENT 200
|
428
406
|
|
@@ -456,9 +434,9 @@ static int get_indent(xrecord_t *rec)
|
|
456
434
|
}
|
457
435
|
|
458
436
|
/*
|
459
|
-
* If more than this number of consecutive blank rows are found, just return
|
460
|
-
* value. This avoids requiring O(N^2) work for pathological cases, and
|
461
|
-
* ensures that the output of score_split fits in an int.
|
437
|
+
* If more than this number of consecutive blank rows are found, just return
|
438
|
+
* this value. This avoids requiring O(N^2) work for pathological cases, and
|
439
|
+
* also ensures that the output of score_split fits in an int.
|
462
440
|
*/
|
463
441
|
#define MAX_BLANKS 20
|
464
442
|
|
@@ -470,8 +448,8 @@ struct split_measurement {
|
|
470
448
|
int end_of_file;
|
471
449
|
|
472
450
|
/*
|
473
|
-
* How much is the line immediately following the split indented (or -1
|
474
|
-
* the line is blank):
|
451
|
+
* How much is the line immediately following the split indented (or -1
|
452
|
+
* if the line is blank):
|
475
453
|
*/
|
476
454
|
int indent;
|
477
455
|
|
@@ -481,8 +459,8 @@ struct split_measurement {
|
|
481
459
|
int pre_blank;
|
482
460
|
|
483
461
|
/*
|
484
|
-
* How much is the nearest non-blank line above the split indented (or
|
485
|
-
* if there is no such line)?
|
462
|
+
* How much is the nearest non-blank line above the split indented (or
|
463
|
+
* -1 if there is no such line)?
|
486
464
|
*/
|
487
465
|
int pre_indent;
|
488
466
|
|
@@ -601,15 +579,20 @@ static void measure_split(const xdfile_t *xdf, long split,
|
|
601
579
|
*/
|
602
580
|
#define INDENT_WEIGHT 60
|
603
581
|
|
582
|
+
/*
|
583
|
+
* How far do we slide a hunk at most?
|
584
|
+
*/
|
585
|
+
#define INDENT_HEURISTIC_MAX_SLIDING 100
|
586
|
+
|
604
587
|
/*
|
605
588
|
* Compute a badness score for the hypothetical split whose measurements are
|
606
|
-
* stored in m. The weight factors were determined empirically using the tools
|
607
|
-
* corpus described in
|
589
|
+
* stored in m. The weight factors were determined empirically using the tools
|
590
|
+
* and corpus described in
|
608
591
|
*
|
609
592
|
* https://github.com/mhagger/diff-slider-tools
|
610
593
|
*
|
611
|
-
* Also see that project if you want to improve the weights based on, for
|
612
|
-
* a larger or more diverse corpus.
|
594
|
+
* Also see that project if you want to improve the weights based on, for
|
595
|
+
* example, a larger or more diverse corpus.
|
613
596
|
*/
|
614
597
|
static void score_add_split(const struct split_measurement *m, struct split_score *s)
|
615
598
|
{
|
@@ -741,7 +724,7 @@ static void group_init(xdfile_t *xdf, struct xdlgroup *g)
|
|
741
724
|
* Move g to describe the next (possibly empty) group in xdf and return 0. If g
|
742
725
|
* is already at the end of the file, do nothing and return -1.
|
743
726
|
*/
|
744
|
-
|
727
|
+
static inline int group_next(xdfile_t *xdf, struct xdlgroup *g)
|
745
728
|
{
|
746
729
|
if (g->end == xdf->nrec)
|
747
730
|
return -1;
|
@@ -757,7 +740,7 @@ XDL_INLINE(int) group_next(xdfile_t *xdf, struct xdlgroup *g)
|
|
757
740
|
* Move g to describe the previous (possibly empty) group in xdf and return 0.
|
758
741
|
* If g is already at the beginning of the file, do nothing and return -1.
|
759
742
|
*/
|
760
|
-
|
743
|
+
static inline int group_previous(xdfile_t *xdf, struct xdlgroup *g)
|
761
744
|
{
|
762
745
|
if (g->start == 0)
|
763
746
|
return -1;
|
@@ -774,10 +757,10 @@ XDL_INLINE(int) group_previous(xdfile_t *xdf, struct xdlgroup *g)
|
|
774
757
|
* following group, expand this group to include it. Return 0 on success or -1
|
775
758
|
* if g cannot be slid down.
|
776
759
|
*/
|
777
|
-
static int group_slide_down(xdfile_t *xdf, struct xdlgroup *g
|
760
|
+
static int group_slide_down(xdfile_t *xdf, struct xdlgroup *g)
|
778
761
|
{
|
779
762
|
if (g->end < xdf->nrec &&
|
780
|
-
recs_match(xdf->recs[g->start], xdf->recs[g->end]
|
763
|
+
recs_match(xdf->recs[g->start], xdf->recs[g->end])) {
|
781
764
|
xdf->rchg[g->start++] = 0;
|
782
765
|
xdf->rchg[g->end++] = 1;
|
783
766
|
|
@@ -795,10 +778,10 @@ static int group_slide_down(xdfile_t *xdf, struct xdlgroup *g, long flags)
|
|
795
778
|
* into a previous group, expand this group to include it. Return 0 on success
|
796
779
|
* or -1 if g cannot be slid up.
|
797
780
|
*/
|
798
|
-
static int group_slide_up(xdfile_t *xdf, struct xdlgroup *g
|
781
|
+
static int group_slide_up(xdfile_t *xdf, struct xdlgroup *g)
|
799
782
|
{
|
800
783
|
if (g->start > 0 &&
|
801
|
-
recs_match(xdf->recs[g->start - 1], xdf->recs[g->end - 1]
|
784
|
+
recs_match(xdf->recs[g->start - 1], xdf->recs[g->end - 1])) {
|
802
785
|
xdf->rchg[--g->start] = 1;
|
803
786
|
xdf->rchg[--g->end] = 0;
|
804
787
|
|
@@ -811,12 +794,6 @@ static int group_slide_up(xdfile_t *xdf, struct xdlgroup *g, long flags)
|
|
811
794
|
}
|
812
795
|
}
|
813
796
|
|
814
|
-
static void xdl_bug(const char *msg)
|
815
|
-
{
|
816
|
-
fprintf(stderr, "BUG: %s\n", msg);
|
817
|
-
exit(1);
|
818
|
-
}
|
819
|
-
|
820
797
|
/*
|
821
798
|
* Move back and forward change groups for a consistent and pretty diff output.
|
822
799
|
* This also helps in finding joinable change groups and reducing the diff
|
@@ -831,13 +808,16 @@ int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) {
|
|
831
808
|
group_init(xdfo, &go);
|
832
809
|
|
833
810
|
while (1) {
|
834
|
-
/*
|
811
|
+
/*
|
812
|
+
* If the group is empty in the to-be-compacted file, skip it:
|
813
|
+
*/
|
835
814
|
if (g.end == g.start)
|
836
815
|
goto next;
|
837
816
|
|
838
817
|
/*
|
839
818
|
* Now shift the change up and then down as far as possible in
|
840
|
-
* each direction. If it bumps into any other changes, merge
|
819
|
+
* each direction. If it bumps into any other changes, merge
|
820
|
+
* them.
|
841
821
|
*/
|
842
822
|
do {
|
843
823
|
groupsize = g.end - g.start;
|
@@ -851,9 +831,9 @@ int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) {
|
|
851
831
|
end_matching_other = -1;
|
852
832
|
|
853
833
|
/* Shift the group backward as much as possible: */
|
854
|
-
while (!group_slide_up(xdf, &g
|
834
|
+
while (!group_slide_up(xdf, &g))
|
855
835
|
if (group_previous(xdfo, &go))
|
856
|
-
|
836
|
+
XDL_BUG("group sync broken sliding up");
|
857
837
|
|
858
838
|
/*
|
859
839
|
* This is this highest that this group can be shifted.
|
@@ -866,10 +846,10 @@ int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) {
|
|
866
846
|
|
867
847
|
/* Now shift the group forward as far as possible: */
|
868
848
|
while (1) {
|
869
|
-
if (group_slide_down(xdf, &g
|
849
|
+
if (group_slide_down(xdf, &g))
|
870
850
|
break;
|
871
851
|
if (group_next(xdfo, &go))
|
872
|
-
|
852
|
+
XDL_BUG("group sync broken sliding down");
|
873
853
|
|
874
854
|
if (go.end > go.start)
|
875
855
|
end_matching_other = g.end;
|
@@ -880,40 +860,46 @@ int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) {
|
|
880
860
|
* If the group can be shifted, then we can possibly use this
|
881
861
|
* freedom to produce a more intuitive diff.
|
882
862
|
*
|
883
|
-
* The group is currently shifted as far down as possible, so
|
884
|
-
* heuristics below only have to handle upwards shifts.
|
863
|
+
* The group is currently shifted as far down as possible, so
|
864
|
+
* the heuristics below only have to handle upwards shifts.
|
885
865
|
*/
|
886
866
|
|
887
867
|
if (g.end == earliest_end) {
|
888
868
|
/* no shifting was possible */
|
889
869
|
} else if (end_matching_other != -1) {
|
890
870
|
/*
|
891
|
-
* Move the possibly merged group of changes back to
|
892
|
-
* up with the last group of changes from the
|
893
|
-
* that it can align with.
|
871
|
+
* Move the possibly merged group of changes back to
|
872
|
+
* line up with the last group of changes from the
|
873
|
+
* other file that it can align with.
|
894
874
|
*/
|
895
875
|
while (go.end == go.start) {
|
896
|
-
if (group_slide_up(xdf, &g
|
897
|
-
|
876
|
+
if (group_slide_up(xdf, &g))
|
877
|
+
XDL_BUG("match disappeared");
|
898
878
|
if (group_previous(xdfo, &go))
|
899
|
-
|
879
|
+
XDL_BUG("group sync broken sliding to match");
|
900
880
|
}
|
901
881
|
} else if (flags & XDF_INDENT_HEURISTIC) {
|
902
882
|
/*
|
903
883
|
* Indent heuristic: a group of pure add/delete lines
|
904
|
-
* implies two splits, one between the end of the
|
905
|
-
* context and the start of the group, and
|
906
|
-
* the end of the group and the
|
907
|
-
* context. Some splits are
|
908
|
-
* are worse. We compute
|
909
|
-
*
|
910
|
-
*
|
911
|
-
*
|
884
|
+
* implies two splits, one between the end of the
|
885
|
+
* "before" context and the start of the group, and
|
886
|
+
* another between the end of the group and the
|
887
|
+
* beginning of the "after" context. Some splits are
|
888
|
+
* aesthetically better and some are worse. We compute
|
889
|
+
* a badness "score" for each split, and add the scores
|
890
|
+
* for the two splits to define a "score" for each
|
891
|
+
* position that the group can be shifted to. Then we
|
892
|
+
* pick the shift with the lowest score.
|
912
893
|
*/
|
913
894
|
long shift, best_shift = -1;
|
914
895
|
struct split_score best_score;
|
915
896
|
|
916
|
-
|
897
|
+
shift = earliest_end;
|
898
|
+
if (g.end - groupsize - 1 > shift)
|
899
|
+
shift = g.end - groupsize - 1;
|
900
|
+
if (g.end - INDENT_HEURISTIC_MAX_SLIDING > shift)
|
901
|
+
shift = g.end - INDENT_HEURISTIC_MAX_SLIDING;
|
902
|
+
for (; shift <= g.end; shift++) {
|
917
903
|
struct split_measurement m;
|
918
904
|
struct split_score score = {0, 0};
|
919
905
|
|
@@ -930,10 +916,10 @@ int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) {
|
|
930
916
|
}
|
931
917
|
|
932
918
|
while (g.end > best_shift) {
|
933
|
-
if (group_slide_up(xdf, &g
|
934
|
-
|
919
|
+
if (group_slide_up(xdf, &g))
|
920
|
+
XDL_BUG("best shift unreached");
|
935
921
|
if (group_previous(xdfo, &go))
|
936
|
-
|
922
|
+
XDL_BUG("group sync broken sliding to blank line");
|
937
923
|
}
|
938
924
|
}
|
939
925
|
|
@@ -942,11 +928,11 @@ int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) {
|
|
942
928
|
if (group_next(xdf, &g))
|
943
929
|
break;
|
944
930
|
if (group_next(xdfo, &go))
|
945
|
-
|
931
|
+
XDL_BUG("group sync broken moving to next group");
|
946
932
|
}
|
947
933
|
|
948
934
|
if (!group_next(xdfo, &go))
|
949
|
-
|
935
|
+
XDL_BUG("group sync broken at end of file");
|
950
936
|
|
951
937
|
return 0;
|
952
938
|
}
|
@@ -987,13 +973,11 @@ void xdl_free_script(xdchange_t *xscr) {
|
|
987
973
|
}
|
988
974
|
}
|
989
975
|
|
990
|
-
static int xdl_call_hunk_func(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
|
976
|
+
static int xdl_call_hunk_func(xdfenv_t *xe XDL_UNUSED, xdchange_t *xscr, xdemitcb_t *ecb,
|
991
977
|
xdemitconf_t const *xecfg)
|
992
978
|
{
|
993
979
|
xdchange_t *xch, *xche;
|
994
980
|
|
995
|
-
(void)xe;
|
996
|
-
|
997
981
|
for (xch = xscr; xch; xch = xche->next) {
|
998
982
|
xche = xdl_get_hunk(&xch, xecfg);
|
999
983
|
if (!xch)
|
@@ -1006,7 +990,7 @@ static int xdl_call_hunk_func(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
|
|
1006
990
|
return 0;
|
1007
991
|
}
|
1008
992
|
|
1009
|
-
static void
|
993
|
+
static void xdl_mark_ignorable_lines(xdchange_t *xscr, xdfenv_t *xe, long flags)
|
1010
994
|
{
|
1011
995
|
xdchange_t *xch;
|
1012
996
|
|
@@ -1027,6 +1011,46 @@ static void xdl_mark_ignorable(xdchange_t *xscr, xdfenv_t *xe, long flags)
|
|
1027
1011
|
}
|
1028
1012
|
}
|
1029
1013
|
|
1014
|
+
static int record_matches_regex(xrecord_t *rec, xpparam_t const *xpp) {
|
1015
|
+
xdl_regmatch_t regmatch;
|
1016
|
+
int i;
|
1017
|
+
|
1018
|
+
for (i = 0; i < xpp->ignore_regex_nr; i++)
|
1019
|
+
if (!xdl_regexec_buf(xpp->ignore_regex[i], rec->ptr, rec->size, 1,
|
1020
|
+
®match, 0))
|
1021
|
+
return 1;
|
1022
|
+
|
1023
|
+
return 0;
|
1024
|
+
}
|
1025
|
+
|
1026
|
+
static void xdl_mark_ignorable_regex(xdchange_t *xscr, const xdfenv_t *xe,
|
1027
|
+
xpparam_t const *xpp)
|
1028
|
+
{
|
1029
|
+
xdchange_t *xch;
|
1030
|
+
|
1031
|
+
for (xch = xscr; xch; xch = xch->next) {
|
1032
|
+
xrecord_t **rec;
|
1033
|
+
int ignore = 1;
|
1034
|
+
long i;
|
1035
|
+
|
1036
|
+
/*
|
1037
|
+
* Do not override --ignore-blank-lines.
|
1038
|
+
*/
|
1039
|
+
if (xch->ignore)
|
1040
|
+
continue;
|
1041
|
+
|
1042
|
+
rec = &xe->xdf1.recs[xch->i1];
|
1043
|
+
for (i = 0; i < xch->chg1 && ignore; i++)
|
1044
|
+
ignore = record_matches_regex(rec[i], xpp);
|
1045
|
+
|
1046
|
+
rec = &xe->xdf2.recs[xch->i2];
|
1047
|
+
for (i = 0; i < xch->chg2 && ignore; i++)
|
1048
|
+
ignore = record_matches_regex(rec[i], xpp);
|
1049
|
+
|
1050
|
+
xch->ignore = ignore;
|
1051
|
+
}
|
1052
|
+
}
|
1053
|
+
|
1030
1054
|
int xdl_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
|
1031
1055
|
xdemitconf_t const *xecfg, xdemitcb_t *ecb) {
|
1032
1056
|
xdchange_t *xscr;
|
@@ -1046,7 +1070,10 @@ int xdl_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
|
|
1046
1070
|
}
|
1047
1071
|
if (xscr) {
|
1048
1072
|
if (xpp->flags & XDF_IGNORE_BLANK_LINES)
|
1049
|
-
|
1073
|
+
xdl_mark_ignorable_lines(xscr, &xe, xpp->flags);
|
1074
|
+
|
1075
|
+
if (xpp->ignore_regex)
|
1076
|
+
xdl_mark_ignorable_regex(xscr, &xe, xpp);
|
1050
1077
|
|
1051
1078
|
if (ef(&xe, xscr, ecb, xecfg) < 0) {
|
1052
1079
|
|
@@ -56,9 +56,7 @@ int xdl_build_script(xdfenv_t *xe, xdchange_t **xscr);
|
|
56
56
|
void xdl_free_script(xdchange_t *xscr);
|
57
57
|
int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
|
58
58
|
xdemitconf_t const *xecfg);
|
59
|
-
int xdl_do_patience_diff(
|
60
|
-
|
61
|
-
int xdl_do_histogram_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp,
|
62
|
-
xdfenv_t *env);
|
59
|
+
int xdl_do_patience_diff(xpparam_t const *xpp, xdfenv_t *env);
|
60
|
+
int xdl_do_histogram_diff(xpparam_t const *xpp, xdfenv_t *env);
|
63
61
|
|
64
62
|
#endif /* #if !defined(XDIFFI_H) */
|
@@ -31,7 +31,7 @@ static long xdl_get_rec(xdfile_t *xdf, long ri, char const **rec) {
|
|
31
31
|
|
32
32
|
|
33
33
|
static int xdl_emit_record(xdfile_t *xdf, long ri, char const *pre, xdemitcb_t *ecb) {
|
34
|
-
long size, psize =
|
34
|
+
long size, psize = strlen(pre);
|
35
35
|
char const *rec;
|
36
36
|
|
37
37
|
size = xdl_get_rec(xdf, ri, &rec);
|
@@ -65,7 +65,7 @@ xdchange_t *xdl_get_hunk(xdchange_t **xscr, xdemitconf_t const *xecfg)
|
|
65
65
|
*xscr = xch;
|
66
66
|
}
|
67
67
|
|
68
|
-
if (
|
68
|
+
if (!*xscr)
|
69
69
|
return NULL;
|
70
70
|
|
71
71
|
lxch = *xscr;
|
@@ -81,7 +81,7 @@ xdchange_t *xdl_get_hunk(xdchange_t **xscr, xdemitconf_t const *xecfg)
|
|
81
81
|
} else if (distance < max_ignorable && xch->ignore) {
|
82
82
|
ignored += xch->chg2;
|
83
83
|
} else if (lxch != xchp &&
|
84
|
-
xch->i1 + ignored - (lxch->i1 + lxch->chg1) >
|
84
|
+
xch->i1 + ignored - (lxch->i1 + lxch->chg1) > max_common) {
|
85
85
|
break;
|
86
86
|
} else if (!xch->ignore) {
|
87
87
|
lxch = xch;
|
@@ -95,10 +95,8 @@ xdchange_t *xdl_get_hunk(xdchange_t **xscr, xdemitconf_t const *xecfg)
|
|
95
95
|
}
|
96
96
|
|
97
97
|
|
98
|
-
static long def_ff(const char *rec, long len, char *buf, long sz
|
98
|
+
static long def_ff(const char *rec, long len, char *buf, long sz)
|
99
99
|
{
|
100
|
-
(void)priv;
|
101
|
-
|
102
100
|
if (len > 0 &&
|
103
101
|
(isalpha((unsigned char)*rec) || /* identifier? */
|
104
102
|
*rec == '_' || /* also identifier? */
|
@@ -119,7 +117,7 @@ static long match_func_rec(xdfile_t *xdf, xdemitconf_t const *xecfg, long ri,
|
|
119
117
|
const char *rec;
|
120
118
|
long len = xdl_get_rec(xdf, ri, &rec);
|
121
119
|
if (!xecfg->find_func)
|
122
|
-
return def_ff(rec, len, buf, sz
|
120
|
+
return def_ff(rec, len, buf, sz);
|
123
121
|
return xecfg->find_func(rec, len, buf, sz, xecfg->find_func_priv);
|
124
122
|
}
|
125
123
|
|
@@ -174,10 +172,12 @@ int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
|
|
174
172
|
struct func_line func_line = { 0 };
|
175
173
|
|
176
174
|
for (xch = xscr; xch; xch = xche->next) {
|
175
|
+
xdchange_t *xchp = xch;
|
177
176
|
xche = xdl_get_hunk(&xch, xecfg);
|
178
177
|
if (!xch)
|
179
178
|
break;
|
180
179
|
|
180
|
+
pre_context_calculation:
|
181
181
|
s1 = XDL_MAX(xch->i1 - xecfg->ctxlen, 0);
|
182
182
|
s2 = XDL_MAX(xch->i2 - xecfg->ctxlen, 0);
|
183
183
|
|
@@ -212,8 +212,23 @@ int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
|
|
212
212
|
if (fs1 < 0)
|
213
213
|
fs1 = 0;
|
214
214
|
if (fs1 < s1) {
|
215
|
-
s2
|
215
|
+
s2 = XDL_MAX(s2 - (s1 - fs1), 0);
|
216
216
|
s1 = fs1;
|
217
|
+
|
218
|
+
/*
|
219
|
+
* Did we extend context upwards into an
|
220
|
+
* ignored change?
|
221
|
+
*/
|
222
|
+
while (xchp != xch &&
|
223
|
+
xchp->i1 + xchp->chg1 <= s1 &&
|
224
|
+
xchp->i2 + xchp->chg2 <= s2)
|
225
|
+
xchp = xchp->next;
|
226
|
+
|
227
|
+
/* If so, show it after all. */
|
228
|
+
if (xchp != xch) {
|
229
|
+
xch = xchp;
|
230
|
+
goto pre_context_calculation;
|
231
|
+
}
|
217
232
|
}
|
218
233
|
}
|
219
234
|
|
@@ -234,7 +249,7 @@ int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
|
|
234
249
|
if (fe1 < 0)
|
235
250
|
fe1 = xe->xdf1.nrec;
|
236
251
|
if (fe1 > e1) {
|
237
|
-
e2
|
252
|
+
e2 = XDL_MIN(e2 + (fe1 - e1), xe->xdf2.nrec);
|
238
253
|
e1 = fe1;
|
239
254
|
}
|
240
255
|
|
@@ -263,7 +278,8 @@ int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
|
|
263
278
|
s1 - 1, funclineprev);
|
264
279
|
funclineprev = s1 - 1;
|
265
280
|
}
|
266
|
-
if (
|
281
|
+
if (!(xecfg->flags & XDL_EMIT_NO_HUNK_HDR) &&
|
282
|
+
xdl_emit_hunk_hdr(s1 + 1, e1 - s1, s2 + 1, e2 - s2,
|
267
283
|
func_line.buf, func_line.len, ecb) < 0)
|
268
284
|
return -1;
|
269
285
|
|