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
@@ -8,12 +8,13 @@
|
|
8
8
|
#include "futils.h"
|
9
9
|
|
10
10
|
#include "runtime.h"
|
11
|
-
#include "strmap.h"
|
12
11
|
#include "hash.h"
|
12
|
+
#include "rand.h"
|
13
|
+
#include "hashmap_str.h"
|
14
|
+
|
13
15
|
#include <ctype.h>
|
14
|
-
|
15
|
-
#
|
16
|
-
#endif
|
16
|
+
|
17
|
+
#define GIT_FILEMODE_DEFAULT 0100666
|
17
18
|
|
18
19
|
int git_futils_mkpath2file(const char *file_path, const mode_t mode)
|
19
20
|
{
|
@@ -22,32 +23,31 @@ int git_futils_mkpath2file(const char *file_path, const mode_t mode)
|
|
22
23
|
GIT_MKDIR_PATH | GIT_MKDIR_SKIP_LAST | GIT_MKDIR_VERIFY_DIR);
|
23
24
|
}
|
24
25
|
|
25
|
-
int git_futils_mktmp(
|
26
|
+
int git_futils_mktmp(git_str *path_out, const char *filename, mode_t mode)
|
26
27
|
{
|
28
|
+
const int open_flags = O_RDWR | O_CREAT | O_EXCL | O_BINARY | O_CLOEXEC;
|
29
|
+
unsigned int tries = 32;
|
27
30
|
int fd;
|
28
|
-
mode_t mask;
|
29
31
|
|
30
|
-
|
32
|
+
while (tries--) {
|
33
|
+
uint64_t rand = git_rand_next();
|
31
34
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
if (git_buf_oom(path_out))
|
36
|
-
return -1;
|
35
|
+
git_str_sets(path_out, filename);
|
36
|
+
git_str_puts(path_out, "_git2_");
|
37
|
+
git_str_encode_hexstr(path_out, (void *)&rand, sizeof(uint64_t));
|
37
38
|
|
38
|
-
|
39
|
-
|
40
|
-
"failed to create temporary file '%s'", path_out->ptr);
|
41
|
-
return -1;
|
42
|
-
}
|
39
|
+
if (git_str_oom(path_out))
|
40
|
+
return -1;
|
43
41
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
return -1;
|
42
|
+
/* Note that we open with O_CREAT | O_EXCL */
|
43
|
+
if ((fd = p_open(path_out->ptr, open_flags, mode)) >= 0)
|
44
|
+
return fd;
|
48
45
|
}
|
49
46
|
|
50
|
-
|
47
|
+
git_error_set(GIT_ERROR_OS,
|
48
|
+
"failed to create temporary file '%s'", path_out->ptr);
|
49
|
+
git_str_dispose(path_out);
|
50
|
+
return -1;
|
51
51
|
}
|
52
52
|
|
53
53
|
int git_futils_creat_withpath(const char *path, const mode_t dirmode, const mode_t mode)
|
@@ -99,7 +99,7 @@ int git_futils_open_ro(const char *path)
|
|
99
99
|
{
|
100
100
|
int fd = p_open(path, O_RDONLY);
|
101
101
|
if (fd < 0)
|
102
|
-
return
|
102
|
+
return git_fs_path_set_error(errno, path, "open");
|
103
103
|
return fd;
|
104
104
|
}
|
105
105
|
|
@@ -107,7 +107,7 @@ int git_futils_truncate(const char *path, int mode)
|
|
107
107
|
{
|
108
108
|
int fd = p_open(path, O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, mode);
|
109
109
|
if (fd < 0)
|
110
|
-
return
|
110
|
+
return git_fs_path_set_error(errno, path, "open");
|
111
111
|
|
112
112
|
close(fd);
|
113
113
|
return 0;
|
@@ -145,12 +145,12 @@ mode_t git_futils_canonical_mode(mode_t raw_mode)
|
|
145
145
|
return 0;
|
146
146
|
}
|
147
147
|
|
148
|
-
int git_futils_readbuffer_fd(
|
148
|
+
int git_futils_readbuffer_fd(git_str *buf, git_file fd, size_t len)
|
149
149
|
{
|
150
150
|
ssize_t read_size = 0;
|
151
151
|
size_t alloc_len;
|
152
152
|
|
153
|
-
|
153
|
+
git_str_clear(buf);
|
154
154
|
|
155
155
|
if (!git__is_ssizet(len)) {
|
156
156
|
git_error_set(GIT_ERROR_INVALID, "read too large");
|
@@ -158,15 +158,21 @@ int git_futils_readbuffer_fd(git_buf *buf, git_file fd, size_t len)
|
|
158
158
|
}
|
159
159
|
|
160
160
|
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, len, 1);
|
161
|
-
if (
|
161
|
+
if (git_str_grow(buf, alloc_len) < 0)
|
162
162
|
return -1;
|
163
163
|
|
164
164
|
/* p_read loops internally to read len bytes */
|
165
165
|
read_size = p_read(fd, buf->ptr, len);
|
166
166
|
|
167
|
-
if (read_size
|
167
|
+
if (read_size < 0) {
|
168
168
|
git_error_set(GIT_ERROR_OS, "failed to read descriptor");
|
169
|
-
|
169
|
+
git_str_dispose(buf);
|
170
|
+
return -1;
|
171
|
+
}
|
172
|
+
|
173
|
+
if ((size_t)read_size != len) {
|
174
|
+
git_error_set(GIT_ERROR_FILESYSTEM, "could not read (expected %" PRIuZ " bytes, read %" PRIuZ ")", len, (size_t)read_size);
|
175
|
+
git_str_dispose(buf);
|
170
176
|
return -1;
|
171
177
|
}
|
172
178
|
|
@@ -176,14 +182,53 @@ int git_futils_readbuffer_fd(git_buf *buf, git_file fd, size_t len)
|
|
176
182
|
return 0;
|
177
183
|
}
|
178
184
|
|
185
|
+
int git_futils_readbuffer_fd_full(git_str *buf, git_file fd)
|
186
|
+
{
|
187
|
+
static size_t blocksize = 10240;
|
188
|
+
size_t alloc_len = 0, total_size = 0;
|
189
|
+
ssize_t read_size = 0;
|
190
|
+
|
191
|
+
git_str_clear(buf);
|
192
|
+
|
193
|
+
while (true) {
|
194
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, blocksize);
|
195
|
+
|
196
|
+
if (git_str_grow(buf, alloc_len) < 0)
|
197
|
+
return -1;
|
198
|
+
|
199
|
+
/* p_read loops internally to read blocksize bytes */
|
200
|
+
read_size = p_read(fd, buf->ptr, blocksize);
|
201
|
+
|
202
|
+
if (read_size < 0) {
|
203
|
+
git_error_set(GIT_ERROR_OS, "failed to read descriptor");
|
204
|
+
git_str_dispose(buf);
|
205
|
+
return -1;
|
206
|
+
}
|
207
|
+
|
208
|
+
total_size += read_size;
|
209
|
+
|
210
|
+
if ((size_t)read_size < blocksize) {
|
211
|
+
break;
|
212
|
+
}
|
213
|
+
}
|
214
|
+
|
215
|
+
buf->ptr[total_size] = '\0';
|
216
|
+
buf->size = total_size;
|
217
|
+
|
218
|
+
return 0;
|
219
|
+
}
|
220
|
+
|
179
221
|
int git_futils_readbuffer_updated(
|
180
|
-
|
222
|
+
git_str *out,
|
223
|
+
const char *path,
|
224
|
+
unsigned char checksum[GIT_HASH_SHA256_SIZE],
|
225
|
+
int *updated)
|
181
226
|
{
|
182
227
|
int error;
|
183
228
|
git_file fd;
|
184
229
|
struct stat st;
|
185
|
-
|
186
|
-
|
230
|
+
git_str buf = GIT_STR_INIT;
|
231
|
+
unsigned char checksum_new[GIT_HASH_SHA256_SIZE];
|
187
232
|
|
188
233
|
GIT_ASSERT_ARG(out);
|
189
234
|
GIT_ASSERT_ARG(path && *path);
|
@@ -192,7 +237,7 @@ int git_futils_readbuffer_updated(
|
|
192
237
|
*updated = 0;
|
193
238
|
|
194
239
|
if (p_stat(path, &st) < 0)
|
195
|
-
return
|
240
|
+
return git_fs_path_set_error(errno, path, "stat");
|
196
241
|
|
197
242
|
|
198
243
|
if (S_ISDIR(st.st_mode)) {
|
@@ -216,23 +261,26 @@ int git_futils_readbuffer_updated(
|
|
216
261
|
p_close(fd);
|
217
262
|
|
218
263
|
if (checksum) {
|
219
|
-
|
220
|
-
|
264
|
+
error = git_hash_buf(checksum_new, buf.ptr,
|
265
|
+
buf.size, GIT_HASH_ALGORITHM_SHA256);
|
266
|
+
|
267
|
+
if (error < 0) {
|
268
|
+
git_str_dispose(&buf);
|
221
269
|
return error;
|
222
270
|
}
|
223
271
|
|
224
272
|
/*
|
225
273
|
* If we were given a checksum, we only want to use it if it's different
|
226
274
|
*/
|
227
|
-
if (!
|
228
|
-
|
275
|
+
if (!memcmp(checksum, checksum_new, GIT_HASH_SHA256_SIZE)) {
|
276
|
+
git_str_dispose(&buf);
|
229
277
|
if (updated)
|
230
278
|
*updated = 0;
|
231
279
|
|
232
280
|
return 0;
|
233
281
|
}
|
234
282
|
|
235
|
-
|
283
|
+
memcpy(checksum, checksum_new, GIT_HASH_SHA256_SIZE);
|
236
284
|
}
|
237
285
|
|
238
286
|
/*
|
@@ -241,19 +289,19 @@ int git_futils_readbuffer_updated(
|
|
241
289
|
if (updated != NULL)
|
242
290
|
*updated = 1;
|
243
291
|
|
244
|
-
|
245
|
-
|
292
|
+
git_str_swap(out, &buf);
|
293
|
+
git_str_dispose(&buf);
|
246
294
|
|
247
295
|
return 0;
|
248
296
|
}
|
249
297
|
|
250
|
-
int git_futils_readbuffer(
|
298
|
+
int git_futils_readbuffer(git_str *buf, const char *path)
|
251
299
|
{
|
252
300
|
return git_futils_readbuffer_updated(buf, path, NULL, NULL);
|
253
301
|
}
|
254
302
|
|
255
303
|
int git_futils_writebuffer(
|
256
|
-
const
|
304
|
+
const git_str *buf, const char *path, int flags, mode_t mode)
|
257
305
|
{
|
258
306
|
int fd, do_fsync = 0, error = 0;
|
259
307
|
|
@@ -266,14 +314,14 @@ int git_futils_writebuffer(
|
|
266
314
|
flags &= ~O_FSYNC;
|
267
315
|
|
268
316
|
if (!mode)
|
269
|
-
mode =
|
317
|
+
mode = GIT_FILEMODE_DEFAULT;
|
270
318
|
|
271
319
|
if ((fd = p_open(path, flags, mode)) < 0) {
|
272
320
|
git_error_set(GIT_ERROR_OS, "could not open '%s' for writing", path);
|
273
321
|
return fd;
|
274
322
|
}
|
275
323
|
|
276
|
-
if ((error = p_write(fd,
|
324
|
+
if ((error = p_write(fd, git_str_cstr(buf), git_str_len(buf))) < 0) {
|
277
325
|
git_error_set(GIT_ERROR_OS, "could not write to '%s'", path);
|
278
326
|
(void)p_close(fd);
|
279
327
|
return error;
|
@@ -415,7 +463,7 @@ GIT_INLINE(int) mkdir_validate_mode(
|
|
415
463
|
}
|
416
464
|
|
417
465
|
GIT_INLINE(int) mkdir_canonicalize(
|
418
|
-
|
466
|
+
git_str *path,
|
419
467
|
uint32_t flags)
|
420
468
|
{
|
421
469
|
ssize_t root_len;
|
@@ -426,7 +474,7 @@ GIT_INLINE(int) mkdir_canonicalize(
|
|
426
474
|
}
|
427
475
|
|
428
476
|
/* Trim trailing slashes (except the root) */
|
429
|
-
if ((root_len =
|
477
|
+
if ((root_len = git_fs_path_root(path->ptr)) < 0)
|
430
478
|
root_len = 0;
|
431
479
|
else
|
432
480
|
root_len++;
|
@@ -436,18 +484,18 @@ GIT_INLINE(int) mkdir_canonicalize(
|
|
436
484
|
|
437
485
|
/* if we are not supposed to made the last element, truncate it */
|
438
486
|
if ((flags & GIT_MKDIR_SKIP_LAST2) != 0) {
|
439
|
-
|
487
|
+
git_fs_path_dirname_r(path, path->ptr);
|
440
488
|
flags |= GIT_MKDIR_SKIP_LAST;
|
441
489
|
}
|
442
490
|
if ((flags & GIT_MKDIR_SKIP_LAST) != 0) {
|
443
|
-
|
491
|
+
git_fs_path_dirname_r(path, path->ptr);
|
444
492
|
}
|
445
493
|
|
446
494
|
/* We were either given the root path (or trimmed it to
|
447
495
|
* the root), we don't have anything to do.
|
448
496
|
*/
|
449
497
|
if (path->size <= (size_t)root_len)
|
450
|
-
|
498
|
+
git_str_clear(path);
|
451
499
|
|
452
500
|
return 0;
|
453
501
|
}
|
@@ -457,20 +505,20 @@ int git_futils_mkdir(
|
|
457
505
|
mode_t mode,
|
458
506
|
uint32_t flags)
|
459
507
|
{
|
460
|
-
|
508
|
+
git_str make_path = GIT_STR_INIT, parent_path = GIT_STR_INIT;
|
461
509
|
const char *relative;
|
462
510
|
struct git_futils_mkdir_options opts = { 0 };
|
463
511
|
struct stat st;
|
464
512
|
size_t depth = 0;
|
465
513
|
int len = 0, root_len, error;
|
466
514
|
|
467
|
-
if ((error =
|
515
|
+
if ((error = git_str_puts(&make_path, path)) < 0 ||
|
468
516
|
(error = mkdir_canonicalize(&make_path, flags)) < 0 ||
|
469
|
-
(error =
|
517
|
+
(error = git_str_puts(&parent_path, make_path.ptr)) < 0 ||
|
470
518
|
make_path.size == 0)
|
471
519
|
goto done;
|
472
520
|
|
473
|
-
root_len =
|
521
|
+
root_len = git_fs_path_root(make_path.ptr);
|
474
522
|
|
475
523
|
/* find the first parent directory that exists. this will be used
|
476
524
|
* as the base to dirname_relative.
|
@@ -489,7 +537,7 @@ int git_futils_mkdir(
|
|
489
537
|
depth++;
|
490
538
|
|
491
539
|
/* examine the parent of the current path */
|
492
|
-
if ((len =
|
540
|
+
if ((len = git_fs_path_dirname_r(&parent_path, parent_path.ptr)) < 0) {
|
493
541
|
error = len;
|
494
542
|
goto done;
|
495
543
|
}
|
@@ -538,8 +586,8 @@ int git_futils_mkdir(
|
|
538
586
|
parent_path.size ? parent_path.ptr : NULL, mode, flags, &opts);
|
539
587
|
|
540
588
|
done:
|
541
|
-
|
542
|
-
|
589
|
+
git_str_dispose(&make_path);
|
590
|
+
git_str_dispose(&parent_path);
|
543
591
|
return error;
|
544
592
|
}
|
545
593
|
|
@@ -555,7 +603,7 @@ int git_futils_mkdir_relative(
|
|
555
603
|
uint32_t flags,
|
556
604
|
struct git_futils_mkdir_options *opts)
|
557
605
|
{
|
558
|
-
|
606
|
+
git_str make_path = GIT_STR_INIT;
|
559
607
|
ssize_t root = 0, min_root_len;
|
560
608
|
char lastch = '/', *tail;
|
561
609
|
struct stat st;
|
@@ -566,7 +614,7 @@ int git_futils_mkdir_relative(
|
|
566
614
|
opts = &empty_opts;
|
567
615
|
|
568
616
|
/* build path and find "root" where we should start calling mkdir */
|
569
|
-
if (
|
617
|
+
if (git_fs_path_join_unrooted(&make_path, relative_path, base, &root) < 0)
|
570
618
|
return -1;
|
571
619
|
|
572
620
|
if ((error = mkdir_canonicalize(&make_path, flags)) < 0 ||
|
@@ -575,10 +623,10 @@ int git_futils_mkdir_relative(
|
|
575
623
|
|
576
624
|
/* if we are not supposed to make the whole path, reset root */
|
577
625
|
if ((flags & GIT_MKDIR_PATH) == 0)
|
578
|
-
root =
|
626
|
+
root = git_str_rfind(&make_path, '/');
|
579
627
|
|
580
628
|
/* advance root past drive name or network mount prefix */
|
581
|
-
min_root_len =
|
629
|
+
min_root_len = git_fs_path_root(make_path.ptr);
|
582
630
|
if (root < min_root_len)
|
583
631
|
root = min_root_len;
|
584
632
|
while (root >= 0 && make_path.ptr[root] == '/')
|
@@ -605,7 +653,8 @@ int git_futils_mkdir_relative(
|
|
605
653
|
*tail = '\0';
|
606
654
|
st.st_mode = 0;
|
607
655
|
|
608
|
-
if (opts->
|
656
|
+
if (opts->cache_pathset &&
|
657
|
+
git_hashset_str_contains(opts->cache_pathset, make_path.ptr))
|
609
658
|
continue;
|
610
659
|
|
611
660
|
/* See what's going on with this path component */
|
@@ -640,17 +689,17 @@ retry_lstat:
|
|
640
689
|
make_path.ptr, &st, (lastch == '\0'), mode, flags, opts)) < 0)
|
641
690
|
goto done;
|
642
691
|
|
643
|
-
if (opts->
|
692
|
+
if (opts->cache_pathset && opts->cache_pool) {
|
644
693
|
char *cache_path;
|
645
694
|
size_t alloc_size;
|
646
695
|
|
647
696
|
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_size, make_path.size, 1);
|
648
|
-
cache_path = git_pool_malloc(opts->
|
697
|
+
cache_path = git_pool_malloc(opts->cache_pool, alloc_size);
|
649
698
|
GIT_ERROR_CHECK_ALLOC(cache_path);
|
650
699
|
|
651
700
|
memcpy(cache_path, make_path.ptr, make_path.size + 1);
|
652
701
|
|
653
|
-
if ((error =
|
702
|
+
if ((error = git_hashset_str_add(opts->cache_pathset, cache_path)) < 0)
|
654
703
|
goto done;
|
655
704
|
}
|
656
705
|
}
|
@@ -670,7 +719,7 @@ retry_lstat:
|
|
670
719
|
}
|
671
720
|
|
672
721
|
done:
|
673
|
-
|
722
|
+
git_str_dispose(&make_path);
|
674
723
|
return error;
|
675
724
|
}
|
676
725
|
|
@@ -694,13 +743,13 @@ static int futils__error_cannot_rmdir(const char *path, const char *filemsg)
|
|
694
743
|
return -1;
|
695
744
|
}
|
696
745
|
|
697
|
-
static int futils__rm_first_parent(
|
746
|
+
static int futils__rm_first_parent(git_str *path, const char *ceiling)
|
698
747
|
{
|
699
748
|
int error = GIT_ENOTFOUND;
|
700
749
|
struct stat st;
|
701
750
|
|
702
751
|
while (error == GIT_ENOTFOUND) {
|
703
|
-
|
752
|
+
git_str_rtruncate_at_char(path, '/');
|
704
753
|
|
705
754
|
if (!path->size || git__prefixcmp(path->ptr, ceiling) != 0)
|
706
755
|
error = 0;
|
@@ -719,7 +768,7 @@ static int futils__rm_first_parent(git_buf *path, const char *ceiling)
|
|
719
768
|
return error;
|
720
769
|
}
|
721
770
|
|
722
|
-
static int futils__rmdir_recurs_foreach(void *opaque,
|
771
|
+
static int futils__rmdir_recurs_foreach(void *opaque, git_str *path)
|
723
772
|
{
|
724
773
|
int error = 0;
|
725
774
|
futils__rmdir_data *data = opaque;
|
@@ -741,13 +790,13 @@ static int futils__rmdir_recurs_foreach(void *opaque, git_buf *path)
|
|
741
790
|
path->ptr, "parent is not directory");
|
742
791
|
}
|
743
792
|
else
|
744
|
-
error =
|
793
|
+
error = git_fs_path_set_error(errno, path->ptr, "rmdir");
|
745
794
|
}
|
746
795
|
|
747
796
|
else if (S_ISDIR(st.st_mode)) {
|
748
797
|
data->depth++;
|
749
798
|
|
750
|
-
error =
|
799
|
+
error = git_fs_path_direach(path, 0, futils__rmdir_recurs_foreach, data);
|
751
800
|
|
752
801
|
data->depth--;
|
753
802
|
|
@@ -762,13 +811,13 @@ static int futils__rmdir_recurs_foreach(void *opaque, git_buf *path)
|
|
762
811
|
(errno == ENOTEMPTY || errno == EEXIST || errno == EBUSY))
|
763
812
|
error = 0;
|
764
813
|
else
|
765
|
-
error =
|
814
|
+
error = git_fs_path_set_error(errno, path->ptr, "rmdir");
|
766
815
|
}
|
767
816
|
}
|
768
817
|
|
769
818
|
else if ((data->flags & GIT_RMDIR_REMOVE_FILES) != 0) {
|
770
819
|
if (p_unlink(path->ptr) < 0)
|
771
|
-
error =
|
820
|
+
error = git_fs_path_set_error(errno, path->ptr, "remove");
|
772
821
|
}
|
773
822
|
|
774
823
|
else if ((data->flags & GIT_RMDIR_SKIP_NONEMPTY) == 0)
|
@@ -792,11 +841,11 @@ static int futils__rmdir_empty_parent(void *opaque, const char *path)
|
|
792
841
|
/* do nothing */
|
793
842
|
} else if ((data->flags & GIT_RMDIR_SKIP_NONEMPTY) == 0 &&
|
794
843
|
en == EBUSY) {
|
795
|
-
error =
|
844
|
+
error = git_fs_path_set_error(errno, path, "rmdir");
|
796
845
|
} else if (en == ENOTEMPTY || en == EEXIST || en == EBUSY) {
|
797
846
|
error = GIT_ITEROVER;
|
798
847
|
} else {
|
799
|
-
error =
|
848
|
+
error = git_fs_path_set_error(errno, path, "rmdir");
|
800
849
|
}
|
801
850
|
}
|
802
851
|
|
@@ -807,11 +856,11 @@ int git_futils_rmdir_r(
|
|
807
856
|
const char *path, const char *base, uint32_t flags)
|
808
857
|
{
|
809
858
|
int error;
|
810
|
-
|
859
|
+
git_str fullpath = GIT_STR_INIT;
|
811
860
|
futils__rmdir_data data;
|
812
861
|
|
813
862
|
/* build path and find "root" where we should start calling mkdir */
|
814
|
-
if (
|
863
|
+
if (git_fs_path_join_unrooted(&fullpath, path, base, NULL) < 0)
|
815
864
|
return -1;
|
816
865
|
|
817
866
|
memset(&data, 0, sizeof(data));
|
@@ -823,7 +872,7 @@ int git_futils_rmdir_r(
|
|
823
872
|
|
824
873
|
/* remove now-empty parents if requested */
|
825
874
|
if (!error && (flags & GIT_RMDIR_EMPTY_PARENTS) != 0)
|
826
|
-
error =
|
875
|
+
error = git_fs_path_walk_up(
|
827
876
|
&fullpath, base, futils__rmdir_empty_parent, &data);
|
828
877
|
|
829
878
|
if (error == GIT_ITEROVER) {
|
@@ -831,7 +880,7 @@ int git_futils_rmdir_r(
|
|
831
880
|
error = 0;
|
832
881
|
}
|
833
882
|
|
834
|
-
|
883
|
+
git_str_dispose(&fullpath);
|
835
884
|
|
836
885
|
return error;
|
837
886
|
}
|
@@ -850,7 +899,7 @@ int git_futils_fake_symlink(const char *target, const char *path)
|
|
850
899
|
static int cp_by_fd(int ifd, int ofd, bool close_fd_when_done)
|
851
900
|
{
|
852
901
|
int error = 0;
|
853
|
-
char buffer[
|
902
|
+
char buffer[GIT_BUFSIZE_FILEIO];
|
854
903
|
ssize_t len = 0;
|
855
904
|
|
856
905
|
while (!error && (len = p_read(ifd, buffer, sizeof(buffer))) > 0)
|
@@ -884,7 +933,7 @@ int git_futils_cp(const char *from, const char *to, mode_t filemode)
|
|
884
933
|
|
885
934
|
if ((ofd = p_open(to, O_WRONLY | O_CREAT | O_EXCL, filemode)) < 0) {
|
886
935
|
p_close(ifd);
|
887
|
-
return
|
936
|
+
return git_fs_path_set_error(errno, to, "open for writing");
|
888
937
|
}
|
889
938
|
|
890
939
|
return cp_by_fd(ifd, ofd, true);
|
@@ -900,7 +949,7 @@ int git_futils_touch(const char *path, time_t *when)
|
|
900
949
|
|
901
950
|
ret = p_utimes(path, times);
|
902
951
|
|
903
|
-
return (ret < 0) ?
|
952
|
+
return (ret < 0) ? git_fs_path_set_error(errno, path, "touch") : 0;
|
904
953
|
}
|
905
954
|
|
906
955
|
static int cp_link(const char *from, const char *to, size_t link_size)
|
@@ -935,7 +984,7 @@ static int cp_link(const char *from, const char *to, size_t link_size)
|
|
935
984
|
|
936
985
|
typedef struct {
|
937
986
|
const char *to_root;
|
938
|
-
|
987
|
+
git_str to;
|
939
988
|
ssize_t from_prefix;
|
940
989
|
uint32_t flags;
|
941
990
|
uint32_t mkdir_flags;
|
@@ -944,7 +993,7 @@ typedef struct {
|
|
944
993
|
|
945
994
|
#define GIT_CPDIR__MKDIR_DONE_FOR_TO_ROOT (1u << 10)
|
946
995
|
|
947
|
-
static int _cp_r_mkdir(cp_r_info *info,
|
996
|
+
static int _cp_r_mkdir(cp_r_info *info, git_str *from)
|
948
997
|
{
|
949
998
|
int error = 0;
|
950
999
|
|
@@ -966,7 +1015,7 @@ static int _cp_r_mkdir(cp_r_info *info, git_buf *from)
|
|
966
1015
|
return error;
|
967
1016
|
}
|
968
1017
|
|
969
|
-
static int _cp_r_callback(void *ref,
|
1018
|
+
static int _cp_r_callback(void *ref, git_str *from)
|
970
1019
|
{
|
971
1020
|
int error = 0;
|
972
1021
|
cp_r_info *info = ref;
|
@@ -974,14 +1023,14 @@ static int _cp_r_callback(void *ref, git_buf *from)
|
|
974
1023
|
bool exists = false;
|
975
1024
|
|
976
1025
|
if ((info->flags & GIT_CPDIR_COPY_DOTFILES) == 0 &&
|
977
|
-
from->ptr[
|
1026
|
+
from->ptr[git_fs_path_basename_offset(from)] == '.')
|
978
1027
|
return 0;
|
979
1028
|
|
980
|
-
if ((error =
|
1029
|
+
if ((error = git_str_joinpath(
|
981
1030
|
&info->to, info->to_root, from->ptr + info->from_prefix)) < 0)
|
982
1031
|
return error;
|
983
1032
|
|
984
|
-
if (!(error =
|
1033
|
+
if (!(error = git_fs_path_lstat(info->to.ptr, &to_st)))
|
985
1034
|
exists = true;
|
986
1035
|
else if (error != GIT_ENOTFOUND)
|
987
1036
|
return error;
|
@@ -990,7 +1039,7 @@ static int _cp_r_callback(void *ref, git_buf *from)
|
|
990
1039
|
error = 0;
|
991
1040
|
}
|
992
1041
|
|
993
|
-
if ((error =
|
1042
|
+
if ((error = git_fs_path_lstat(from->ptr, &from_st)) < 0)
|
994
1043
|
return error;
|
995
1044
|
|
996
1045
|
if (S_ISDIR(from_st.st_mode)) {
|
@@ -1006,7 +1055,7 @@ static int _cp_r_callback(void *ref, git_buf *from)
|
|
1006
1055
|
|
1007
1056
|
/* recurse onto target directory */
|
1008
1057
|
if (!error && (!exists || S_ISDIR(to_st.st_mode)))
|
1009
|
-
error =
|
1058
|
+
error = git_fs_path_direach(from, 0, _cp_r_callback, info);
|
1010
1059
|
|
1011
1060
|
if (oldmode != 0)
|
1012
1061
|
info->dirmode = oldmode;
|
@@ -1061,10 +1110,10 @@ int git_futils_cp_r(
|
|
1061
1110
|
mode_t dirmode)
|
1062
1111
|
{
|
1063
1112
|
int error;
|
1064
|
-
|
1113
|
+
git_str path = GIT_STR_INIT;
|
1065
1114
|
cp_r_info info;
|
1066
1115
|
|
1067
|
-
if (
|
1116
|
+
if (git_str_joinpath(&path, from, "") < 0) /* ensure trailing slash */
|
1068
1117
|
return -1;
|
1069
1118
|
|
1070
1119
|
memset(&info, 0, sizeof(info));
|
@@ -1072,7 +1121,7 @@ int git_futils_cp_r(
|
|
1072
1121
|
info.flags = flags;
|
1073
1122
|
info.dirmode = dirmode;
|
1074
1123
|
info.from_prefix = path.size;
|
1075
|
-
|
1124
|
+
git_str_init(&info.to, 0);
|
1076
1125
|
|
1077
1126
|
/* precalculate mkdir flags */
|
1078
1127
|
if ((flags & GIT_CPDIR_CREATE_EMPTY_DIRS) == 0) {
|
@@ -1090,8 +1139,8 @@ int git_futils_cp_r(
|
|
1090
1139
|
|
1091
1140
|
error = _cp_r_callback(&info, &path);
|
1092
1141
|
|
1093
|
-
|
1094
|
-
|
1142
|
+
git_str_dispose(&path);
|
1143
|
+
git_str_dispose(&info.to);
|
1095
1144
|
|
1096
1145
|
return error;
|
1097
1146
|
}
|
@@ -1179,7 +1228,7 @@ int git_futils_fsync_parent(const char *path)
|
|
1179
1228
|
char *parent;
|
1180
1229
|
int error;
|
1181
1230
|
|
1182
|
-
if ((parent =
|
1231
|
+
if ((parent = git_fs_path_dirname(path)) == NULL)
|
1183
1232
|
return -1;
|
1184
1233
|
|
1185
1234
|
error = git_futils_fsync_dir(parent);
|