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
@@ -9,6 +9,7 @@
|
|
9
9
|
|
10
10
|
#include "tree.h"
|
11
11
|
#include "index.h"
|
12
|
+
#include "path.h"
|
12
13
|
|
13
14
|
#define GIT_ITERATOR_FIRST_ACCESS (1 << 15)
|
14
15
|
#define GIT_ITERATOR_HONOR_IGNORES (1 << 16)
|
@@ -25,9 +26,10 @@
|
|
25
26
|
#define iterator__ignore_dot_git(I) iterator__flag(I,IGNORE_DOT_GIT)
|
26
27
|
#define iterator__descend_symlinks(I) iterator__flag(I,DESCEND_SYMLINKS)
|
27
28
|
|
28
|
-
|
29
29
|
static void iterator_set_ignore_case(git_iterator *iter, bool ignore_case)
|
30
30
|
{
|
31
|
+
int (*vector_cmp)(const void *a, const void *b);
|
32
|
+
|
31
33
|
if (ignore_case)
|
32
34
|
iter->flags |= GIT_ITERATOR_IGNORE_CASE;
|
33
35
|
else
|
@@ -38,7 +40,9 @@ static void iterator_set_ignore_case(git_iterator *iter, bool ignore_case)
|
|
38
40
|
iter->prefixcomp = ignore_case ? git__prefixcmp_icase : git__prefixcmp;
|
39
41
|
iter->entry_srch = ignore_case ? git_index_entry_isrch : git_index_entry_srch;
|
40
42
|
|
41
|
-
|
43
|
+
vector_cmp = ignore_case ? git__strcasecmp_cb : git__strcmp_cb;
|
44
|
+
|
45
|
+
git_vector_set_cmp(&iter->pathlist, vector_cmp);
|
42
46
|
}
|
43
47
|
|
44
48
|
static int iterator_range_init(
|
@@ -292,12 +296,13 @@ typedef enum {
|
|
292
296
|
ITERATOR_PATHLIST_IS_FILE = 1,
|
293
297
|
ITERATOR_PATHLIST_IS_DIR = 2,
|
294
298
|
ITERATOR_PATHLIST_IS_PARENT = 3,
|
295
|
-
ITERATOR_PATHLIST_FULL = 4
|
299
|
+
ITERATOR_PATHLIST_FULL = 4
|
296
300
|
} iterator_pathlist_search_t;
|
297
301
|
|
298
302
|
static iterator_pathlist_search_t iterator_pathlist_search(
|
299
303
|
git_iterator *iter, const char *path, size_t path_len)
|
300
304
|
{
|
305
|
+
int (*vector_cmp)(const void *a, const void *b);
|
301
306
|
const char *p;
|
302
307
|
size_t idx;
|
303
308
|
int error;
|
@@ -307,8 +312,10 @@ static iterator_pathlist_search_t iterator_pathlist_search(
|
|
307
312
|
|
308
313
|
git_vector_sort(&iter->pathlist);
|
309
314
|
|
310
|
-
|
311
|
-
|
315
|
+
vector_cmp = (iter->flags & GIT_ITERATOR_IGNORE_CASE) != 0 ?
|
316
|
+
git__strcasecmp_cb : git__strcmp_cb;
|
317
|
+
|
318
|
+
error = git_vector_bsearch2(&idx, &iter->pathlist, vector_cmp, path);
|
312
319
|
|
313
320
|
/* the given path was found in the pathlist. since the pathlist only
|
314
321
|
* matches directories when they're suffixed with a '/', analyze the
|
@@ -424,7 +431,7 @@ typedef struct {
|
|
424
431
|
git_tree *tree;
|
425
432
|
|
426
433
|
/* path to this particular frame (folder) */
|
427
|
-
|
434
|
+
git_str path;
|
428
435
|
|
429
436
|
/* a sorted list of the entries for this frame (folder), these are
|
430
437
|
* actually pointers to the iterator's entry pool.
|
@@ -441,7 +448,7 @@ typedef struct {
|
|
441
448
|
* parent path.
|
442
449
|
*/
|
443
450
|
git_vector similar_trees;
|
444
|
-
git_array_t(
|
451
|
+
git_array_t(git_str) similar_paths;
|
445
452
|
} tree_iterator_frame;
|
446
453
|
|
447
454
|
typedef struct {
|
@@ -450,7 +457,7 @@ typedef struct {
|
|
450
457
|
git_array_t(tree_iterator_frame) frames;
|
451
458
|
|
452
459
|
git_index_entry entry;
|
453
|
-
|
460
|
+
git_str entry_path;
|
454
461
|
|
455
462
|
/* a pool of entries to reduce the number of allocations */
|
456
463
|
git_pool entry_pool;
|
@@ -472,7 +479,7 @@ GIT_INLINE(tree_iterator_frame *) tree_iterator_current_frame(
|
|
472
479
|
GIT_INLINE(int) tree_entry_cmp(
|
473
480
|
const git_tree_entry *a, const git_tree_entry *b, bool icase)
|
474
481
|
{
|
475
|
-
return
|
482
|
+
return git_fs_path_cmp(
|
476
483
|
a->filename, a->filename_len, a->attr == GIT_FILEMODE_TREE,
|
477
484
|
b->filename, b->filename_len, b->attr == GIT_FILEMODE_TREE,
|
478
485
|
icase ? git__strncasecmp : git__strncmp);
|
@@ -508,20 +515,20 @@ static int tree_iterator_entry_sort_icase(const void *ptr_a, const void *ptr_b)
|
|
508
515
|
}
|
509
516
|
|
510
517
|
static int tree_iterator_compute_path(
|
511
|
-
|
518
|
+
git_str *out,
|
512
519
|
tree_iterator_entry *entry)
|
513
520
|
{
|
514
|
-
|
521
|
+
git_str_clear(out);
|
515
522
|
|
516
523
|
if (entry->parent_path)
|
517
|
-
|
524
|
+
git_str_joinpath(out, entry->parent_path, entry->tree_entry->filename);
|
518
525
|
else
|
519
|
-
|
526
|
+
git_str_puts(out, entry->tree_entry->filename);
|
520
527
|
|
521
528
|
if (git_tree_entry__is_tree(entry->tree_entry))
|
522
|
-
|
529
|
+
git_str_putc(out, '/');
|
523
530
|
|
524
|
-
if (
|
531
|
+
if (git_str_oom(out))
|
525
532
|
return -1;
|
526
533
|
|
527
534
|
return 0;
|
@@ -601,7 +608,7 @@ GIT_INLINE(int) tree_iterator_frame_push_neighbors(
|
|
601
608
|
tree_iterator_entry *entry, *new_entry;
|
602
609
|
git_tree *tree = NULL;
|
603
610
|
git_tree_entry *tree_entry;
|
604
|
-
|
611
|
+
git_str *path;
|
605
612
|
size_t new_size, i;
|
606
613
|
int error = 0;
|
607
614
|
|
@@ -612,7 +619,7 @@ GIT_INLINE(int) tree_iterator_frame_push_neighbors(
|
|
612
619
|
break;
|
613
620
|
|
614
621
|
if ((error = git_tree_lookup(&tree,
|
615
|
-
iter->base.repo, entry->tree_entry->oid)) < 0)
|
622
|
+
iter->base.repo, &entry->tree_entry->oid)) < 0)
|
616
623
|
break;
|
617
624
|
|
618
625
|
if (git_vector_insert(&parent_frame->similar_trees, tree) < 0)
|
@@ -621,7 +628,7 @@ GIT_INLINE(int) tree_iterator_frame_push_neighbors(
|
|
621
628
|
path = git_array_alloc(parent_frame->similar_paths);
|
622
629
|
GIT_ERROR_CHECK_ALLOC(path);
|
623
630
|
|
624
|
-
memset(path, 0, sizeof(
|
631
|
+
memset(path, 0, sizeof(git_str));
|
625
632
|
|
626
633
|
if ((error = tree_iterator_compute_path(path, entry)) < 0)
|
627
634
|
break;
|
@@ -658,7 +665,7 @@ GIT_INLINE(int) tree_iterator_frame_push(
|
|
658
665
|
int error;
|
659
666
|
|
660
667
|
if ((error = git_tree_lookup(&tree,
|
661
|
-
iter->base.repo, entry->tree_entry->oid)) < 0 ||
|
668
|
+
iter->base.repo, &entry->tree_entry->oid)) < 0 ||
|
662
669
|
(error = tree_iterator_frame_init(iter, tree, entry)) < 0)
|
663
670
|
goto done;
|
664
671
|
|
@@ -681,7 +688,7 @@ done:
|
|
681
688
|
static int tree_iterator_frame_pop(tree_iterator *iter)
|
682
689
|
{
|
683
690
|
tree_iterator_frame *frame;
|
684
|
-
|
691
|
+
git_str *buf = NULL;
|
685
692
|
git_tree *tree;
|
686
693
|
size_t i;
|
687
694
|
|
@@ -689,12 +696,12 @@ static int tree_iterator_frame_pop(tree_iterator *iter)
|
|
689
696
|
|
690
697
|
frame = git_array_pop(iter->frames);
|
691
698
|
|
692
|
-
|
699
|
+
git_vector_dispose(&frame->entries);
|
693
700
|
git_tree_free(frame->tree);
|
694
701
|
|
695
702
|
do {
|
696
703
|
buf = git_array_pop(frame->similar_paths);
|
697
|
-
|
704
|
+
git_str_dispose(buf);
|
698
705
|
} while (buf != NULL);
|
699
706
|
|
700
707
|
git_array_clear(frame->similar_paths);
|
@@ -702,9 +709,9 @@ static int tree_iterator_frame_pop(tree_iterator *iter)
|
|
702
709
|
git_vector_foreach(&frame->similar_trees, i, tree)
|
703
710
|
git_tree_free(tree);
|
704
711
|
|
705
|
-
|
712
|
+
git_vector_dispose(&frame->similar_trees);
|
706
713
|
|
707
|
-
|
714
|
+
git_str_dispose(&frame->path);
|
708
715
|
|
709
716
|
return 0;
|
710
717
|
}
|
@@ -739,7 +746,7 @@ static void tree_iterator_set_current(
|
|
739
746
|
|
740
747
|
iter->entry.mode = tree_entry->attr;
|
741
748
|
iter->entry.path = iter->entry_path.ptr;
|
742
|
-
git_oid_cpy(&iter->entry.id, tree_entry->oid);
|
749
|
+
git_oid_cpy(&iter->entry.id, &tree_entry->oid);
|
743
750
|
}
|
744
751
|
|
745
752
|
static int tree_iterator_advance(const git_index_entry **out, git_iterator *i)
|
@@ -892,7 +899,7 @@ static void tree_iterator_clear(tree_iterator *iter)
|
|
892
899
|
git_array_clear(iter->frames);
|
893
900
|
|
894
901
|
git_pool_clear(&iter->entry_pool);
|
895
|
-
|
902
|
+
git_str_clear(&iter->entry_path);
|
896
903
|
|
897
904
|
iterator_clear(&iter->base);
|
898
905
|
}
|
@@ -925,7 +932,7 @@ static void tree_iterator_free(git_iterator *i)
|
|
925
932
|
tree_iterator_clear(iter);
|
926
933
|
|
927
934
|
git_tree_free(iter->root);
|
928
|
-
|
935
|
+
git_str_dispose(&iter->entry_path);
|
929
936
|
}
|
930
937
|
|
931
938
|
int git_iterator_for_tree(
|
@@ -1035,16 +1042,18 @@ typedef struct {
|
|
1035
1042
|
git_index *index;
|
1036
1043
|
git_vector index_snapshot;
|
1037
1044
|
|
1045
|
+
git_oid_t oid_type;
|
1046
|
+
|
1038
1047
|
git_array_t(filesystem_iterator_frame) frames;
|
1039
1048
|
git_ignores ignores;
|
1040
1049
|
|
1041
1050
|
/* info about the current entry */
|
1042
1051
|
git_index_entry entry;
|
1043
|
-
|
1052
|
+
git_str current_path;
|
1044
1053
|
int current_is_ignored;
|
1045
1054
|
|
1046
1055
|
/* temporary buffer for advance_over */
|
1047
|
-
|
1056
|
+
git_str tmp_buf;
|
1048
1057
|
} filesystem_iterator;
|
1049
1058
|
|
1050
1059
|
|
@@ -1266,11 +1275,11 @@ static int filesystem_iterator_entry_hash(
|
|
1266
1275
|
filesystem_iterator *iter,
|
1267
1276
|
filesystem_iterator_entry *entry)
|
1268
1277
|
{
|
1269
|
-
|
1278
|
+
git_str fullpath = GIT_STR_INIT;
|
1270
1279
|
int error;
|
1271
1280
|
|
1272
1281
|
if (S_ISDIR(entry->st.st_mode)) {
|
1273
|
-
memset(&entry->id, 0,
|
1282
|
+
memset(&entry->id, 0, git_oid_size(iter->oid_type));
|
1274
1283
|
return 0;
|
1275
1284
|
}
|
1276
1285
|
|
@@ -1278,11 +1287,11 @@ static int filesystem_iterator_entry_hash(
|
|
1278
1287
|
return git_repository_hashfile(&entry->id,
|
1279
1288
|
iter->base.repo, entry->path, GIT_OBJECT_BLOB, NULL);
|
1280
1289
|
|
1281
|
-
if (!(error =
|
1282
|
-
!(error =
|
1283
|
-
error =
|
1290
|
+
if (!(error = git_str_joinpath(&fullpath, iter->root, entry->path)) &&
|
1291
|
+
!(error = git_path_validate_str_length(iter->base.repo, &fullpath)))
|
1292
|
+
error = git_odb__hashfile(&entry->id, fullpath.ptr, GIT_OBJECT_BLOB, iter->oid_type);
|
1284
1293
|
|
1285
|
-
|
1294
|
+
git_str_dispose(&fullpath);
|
1286
1295
|
return error;
|
1287
1296
|
}
|
1288
1297
|
|
@@ -1336,8 +1345,8 @@ static int filesystem_iterator_frame_push(
|
|
1336
1345
|
filesystem_iterator_entry *frame_entry)
|
1337
1346
|
{
|
1338
1347
|
filesystem_iterator_frame *new_frame = NULL;
|
1339
|
-
|
1340
|
-
|
1348
|
+
git_fs_path_diriter diriter = GIT_FS_PATH_DIRITER_INIT;
|
1349
|
+
git_str root = GIT_STR_INIT;
|
1341
1350
|
const char *path;
|
1342
1351
|
filesystem_iterator_entry *entry;
|
1343
1352
|
struct stat statbuf;
|
@@ -1356,12 +1365,12 @@ static int filesystem_iterator_frame_push(
|
|
1356
1365
|
memset(new_frame, 0, sizeof(filesystem_iterator_frame));
|
1357
1366
|
|
1358
1367
|
if (frame_entry)
|
1359
|
-
|
1368
|
+
git_str_joinpath(&root, iter->root, frame_entry->path);
|
1360
1369
|
else
|
1361
|
-
|
1370
|
+
git_str_puts(&root, iter->root);
|
1362
1371
|
|
1363
|
-
if (
|
1364
|
-
|
1372
|
+
if (git_str_oom(&root) ||
|
1373
|
+
git_path_validate_str_length(iter->base.repo, &root) < 0) {
|
1365
1374
|
error = -1;
|
1366
1375
|
goto done;
|
1367
1376
|
}
|
@@ -1369,7 +1378,7 @@ static int filesystem_iterator_frame_push(
|
|
1369
1378
|
new_frame->path_len = frame_entry ? frame_entry->path_len : 0;
|
1370
1379
|
|
1371
1380
|
/* Any error here is equivalent to the dir not existing, skip over it */
|
1372
|
-
if ((error =
|
1381
|
+
if ((error = git_fs_path_diriter_init(
|
1373
1382
|
&diriter, root.ptr, iter->dirload_flags)) < 0) {
|
1374
1383
|
error = GIT_ENOTFOUND;
|
1375
1384
|
goto done;
|
@@ -1387,12 +1396,18 @@ static int filesystem_iterator_frame_push(
|
|
1387
1396
|
/* check if this directory is ignored */
|
1388
1397
|
filesystem_iterator_frame_push_ignores(iter, frame_entry, new_frame);
|
1389
1398
|
|
1390
|
-
while ((error =
|
1399
|
+
while ((error = git_fs_path_diriter_next(&diriter)) == 0) {
|
1391
1400
|
iterator_pathlist_search_t pathlist_match = ITERATOR_PATHLIST_FULL;
|
1401
|
+
git_str path_str = GIT_STR_INIT;
|
1392
1402
|
bool dir_expected = false;
|
1393
1403
|
|
1394
|
-
if ((error =
|
1395
|
-
|
1404
|
+
if ((error = git_fs_path_diriter_fullpath(&path, &path_len, &diriter)) < 0)
|
1405
|
+
goto done;
|
1406
|
+
|
1407
|
+
path_str.ptr = (char *)path;
|
1408
|
+
path_str.size = path_len;
|
1409
|
+
|
1410
|
+
if ((error = git_path_validate_str_length(iter->base.repo, &path_str)) < 0)
|
1396
1411
|
goto done;
|
1397
1412
|
|
1398
1413
|
GIT_ASSERT(path_len > iter->root_len);
|
@@ -1414,7 +1429,7 @@ static int filesystem_iterator_frame_push(
|
|
1414
1429
|
* we have an index, we can just copy the data out of it.
|
1415
1430
|
*/
|
1416
1431
|
|
1417
|
-
if ((error =
|
1432
|
+
if ((error = git_fs_path_diriter_stat(&statbuf, &diriter)) < 0) {
|
1418
1433
|
/* file was removed between readdir and lstat */
|
1419
1434
|
if (error == GIT_ENOTFOUND)
|
1420
1435
|
continue;
|
@@ -1471,8 +1486,8 @@ done:
|
|
1471
1486
|
if (error < 0)
|
1472
1487
|
git_array_pop(iter->frames);
|
1473
1488
|
|
1474
|
-
|
1475
|
-
|
1489
|
+
git_str_dispose(&root);
|
1490
|
+
git_fs_path_diriter_free(&diriter);
|
1476
1491
|
return error;
|
1477
1492
|
}
|
1478
1493
|
|
@@ -1486,7 +1501,7 @@ GIT_INLINE(int) filesystem_iterator_frame_pop(filesystem_iterator *iter)
|
|
1486
1501
|
filesystem_iterator_frame_pop_ignores(iter);
|
1487
1502
|
|
1488
1503
|
git_pool_clear(&frame->entry_pool);
|
1489
|
-
|
1504
|
+
git_vector_dispose(&frame->entries);
|
1490
1505
|
|
1491
1506
|
return 0;
|
1492
1507
|
}
|
@@ -1522,6 +1537,8 @@ static void filesystem_iterator_set_current(
|
|
1522
1537
|
|
1523
1538
|
if (iter->base.flags & GIT_ITERATOR_INCLUDE_HASH)
|
1524
1539
|
git_oid_cpy(&iter->entry.id, &entry->id);
|
1540
|
+
else
|
1541
|
+
git_oid_clear(&iter->entry.id, iter->oid_type);
|
1525
1542
|
|
1526
1543
|
iter->entry.path = entry->path;
|
1527
1544
|
|
@@ -1551,7 +1568,7 @@ static int filesystem_iterator_is_dir(
|
|
1551
1568
|
const filesystem_iterator_entry *entry)
|
1552
1569
|
{
|
1553
1570
|
struct stat st;
|
1554
|
-
|
1571
|
+
git_str fullpath = GIT_STR_INIT;
|
1555
1572
|
int error = 0;
|
1556
1573
|
|
1557
1574
|
if (S_ISDIR(entry->st.st_mode)) {
|
@@ -1564,15 +1581,15 @@ static int filesystem_iterator_is_dir(
|
|
1564
1581
|
goto done;
|
1565
1582
|
}
|
1566
1583
|
|
1567
|
-
if ((error =
|
1568
|
-
(error =
|
1584
|
+
if ((error = git_str_joinpath(&fullpath, iter->root, entry->path)) < 0 ||
|
1585
|
+
(error = git_path_validate_str_length(iter->base.repo, &fullpath)) < 0 ||
|
1569
1586
|
(error = p_stat(fullpath.ptr, &st)) < 0)
|
1570
1587
|
goto done;
|
1571
1588
|
|
1572
1589
|
*is_dir = S_ISDIR(st.st_mode);
|
1573
1590
|
|
1574
1591
|
done:
|
1575
|
-
|
1592
|
+
git_str_dispose(&fullpath);
|
1576
1593
|
return error;
|
1577
1594
|
}
|
1578
1595
|
|
@@ -1673,7 +1690,7 @@ static int filesystem_iterator_advance_into(
|
|
1673
1690
|
return filesystem_iterator_advance(out, i);
|
1674
1691
|
}
|
1675
1692
|
|
1676
|
-
int git_iterator_current_workdir_path(
|
1693
|
+
int git_iterator_current_workdir_path(git_str **out, git_iterator *i)
|
1677
1694
|
{
|
1678
1695
|
filesystem_iterator *iter = GIT_CONTAINER_OF(i, filesystem_iterator, base);
|
1679
1696
|
const git_index_entry *entry;
|
@@ -1684,10 +1701,10 @@ int git_iterator_current_workdir_path(git_buf **out, git_iterator *i)
|
|
1684
1701
|
return 0;
|
1685
1702
|
}
|
1686
1703
|
|
1687
|
-
|
1704
|
+
git_str_truncate(&iter->current_path, iter->root_len);
|
1688
1705
|
|
1689
1706
|
if (git_iterator_current(&entry, i) < 0 ||
|
1690
|
-
|
1707
|
+
git_str_puts(&iter->current_path, entry->path) < 0)
|
1691
1708
|
return -1;
|
1692
1709
|
|
1693
1710
|
*out = &iter->current_path;
|
@@ -1790,8 +1807,8 @@ static int filesystem_iterator_advance_over(
|
|
1790
1807
|
return filesystem_iterator_advance(out, i);
|
1791
1808
|
}
|
1792
1809
|
|
1793
|
-
|
1794
|
-
if ((error =
|
1810
|
+
git_str_clear(&iter->tmp_buf);
|
1811
|
+
if ((error = git_str_puts(&iter->tmp_buf, entry->path)) < 0)
|
1795
1812
|
return error;
|
1796
1813
|
|
1797
1814
|
base = iter->tmp_buf.ptr;
|
@@ -1858,7 +1875,7 @@ static void filesystem_iterator_clear(filesystem_iterator *iter)
|
|
1858
1875
|
git_array_clear(iter->frames);
|
1859
1876
|
git_ignore__free(&iter->ignores);
|
1860
1877
|
|
1861
|
-
|
1878
|
+
git_str_dispose(&iter->tmp_buf);
|
1862
1879
|
|
1863
1880
|
iterator_clear(&iter->base);
|
1864
1881
|
}
|
@@ -1892,7 +1909,7 @@ static void filesystem_iterator_free(git_iterator *i)
|
|
1892
1909
|
{
|
1893
1910
|
filesystem_iterator *iter = GIT_CONTAINER_OF(i, filesystem_iterator, base);
|
1894
1911
|
git__free(iter->root);
|
1895
|
-
|
1912
|
+
git_str_dispose(&iter->current_path);
|
1896
1913
|
git_tree_free(iter->tree);
|
1897
1914
|
if (iter->index)
|
1898
1915
|
git_index_snapshot_release(&iter->index_snapshot, iter->index);
|
@@ -1946,7 +1963,7 @@ static int iterator_for_filesystem(
|
|
1946
1963
|
iter->root[root_len] = '\0';
|
1947
1964
|
iter->root_len = root_len;
|
1948
1965
|
|
1949
|
-
if ((error =
|
1966
|
+
if ((error = git_str_puts(&iter->current_path, iter->root)) < 0)
|
1950
1967
|
goto on_error;
|
1951
1968
|
|
1952
1969
|
if ((error = iterator_init_common(&iter->base, repo, index, options)) < 0)
|
@@ -1961,9 +1978,12 @@ static int iterator_for_filesystem(
|
|
1961
1978
|
|
1962
1979
|
iter->index = index;
|
1963
1980
|
iter->dirload_flags =
|
1964
|
-
(iterator__ignore_case(&iter->base) ?
|
1981
|
+
(iterator__ignore_case(&iter->base) ?
|
1982
|
+
GIT_FS_PATH_DIR_IGNORE_CASE : 0) |
|
1965
1983
|
(iterator__flag(&iter->base, PRECOMPOSE_UNICODE) ?
|
1966
|
-
|
1984
|
+
GIT_FS_PATH_DIR_PRECOMPOSE_UNICODE : 0);
|
1985
|
+
|
1986
|
+
iter->oid_type = options->oid_type;
|
1967
1987
|
|
1968
1988
|
if ((error = filesystem_iterator_init(iter)) < 0)
|
1969
1989
|
goto on_error;
|
@@ -1979,10 +1999,15 @@ on_error:
|
|
1979
1999
|
int git_iterator_for_filesystem(
|
1980
2000
|
git_iterator **out,
|
1981
2001
|
const char *root,
|
1982
|
-
git_iterator_options *
|
2002
|
+
git_iterator_options *given_opts)
|
1983
2003
|
{
|
2004
|
+
git_iterator_options options = GIT_ITERATOR_OPTIONS_INIT;
|
2005
|
+
|
2006
|
+
if (given_opts)
|
2007
|
+
memcpy(&options, given_opts, sizeof(git_iterator_options));
|
2008
|
+
|
1984
2009
|
return iterator_for_filesystem(out,
|
1985
|
-
NULL, root, NULL, NULL, GIT_ITERATOR_FS, options);
|
2010
|
+
NULL, root, NULL, NULL, GIT_ITERATOR_FS, &options);
|
1986
2011
|
}
|
1987
2012
|
|
1988
2013
|
int git_iterator_for_workdir_ext(
|
@@ -2009,6 +2034,12 @@ int git_iterator_for_workdir_ext(
|
|
2009
2034
|
options.flags |= GIT_ITERATOR_HONOR_IGNORES |
|
2010
2035
|
GIT_ITERATOR_IGNORE_DOT_GIT;
|
2011
2036
|
|
2037
|
+
if (!options.oid_type)
|
2038
|
+
options.oid_type = repo->oid_type;
|
2039
|
+
else if (options.oid_type != repo->oid_type)
|
2040
|
+
git_error_set(GIT_ERROR_INVALID,
|
2041
|
+
"specified object ID type does not match repository object ID type");
|
2042
|
+
|
2012
2043
|
return iterator_for_filesystem(out,
|
2013
2044
|
repo, repo_workdir, index, tree, GIT_ITERATOR_WORKDIR, &options);
|
2014
2045
|
}
|
@@ -2024,7 +2055,7 @@ typedef struct {
|
|
2024
2055
|
|
2025
2056
|
/* the pseudotree entry */
|
2026
2057
|
git_index_entry tree_entry;
|
2027
|
-
|
2058
|
+
git_str tree_buf;
|
2028
2059
|
bool skip_tree;
|
2029
2060
|
|
2030
2061
|
const git_index_entry *entry;
|
@@ -2058,14 +2089,14 @@ static bool index_iterator_create_pseudotree(
|
|
2058
2089
|
prev_path = iter->entry ? iter->entry->path : "";
|
2059
2090
|
|
2060
2091
|
/* determine if the new path is in a different directory from the old */
|
2061
|
-
common_len =
|
2092
|
+
common_len = git_fs_path_common_dirlen(prev_path, path);
|
2062
2093
|
relative_path = path + common_len;
|
2063
2094
|
|
2064
2095
|
if ((dirsep = strchr(relative_path, '/')) == NULL)
|
2065
2096
|
return false;
|
2066
2097
|
|
2067
|
-
|
2068
|
-
|
2098
|
+
git_str_clear(&iter->tree_buf);
|
2099
|
+
git_str_put(&iter->tree_buf, path, (dirsep - path) + 1);
|
2069
2100
|
|
2070
2101
|
iter->tree_entry.mode = GIT_FILEMODE_TREE;
|
2071
2102
|
iter->tree_entry.path = iter->tree_buf.ptr;
|
@@ -2230,7 +2261,7 @@ static void index_iterator_free(git_iterator *i)
|
|
2230
2261
|
index_iterator *iter = GIT_CONTAINER_OF(i, index_iterator, base);
|
2231
2262
|
|
2232
2263
|
git_index_snapshot_release(&iter->entries, iter->base.index);
|
2233
|
-
|
2264
|
+
git_str_dispose(&iter->tree_buf);
|
2234
2265
|
}
|
2235
2266
|
|
2236
2267
|
int git_iterator_for_index(
|
@@ -2305,7 +2336,7 @@ void git_iterator_free(git_iterator *iter)
|
|
2305
2336
|
|
2306
2337
|
iter->cb->free(iter);
|
2307
2338
|
|
2308
|
-
|
2339
|
+
git_vector_dispose(&iter->pathlist);
|
2309
2340
|
git__free(iter->start);
|
2310
2341
|
git__free(iter->end);
|
2311
2342
|
|
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
#include "git2/index.h"
|
13
13
|
#include "vector.h"
|
14
|
-
#include "
|
14
|
+
#include "str.h"
|
15
15
|
#include "ignore.h"
|
16
16
|
|
17
17
|
typedef struct git_iterator git_iterator;
|
@@ -21,7 +21,7 @@ typedef enum {
|
|
21
21
|
GIT_ITERATOR_TREE = 1,
|
22
22
|
GIT_ITERATOR_INDEX = 2,
|
23
23
|
GIT_ITERATOR_WORKDIR = 3,
|
24
|
-
GIT_ITERATOR_FS = 4
|
24
|
+
GIT_ITERATOR_FS = 4
|
25
25
|
} git_iterator_t;
|
26
26
|
|
27
27
|
typedef enum {
|
@@ -42,7 +42,7 @@ typedef enum {
|
|
42
42
|
/** descend into symlinked directories */
|
43
43
|
GIT_ITERATOR_DESCEND_SYMLINKS = (1u << 7),
|
44
44
|
/** hash files in workdir or filesystem iterators */
|
45
|
-
GIT_ITERATOR_INCLUDE_HASH = (1u << 8)
|
45
|
+
GIT_ITERATOR_INCLUDE_HASH = (1u << 8)
|
46
46
|
} git_iterator_flag_t;
|
47
47
|
|
48
48
|
typedef enum {
|
@@ -63,6 +63,9 @@ typedef struct {
|
|
63
63
|
|
64
64
|
/* flags, from above */
|
65
65
|
unsigned int flags;
|
66
|
+
|
67
|
+
/* oid type - necessary for non-workdir filesystem iterators */
|
68
|
+
git_oid_t oid_type;
|
66
69
|
} git_iterator_options;
|
67
70
|
|
68
71
|
#define GIT_ITERATOR_OPTIONS_INIT {0}
|
@@ -278,11 +281,11 @@ extern bool git_iterator_current_tree_is_ignored(git_iterator *iter);
|
|
278
281
|
|
279
282
|
/**
|
280
283
|
* Get full path of the current item from a workdir iterator. This will
|
281
|
-
* return NULL for a non-workdir iterator. The
|
284
|
+
* return NULL for a non-workdir iterator. The git_str is still owned by
|
282
285
|
* the iterator; this is exposed just for efficiency.
|
283
286
|
*/
|
284
287
|
extern int git_iterator_current_workdir_path(
|
285
|
-
|
288
|
+
git_str **path, git_iterator *iter);
|
286
289
|
|
287
290
|
/**
|
288
291
|
* Retrieve the index stored in the iterator.
|