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
data/vendor/libgit2/src/sysdir.c
DELETED
@@ -1,347 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Copyright (C) the libgit2 contributors. All rights reserved.
|
3
|
-
*
|
4
|
-
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
5
|
-
* a Linking Exception. For full terms see the included COPYING file.
|
6
|
-
*/
|
7
|
-
|
8
|
-
#include "sysdir.h"
|
9
|
-
|
10
|
-
#include "runtime.h"
|
11
|
-
#include "buffer.h"
|
12
|
-
#include "path.h"
|
13
|
-
#include <ctype.h>
|
14
|
-
#if GIT_WIN32
|
15
|
-
#include "win32/findfile.h"
|
16
|
-
#else
|
17
|
-
#include <unistd.h>
|
18
|
-
#include <pwd.h>
|
19
|
-
#endif
|
20
|
-
|
21
|
-
static int git_sysdir_guess_programdata_dirs(git_buf *out)
|
22
|
-
{
|
23
|
-
#ifdef GIT_WIN32
|
24
|
-
return git_win32__find_programdata_dirs(out);
|
25
|
-
#else
|
26
|
-
git_buf_clear(out);
|
27
|
-
return 0;
|
28
|
-
#endif
|
29
|
-
}
|
30
|
-
|
31
|
-
static int git_sysdir_guess_system_dirs(git_buf *out)
|
32
|
-
{
|
33
|
-
#ifdef GIT_WIN32
|
34
|
-
return git_win32__find_system_dirs(out, L"etc\\");
|
35
|
-
#else
|
36
|
-
return git_buf_sets(out, "/etc");
|
37
|
-
#endif
|
38
|
-
}
|
39
|
-
|
40
|
-
#ifndef GIT_WIN32
|
41
|
-
static int get_passwd_home(git_buf *out, uid_t uid)
|
42
|
-
{
|
43
|
-
struct passwd pwd, *pwdptr;
|
44
|
-
char *buf = NULL;
|
45
|
-
long buflen;
|
46
|
-
int error;
|
47
|
-
|
48
|
-
GIT_ASSERT_ARG(out);
|
49
|
-
|
50
|
-
if ((buflen = sysconf(_SC_GETPW_R_SIZE_MAX)) == -1)
|
51
|
-
buflen = 1024;
|
52
|
-
|
53
|
-
do {
|
54
|
-
buf = git__realloc(buf, buflen);
|
55
|
-
error = getpwuid_r(uid, &pwd, buf, buflen, &pwdptr);
|
56
|
-
buflen *= 2;
|
57
|
-
} while (error == ERANGE && buflen <= 8192);
|
58
|
-
|
59
|
-
if (error) {
|
60
|
-
git_error_set(GIT_ERROR_OS, "failed to get passwd entry");
|
61
|
-
goto out;
|
62
|
-
}
|
63
|
-
|
64
|
-
if (!pwdptr) {
|
65
|
-
git_error_set(GIT_ERROR_OS, "no passwd entry found for user");
|
66
|
-
goto out;
|
67
|
-
}
|
68
|
-
|
69
|
-
if ((error = git_buf_puts(out, pwdptr->pw_dir)) < 0)
|
70
|
-
goto out;
|
71
|
-
|
72
|
-
out:
|
73
|
-
git__free(buf);
|
74
|
-
return error;
|
75
|
-
}
|
76
|
-
#endif
|
77
|
-
|
78
|
-
static int git_sysdir_guess_global_dirs(git_buf *out)
|
79
|
-
{
|
80
|
-
#ifdef GIT_WIN32
|
81
|
-
return git_win32__find_global_dirs(out);
|
82
|
-
#else
|
83
|
-
int error;
|
84
|
-
uid_t uid, euid;
|
85
|
-
const char *sandbox_id;
|
86
|
-
|
87
|
-
uid = getuid();
|
88
|
-
euid = geteuid();
|
89
|
-
|
90
|
-
/**
|
91
|
-
* If APP_SANDBOX_CONTAINER_ID is set, we are running in a
|
92
|
-
* sandboxed environment on macOS.
|
93
|
-
*/
|
94
|
-
sandbox_id = getenv("APP_SANDBOX_CONTAINER_ID");
|
95
|
-
|
96
|
-
/*
|
97
|
-
* In case we are running setuid, use the configuration
|
98
|
-
* of the effective user.
|
99
|
-
*
|
100
|
-
* If we are running in a sandboxed environment on macOS,
|
101
|
-
* we have to get the HOME dir from the password entry file.
|
102
|
-
*/
|
103
|
-
if (!sandbox_id && uid == euid)
|
104
|
-
error = git__getenv(out, "HOME");
|
105
|
-
else
|
106
|
-
error = get_passwd_home(out, euid);
|
107
|
-
|
108
|
-
if (error == GIT_ENOTFOUND) {
|
109
|
-
git_error_clear();
|
110
|
-
error = 0;
|
111
|
-
}
|
112
|
-
|
113
|
-
return error;
|
114
|
-
#endif
|
115
|
-
}
|
116
|
-
|
117
|
-
static int git_sysdir_guess_xdg_dirs(git_buf *out)
|
118
|
-
{
|
119
|
-
#ifdef GIT_WIN32
|
120
|
-
return git_win32__find_xdg_dirs(out);
|
121
|
-
#else
|
122
|
-
git_buf env = GIT_BUF_INIT;
|
123
|
-
int error;
|
124
|
-
uid_t uid, euid;
|
125
|
-
|
126
|
-
uid = getuid();
|
127
|
-
euid = geteuid();
|
128
|
-
|
129
|
-
/*
|
130
|
-
* In case we are running setuid, only look up passwd
|
131
|
-
* directory of the effective user.
|
132
|
-
*/
|
133
|
-
if (uid == euid) {
|
134
|
-
if ((error = git__getenv(&env, "XDG_CONFIG_HOME")) == 0)
|
135
|
-
error = git_buf_joinpath(out, env.ptr, "git");
|
136
|
-
|
137
|
-
if (error == GIT_ENOTFOUND && (error = git__getenv(&env, "HOME")) == 0)
|
138
|
-
error = git_buf_joinpath(out, env.ptr, ".config/git");
|
139
|
-
} else {
|
140
|
-
if ((error = get_passwd_home(&env, euid)) == 0)
|
141
|
-
error = git_buf_joinpath(out, env.ptr, ".config/git");
|
142
|
-
}
|
143
|
-
|
144
|
-
if (error == GIT_ENOTFOUND) {
|
145
|
-
git_error_clear();
|
146
|
-
error = 0;
|
147
|
-
}
|
148
|
-
|
149
|
-
git_buf_dispose(&env);
|
150
|
-
return error;
|
151
|
-
#endif
|
152
|
-
}
|
153
|
-
|
154
|
-
static int git_sysdir_guess_template_dirs(git_buf *out)
|
155
|
-
{
|
156
|
-
#ifdef GIT_WIN32
|
157
|
-
return git_win32__find_system_dirs(out, L"share\\git-core\\templates");
|
158
|
-
#else
|
159
|
-
return git_buf_sets(out, "/usr/share/git-core/templates");
|
160
|
-
#endif
|
161
|
-
}
|
162
|
-
|
163
|
-
struct git_sysdir__dir {
|
164
|
-
git_buf buf;
|
165
|
-
int (*guess)(git_buf *out);
|
166
|
-
};
|
167
|
-
|
168
|
-
static struct git_sysdir__dir git_sysdir__dirs[] = {
|
169
|
-
{ GIT_BUF_INIT, git_sysdir_guess_system_dirs },
|
170
|
-
{ GIT_BUF_INIT, git_sysdir_guess_global_dirs },
|
171
|
-
{ GIT_BUF_INIT, git_sysdir_guess_xdg_dirs },
|
172
|
-
{ GIT_BUF_INIT, git_sysdir_guess_programdata_dirs },
|
173
|
-
{ GIT_BUF_INIT, git_sysdir_guess_template_dirs },
|
174
|
-
};
|
175
|
-
|
176
|
-
static void git_sysdir_global_shutdown(void)
|
177
|
-
{
|
178
|
-
size_t i;
|
179
|
-
|
180
|
-
for (i = 0; i < ARRAY_SIZE(git_sysdir__dirs); ++i)
|
181
|
-
git_buf_dispose(&git_sysdir__dirs[i].buf);
|
182
|
-
}
|
183
|
-
|
184
|
-
int git_sysdir_global_init(void)
|
185
|
-
{
|
186
|
-
size_t i;
|
187
|
-
int error = 0;
|
188
|
-
|
189
|
-
for (i = 0; !error && i < ARRAY_SIZE(git_sysdir__dirs); i++)
|
190
|
-
error = git_sysdir__dirs[i].guess(&git_sysdir__dirs[i].buf);
|
191
|
-
|
192
|
-
return git_runtime_shutdown_register(git_sysdir_global_shutdown);
|
193
|
-
}
|
194
|
-
|
195
|
-
static int git_sysdir_check_selector(git_sysdir_t which)
|
196
|
-
{
|
197
|
-
if (which < ARRAY_SIZE(git_sysdir__dirs))
|
198
|
-
return 0;
|
199
|
-
|
200
|
-
git_error_set(GIT_ERROR_INVALID, "config directory selector out of range");
|
201
|
-
return -1;
|
202
|
-
}
|
203
|
-
|
204
|
-
|
205
|
-
int git_sysdir_get(const git_buf **out, git_sysdir_t which)
|
206
|
-
{
|
207
|
-
GIT_ASSERT_ARG(out);
|
208
|
-
|
209
|
-
*out = NULL;
|
210
|
-
|
211
|
-
GIT_ERROR_CHECK_ERROR(git_sysdir_check_selector(which));
|
212
|
-
|
213
|
-
*out = &git_sysdir__dirs[which].buf;
|
214
|
-
return 0;
|
215
|
-
}
|
216
|
-
|
217
|
-
#define PATH_MAGIC "$PATH"
|
218
|
-
|
219
|
-
int git_sysdir_set(git_sysdir_t which, const char *search_path)
|
220
|
-
{
|
221
|
-
const char *expand_path = NULL;
|
222
|
-
git_buf merge = GIT_BUF_INIT;
|
223
|
-
|
224
|
-
GIT_ERROR_CHECK_ERROR(git_sysdir_check_selector(which));
|
225
|
-
|
226
|
-
if (search_path != NULL)
|
227
|
-
expand_path = strstr(search_path, PATH_MAGIC);
|
228
|
-
|
229
|
-
/* reset the default if this path has been cleared */
|
230
|
-
if (!search_path)
|
231
|
-
git_sysdir__dirs[which].guess(&git_sysdir__dirs[which].buf);
|
232
|
-
|
233
|
-
/* if $PATH is not referenced, then just set the path */
|
234
|
-
if (!expand_path) {
|
235
|
-
if (search_path)
|
236
|
-
git_buf_sets(&git_sysdir__dirs[which].buf, search_path);
|
237
|
-
|
238
|
-
goto done;
|
239
|
-
}
|
240
|
-
|
241
|
-
/* otherwise set to join(before $PATH, old value, after $PATH) */
|
242
|
-
if (expand_path > search_path)
|
243
|
-
git_buf_set(&merge, search_path, expand_path - search_path);
|
244
|
-
|
245
|
-
if (git_buf_len(&git_sysdir__dirs[which].buf))
|
246
|
-
git_buf_join(&merge, GIT_PATH_LIST_SEPARATOR,
|
247
|
-
merge.ptr, git_sysdir__dirs[which].buf.ptr);
|
248
|
-
|
249
|
-
expand_path += strlen(PATH_MAGIC);
|
250
|
-
if (*expand_path)
|
251
|
-
git_buf_join(&merge, GIT_PATH_LIST_SEPARATOR, merge.ptr, expand_path);
|
252
|
-
|
253
|
-
git_buf_swap(&git_sysdir__dirs[which].buf, &merge);
|
254
|
-
git_buf_dispose(&merge);
|
255
|
-
|
256
|
-
done:
|
257
|
-
if (git_buf_oom(&git_sysdir__dirs[which].buf))
|
258
|
-
return -1;
|
259
|
-
|
260
|
-
return 0;
|
261
|
-
}
|
262
|
-
|
263
|
-
static int git_sysdir_find_in_dirlist(
|
264
|
-
git_buf *path,
|
265
|
-
const char *name,
|
266
|
-
git_sysdir_t which,
|
267
|
-
const char *label)
|
268
|
-
{
|
269
|
-
size_t len;
|
270
|
-
const char *scan, *next = NULL;
|
271
|
-
const git_buf *syspath;
|
272
|
-
|
273
|
-
GIT_ERROR_CHECK_ERROR(git_sysdir_get(&syspath, which));
|
274
|
-
if (!syspath || !git_buf_len(syspath))
|
275
|
-
goto done;
|
276
|
-
|
277
|
-
for (scan = git_buf_cstr(syspath); scan; scan = next) {
|
278
|
-
/* find unescaped separator or end of string */
|
279
|
-
for (next = scan; *next; ++next) {
|
280
|
-
if (*next == GIT_PATH_LIST_SEPARATOR &&
|
281
|
-
(next <= scan || next[-1] != '\\'))
|
282
|
-
break;
|
283
|
-
}
|
284
|
-
|
285
|
-
len = (size_t)(next - scan);
|
286
|
-
next = (*next ? next + 1 : NULL);
|
287
|
-
if (!len)
|
288
|
-
continue;
|
289
|
-
|
290
|
-
GIT_ERROR_CHECK_ERROR(git_buf_set(path, scan, len));
|
291
|
-
if (name)
|
292
|
-
GIT_ERROR_CHECK_ERROR(git_buf_joinpath(path, path->ptr, name));
|
293
|
-
|
294
|
-
if (git_path_exists(path->ptr))
|
295
|
-
return 0;
|
296
|
-
}
|
297
|
-
|
298
|
-
done:
|
299
|
-
if (name)
|
300
|
-
git_error_set(GIT_ERROR_OS, "the %s file '%s' doesn't exist", label, name);
|
301
|
-
else
|
302
|
-
git_error_set(GIT_ERROR_OS, "the %s directory doesn't exist", label);
|
303
|
-
git_buf_dispose(path);
|
304
|
-
return GIT_ENOTFOUND;
|
305
|
-
}
|
306
|
-
|
307
|
-
int git_sysdir_find_system_file(git_buf *path, const char *filename)
|
308
|
-
{
|
309
|
-
return git_sysdir_find_in_dirlist(
|
310
|
-
path, filename, GIT_SYSDIR_SYSTEM, "system");
|
311
|
-
}
|
312
|
-
|
313
|
-
int git_sysdir_find_global_file(git_buf *path, const char *filename)
|
314
|
-
{
|
315
|
-
return git_sysdir_find_in_dirlist(
|
316
|
-
path, filename, GIT_SYSDIR_GLOBAL, "global");
|
317
|
-
}
|
318
|
-
|
319
|
-
int git_sysdir_find_xdg_file(git_buf *path, const char *filename)
|
320
|
-
{
|
321
|
-
return git_sysdir_find_in_dirlist(
|
322
|
-
path, filename, GIT_SYSDIR_XDG, "global/xdg");
|
323
|
-
}
|
324
|
-
|
325
|
-
int git_sysdir_find_programdata_file(git_buf *path, const char *filename)
|
326
|
-
{
|
327
|
-
return git_sysdir_find_in_dirlist(
|
328
|
-
path, filename, GIT_SYSDIR_PROGRAMDATA, "ProgramData");
|
329
|
-
}
|
330
|
-
|
331
|
-
int git_sysdir_find_template_dir(git_buf *path)
|
332
|
-
{
|
333
|
-
return git_sysdir_find_in_dirlist(
|
334
|
-
path, NULL, GIT_SYSDIR_TEMPLATE, "template");
|
335
|
-
}
|
336
|
-
|
337
|
-
int git_sysdir_expand_global_file(git_buf *path, const char *filename)
|
338
|
-
{
|
339
|
-
int error;
|
340
|
-
|
341
|
-
if ((error = git_sysdir_find_global_file(path, NULL)) == 0) {
|
342
|
-
if (filename)
|
343
|
-
error = git_buf_joinpath(path, path->ptr, filename);
|
344
|
-
}
|
345
|
-
|
346
|
-
return error;
|
347
|
-
}
|
@@ -1,84 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Copyright (C) the libgit2 contributors. All rights reserved.
|
3
|
-
*
|
4
|
-
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
5
|
-
* a Linking Exception. For full terms see the included COPYING file.
|
6
|
-
*/
|
7
|
-
|
8
|
-
#include "threadstate.h"
|
9
|
-
#include "runtime.h"
|
10
|
-
|
11
|
-
/**
|
12
|
-
* Handle the thread-local state
|
13
|
-
*
|
14
|
-
* `git_threadstate_global_init` will be called as part
|
15
|
-
* of `git_libgit2_init` (which itself must be called
|
16
|
-
* before calling any other function in the library).
|
17
|
-
*
|
18
|
-
* This function allocates a TLS index to store the per-
|
19
|
-
* thread state.
|
20
|
-
*
|
21
|
-
* Any internal method that requires thread-local state
|
22
|
-
* will then call `git_threadstate_get()` which returns a
|
23
|
-
* pointer to the thread-local state structure; this
|
24
|
-
* structure is lazily allocated on each thread.
|
25
|
-
*
|
26
|
-
* This mechanism will register a shutdown handler
|
27
|
-
* (`git_threadstate_global_shutdown`) which will free the
|
28
|
-
* TLS index. This shutdown handler will be called by
|
29
|
-
* `git_libgit2_shutdown`.
|
30
|
-
*/
|
31
|
-
|
32
|
-
static git_tlsdata_key tls_key;
|
33
|
-
|
34
|
-
static void threadstate_dispose(git_threadstate *threadstate)
|
35
|
-
{
|
36
|
-
if (!threadstate)
|
37
|
-
return;
|
38
|
-
|
39
|
-
if (threadstate->error_t.message != git_buf__initbuf)
|
40
|
-
git__free(threadstate->error_t.message);
|
41
|
-
threadstate->error_t.message = NULL;
|
42
|
-
}
|
43
|
-
|
44
|
-
static void GIT_SYSTEM_CALL threadstate_free(void *threadstate)
|
45
|
-
{
|
46
|
-
threadstate_dispose(threadstate);
|
47
|
-
git__free(threadstate);
|
48
|
-
}
|
49
|
-
|
50
|
-
static void git_threadstate_global_shutdown(void)
|
51
|
-
{
|
52
|
-
git_threadstate *threadstate;
|
53
|
-
|
54
|
-
threadstate = git_tlsdata_get(tls_key);
|
55
|
-
git_tlsdata_set(tls_key, NULL);
|
56
|
-
|
57
|
-
threadstate_dispose(threadstate);
|
58
|
-
git__free(threadstate);
|
59
|
-
|
60
|
-
git_tlsdata_dispose(tls_key);
|
61
|
-
}
|
62
|
-
|
63
|
-
int git_threadstate_global_init(void)
|
64
|
-
{
|
65
|
-
if (git_tlsdata_init(&tls_key, &threadstate_free) != 0)
|
66
|
-
return -1;
|
67
|
-
|
68
|
-
return git_runtime_shutdown_register(git_threadstate_global_shutdown);
|
69
|
-
}
|
70
|
-
|
71
|
-
git_threadstate *git_threadstate_get(void)
|
72
|
-
{
|
73
|
-
git_threadstate *threadstate;
|
74
|
-
|
75
|
-
if ((threadstate = git_tlsdata_get(tls_key)) != NULL)
|
76
|
-
return threadstate;
|
77
|
-
|
78
|
-
if ((threadstate = git__calloc(1, sizeof(git_threadstate))) == NULL ||
|
79
|
-
git_buf_init(&threadstate->error_buf, 0) < 0)
|
80
|
-
return NULL;
|
81
|
-
|
82
|
-
git_tlsdata_set(tls_key, threadstate);
|
83
|
-
return threadstate;
|
84
|
-
}
|
@@ -1,24 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Copyright (C) the libgit2 contributors. All rights reserved.
|
3
|
-
*
|
4
|
-
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
5
|
-
* a Linking Exception. For full terms see the included COPYING file.
|
6
|
-
*/
|
7
|
-
#ifndef INCLUDE_threadstate_h__
|
8
|
-
#define INCLUDE_threadstate_h__
|
9
|
-
|
10
|
-
#include "common.h"
|
11
|
-
|
12
|
-
typedef struct {
|
13
|
-
git_error *last_error;
|
14
|
-
git_error error_t;
|
15
|
-
git_buf error_buf;
|
16
|
-
char oid_fmt[GIT_OID_HEXSZ+1];
|
17
|
-
} git_threadstate;
|
18
|
-
|
19
|
-
extern int git_threadstate_global_init(void);
|
20
|
-
extern git_threadstate *git_threadstate_get(void);
|
21
|
-
|
22
|
-
#define GIT_THREADSTATE (git_threadstate_get())
|
23
|
-
|
24
|
-
#endif
|
@@ -1,230 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Copyright (C) the libgit2 contributors. All rights reserved.
|
3
|
-
*
|
4
|
-
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
5
|
-
* a Linking Exception. For full terms see the included COPYING file.
|
6
|
-
*/
|
7
|
-
|
8
|
-
#include "findfile.h"
|
9
|
-
|
10
|
-
#include "path_w32.h"
|
11
|
-
#include "utf-conv.h"
|
12
|
-
#include "path.h"
|
13
|
-
|
14
|
-
#define REG_MSYSGIT_INSTALL_LOCAL L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Git_is1"
|
15
|
-
|
16
|
-
#ifndef _WIN64
|
17
|
-
#define REG_MSYSGIT_INSTALL REG_MSYSGIT_INSTALL_LOCAL
|
18
|
-
#else
|
19
|
-
#define REG_MSYSGIT_INSTALL L"SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Git_is1"
|
20
|
-
#endif
|
21
|
-
|
22
|
-
typedef struct {
|
23
|
-
git_win32_path path;
|
24
|
-
DWORD len;
|
25
|
-
} _findfile_path;
|
26
|
-
|
27
|
-
static int git_win32__expand_path(_findfile_path *dest, const wchar_t *src)
|
28
|
-
{
|
29
|
-
dest->len = ExpandEnvironmentStringsW(src, dest->path, ARRAY_SIZE(dest->path));
|
30
|
-
|
31
|
-
if (!dest->len || dest->len > ARRAY_SIZE(dest->path))
|
32
|
-
return -1;
|
33
|
-
|
34
|
-
return 0;
|
35
|
-
}
|
36
|
-
|
37
|
-
static int win32_path_to_8(git_buf *dest, const wchar_t *src)
|
38
|
-
{
|
39
|
-
git_win32_utf8_path utf8_path;
|
40
|
-
|
41
|
-
if (git_win32_path_to_utf8(utf8_path, src) < 0) {
|
42
|
-
git_error_set(GIT_ERROR_OS, "unable to convert path to UTF-8");
|
43
|
-
return -1;
|
44
|
-
}
|
45
|
-
|
46
|
-
/* Convert backslashes to forward slashes */
|
47
|
-
git_path_mkposix(utf8_path);
|
48
|
-
|
49
|
-
return git_buf_sets(dest, utf8_path);
|
50
|
-
}
|
51
|
-
|
52
|
-
static wchar_t *win32_walkpath(wchar_t *path, wchar_t *buf, size_t buflen)
|
53
|
-
{
|
54
|
-
wchar_t term, *base = path;
|
55
|
-
|
56
|
-
GIT_ASSERT_ARG_WITH_RETVAL(path, NULL);
|
57
|
-
GIT_ASSERT_ARG_WITH_RETVAL(buf, NULL);
|
58
|
-
GIT_ASSERT_ARG_WITH_RETVAL(buflen, NULL);
|
59
|
-
|
60
|
-
term = (*path == L'"') ? *path++ : L';';
|
61
|
-
|
62
|
-
for (buflen--; *path && *path != term && buflen; buflen--)
|
63
|
-
*buf++ = *path++;
|
64
|
-
|
65
|
-
*buf = L'\0'; /* reserved a byte via initial subtract */
|
66
|
-
|
67
|
-
while (*path == term || *path == L';')
|
68
|
-
path++;
|
69
|
-
|
70
|
-
return (path != base) ? path : NULL;
|
71
|
-
}
|
72
|
-
|
73
|
-
static int win32_find_git_in_path(git_buf *buf, const wchar_t *gitexe, const wchar_t *subdir)
|
74
|
-
{
|
75
|
-
wchar_t *env = _wgetenv(L"PATH"), lastch;
|
76
|
-
_findfile_path root;
|
77
|
-
size_t gitexe_len = wcslen(gitexe);
|
78
|
-
|
79
|
-
if (!env)
|
80
|
-
return -1;
|
81
|
-
|
82
|
-
while ((env = win32_walkpath(env, root.path, MAX_PATH-1)) && *root.path) {
|
83
|
-
root.len = (DWORD)wcslen(root.path);
|
84
|
-
lastch = root.path[root.len - 1];
|
85
|
-
|
86
|
-
/* ensure trailing slash (MAX_PATH-1 to walkpath guarantees space) */
|
87
|
-
if (lastch != L'/' && lastch != L'\\') {
|
88
|
-
root.path[root.len++] = L'\\';
|
89
|
-
root.path[root.len] = L'\0';
|
90
|
-
}
|
91
|
-
|
92
|
-
if (root.len + gitexe_len >= MAX_PATH)
|
93
|
-
continue;
|
94
|
-
wcscpy(&root.path[root.len], gitexe);
|
95
|
-
|
96
|
-
if (_waccess(root.path, F_OK) == 0 && root.len > 5) {
|
97
|
-
/* replace "bin\\" or "cmd\\" with subdir */
|
98
|
-
wcscpy(&root.path[root.len - 4], subdir);
|
99
|
-
|
100
|
-
win32_path_to_8(buf, root.path);
|
101
|
-
return 0;
|
102
|
-
}
|
103
|
-
}
|
104
|
-
|
105
|
-
return GIT_ENOTFOUND;
|
106
|
-
}
|
107
|
-
|
108
|
-
static int win32_find_git_in_registry(
|
109
|
-
git_buf *buf, const HKEY hive, const wchar_t *key, const wchar_t *subdir)
|
110
|
-
{
|
111
|
-
HKEY hKey;
|
112
|
-
int error = GIT_ENOTFOUND;
|
113
|
-
|
114
|
-
GIT_ASSERT_ARG(buf);
|
115
|
-
|
116
|
-
if (!RegOpenKeyExW(hive, key, 0, KEY_READ, &hKey)) {
|
117
|
-
DWORD dwType, cbData;
|
118
|
-
git_win32_path path;
|
119
|
-
|
120
|
-
/* Ensure that the buffer is big enough to have the suffix attached
|
121
|
-
* after we receive the result. */
|
122
|
-
cbData = (DWORD)(sizeof(path) - wcslen(subdir) * sizeof(wchar_t));
|
123
|
-
|
124
|
-
/* InstallLocation points to the root of the git directory */
|
125
|
-
if (!RegQueryValueExW(hKey, L"InstallLocation", NULL, &dwType, (LPBYTE)path, &cbData) &&
|
126
|
-
dwType == REG_SZ) {
|
127
|
-
|
128
|
-
/* Append the suffix */
|
129
|
-
wcscat(path, subdir);
|
130
|
-
|
131
|
-
/* Convert to UTF-8, with forward slashes, and output the path
|
132
|
-
* to the provided buffer */
|
133
|
-
if (!win32_path_to_8(buf, path))
|
134
|
-
error = 0;
|
135
|
-
}
|
136
|
-
|
137
|
-
RegCloseKey(hKey);
|
138
|
-
}
|
139
|
-
|
140
|
-
return error;
|
141
|
-
}
|
142
|
-
|
143
|
-
static int win32_find_existing_dirs(
|
144
|
-
git_buf *out, const wchar_t *tmpl[])
|
145
|
-
{
|
146
|
-
_findfile_path path16;
|
147
|
-
git_buf buf = GIT_BUF_INIT;
|
148
|
-
|
149
|
-
git_buf_clear(out);
|
150
|
-
|
151
|
-
for (; *tmpl != NULL; tmpl++) {
|
152
|
-
if (!git_win32__expand_path(&path16, *tmpl) &&
|
153
|
-
path16.path[0] != L'%' &&
|
154
|
-
!_waccess(path16.path, F_OK))
|
155
|
-
{
|
156
|
-
win32_path_to_8(&buf, path16.path);
|
157
|
-
|
158
|
-
if (buf.size)
|
159
|
-
git_buf_join(out, GIT_PATH_LIST_SEPARATOR, out->ptr, buf.ptr);
|
160
|
-
}
|
161
|
-
}
|
162
|
-
|
163
|
-
git_buf_dispose(&buf);
|
164
|
-
|
165
|
-
return (git_buf_oom(out) ? -1 : 0);
|
166
|
-
}
|
167
|
-
|
168
|
-
int git_win32__find_system_dirs(git_buf *out, const wchar_t *subdir)
|
169
|
-
{
|
170
|
-
git_buf buf = GIT_BUF_INIT;
|
171
|
-
|
172
|
-
/* directories where git.exe & git.cmd are found */
|
173
|
-
if (!win32_find_git_in_path(&buf, L"git.exe", subdir) && buf.size)
|
174
|
-
git_buf_set(out, buf.ptr, buf.size);
|
175
|
-
else
|
176
|
-
git_buf_clear(out);
|
177
|
-
|
178
|
-
if (!win32_find_git_in_path(&buf, L"git.cmd", subdir) && buf.size)
|
179
|
-
git_buf_join(out, GIT_PATH_LIST_SEPARATOR, out->ptr, buf.ptr);
|
180
|
-
|
181
|
-
/* directories where git is installed according to registry */
|
182
|
-
if (!win32_find_git_in_registry(
|
183
|
-
&buf, HKEY_CURRENT_USER, REG_MSYSGIT_INSTALL_LOCAL, subdir) && buf.size)
|
184
|
-
git_buf_join(out, GIT_PATH_LIST_SEPARATOR, out->ptr, buf.ptr);
|
185
|
-
|
186
|
-
if (!win32_find_git_in_registry(
|
187
|
-
&buf, HKEY_LOCAL_MACHINE, REG_MSYSGIT_INSTALL, subdir) && buf.size)
|
188
|
-
git_buf_join(out, GIT_PATH_LIST_SEPARATOR, out->ptr, buf.ptr);
|
189
|
-
|
190
|
-
git_buf_dispose(&buf);
|
191
|
-
|
192
|
-
return (git_buf_oom(out) ? -1 : 0);
|
193
|
-
}
|
194
|
-
|
195
|
-
int git_win32__find_global_dirs(git_buf *out)
|
196
|
-
{
|
197
|
-
static const wchar_t *global_tmpls[4] = {
|
198
|
-
L"%HOME%\\",
|
199
|
-
L"%HOMEDRIVE%%HOMEPATH%\\",
|
200
|
-
L"%USERPROFILE%\\",
|
201
|
-
NULL,
|
202
|
-
};
|
203
|
-
|
204
|
-
return win32_find_existing_dirs(out, global_tmpls);
|
205
|
-
}
|
206
|
-
|
207
|
-
int git_win32__find_xdg_dirs(git_buf *out)
|
208
|
-
{
|
209
|
-
static const wchar_t *global_tmpls[7] = {
|
210
|
-
L"%XDG_CONFIG_HOME%\\git",
|
211
|
-
L"%APPDATA%\\git",
|
212
|
-
L"%LOCALAPPDATA%\\git",
|
213
|
-
L"%HOME%\\.config\\git",
|
214
|
-
L"%HOMEDRIVE%%HOMEPATH%\\.config\\git",
|
215
|
-
L"%USERPROFILE%\\.config\\git",
|
216
|
-
NULL,
|
217
|
-
};
|
218
|
-
|
219
|
-
return win32_find_existing_dirs(out, global_tmpls);
|
220
|
-
}
|
221
|
-
|
222
|
-
int git_win32__find_programdata_dirs(git_buf *out)
|
223
|
-
{
|
224
|
-
static const wchar_t *programdata_tmpls[2] = {
|
225
|
-
L"%PROGRAMDATA%\\Git",
|
226
|
-
NULL,
|
227
|
-
};
|
228
|
-
|
229
|
-
return win32_find_existing_dirs(out, programdata_tmpls);
|
230
|
-
}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Copyright (C) the libgit2 contributors. All rights reserved.
|
3
|
-
*
|
4
|
-
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
5
|
-
* a Linking Exception. For full terms see the included COPYING file.
|
6
|
-
*/
|
7
|
-
|
8
|
-
#ifndef INCLUDE_win32_findfile_h__
|
9
|
-
#define INCLUDE_win32_findfile_h__
|
10
|
-
|
11
|
-
#include "common.h"
|
12
|
-
|
13
|
-
extern int git_win32__find_system_dirs(git_buf *out, const wchar_t *subpath);
|
14
|
-
extern int git_win32__find_global_dirs(git_buf *out);
|
15
|
-
extern int git_win32__find_xdg_dirs(git_buf *out);
|
16
|
-
extern int git_win32__find_programdata_dirs(git_buf *out);
|
17
|
-
|
18
|
-
#endif
|
19
|
-
|