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,34 +8,47 @@
|
|
8
8
|
#include "smart.h"
|
9
9
|
|
10
10
|
#include "git2.h"
|
11
|
+
#include "git2/sys/remote.h"
|
11
12
|
#include "refs.h"
|
12
13
|
#include "refspec.h"
|
13
14
|
#include "proxy.h"
|
14
15
|
|
15
|
-
|
16
|
+
int git_smart__recv(transport_smart *t)
|
16
17
|
{
|
17
|
-
|
18
|
-
|
19
|
-
int error;
|
18
|
+
size_t bytes_read;
|
19
|
+
int ret;
|
20
20
|
|
21
|
+
GIT_ASSERT_ARG(t);
|
21
22
|
GIT_ASSERT(t->current_stream);
|
22
23
|
|
23
|
-
|
24
|
+
if (git_staticstr_remain(&t->buffer) == 0) {
|
25
|
+
git_error_set(GIT_ERROR_NET, "out of buffer space");
|
26
|
+
return -1;
|
27
|
+
}
|
24
28
|
|
25
|
-
|
26
|
-
|
29
|
+
ret = t->current_stream->read(t->current_stream,
|
30
|
+
git_staticstr_offset(&t->buffer),
|
31
|
+
git_staticstr_remain(&t->buffer),
|
32
|
+
&bytes_read);
|
33
|
+
|
34
|
+
if (ret < 0)
|
35
|
+
return ret;
|
36
|
+
|
37
|
+
GIT_ASSERT(bytes_read <= INT_MAX);
|
38
|
+
GIT_ASSERT(bytes_read <= git_staticstr_remain(&t->buffer));
|
27
39
|
|
28
|
-
|
40
|
+
git_staticstr_increase(&t->buffer, bytes_read);
|
29
41
|
|
30
42
|
if (t->packetsize_cb && !t->cancelled.val) {
|
31
|
-
|
32
|
-
|
43
|
+
ret = t->packetsize_cb(bytes_read, t->packetsize_payload);
|
44
|
+
|
45
|
+
if (ret) {
|
33
46
|
git_atomic32_set(&t->cancelled, 1);
|
34
47
|
return GIT_EUSER;
|
35
48
|
}
|
36
49
|
}
|
37
50
|
|
38
|
-
return (int)
|
51
|
+
return (int)bytes_read;
|
39
52
|
}
|
40
53
|
|
41
54
|
GIT_INLINE(int) git_smart__reset_stream(transport_smart *t, bool close_subtransport)
|
@@ -53,104 +66,15 @@ GIT_INLINE(int) git_smart__reset_stream(transport_smart *t, bool close_subtransp
|
|
53
66
|
return -1;
|
54
67
|
}
|
55
68
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
static int git_smart__set_callbacks(
|
60
|
-
git_transport *transport,
|
61
|
-
git_transport_message_cb progress_cb,
|
62
|
-
git_transport_message_cb error_cb,
|
63
|
-
git_transport_certificate_check_cb certificate_check_cb,
|
64
|
-
void *message_cb_payload)
|
65
|
-
{
|
66
|
-
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
69
|
+
git__free(t->caps.object_format);
|
70
|
+
t->caps.object_format = NULL;
|
67
71
|
|
68
|
-
t->
|
69
|
-
t->
|
70
|
-
t->certificate_check_cb = certificate_check_cb;
|
71
|
-
t->message_cb_payload = message_cb_payload;
|
72
|
+
git__free(t->caps.agent);
|
73
|
+
t->caps.agent = NULL;
|
72
74
|
|
73
75
|
return 0;
|
74
76
|
}
|
75
77
|
|
76
|
-
static size_t http_header_name_length(const char *http_header)
|
77
|
-
{
|
78
|
-
const char *colon = strchr(http_header, ':');
|
79
|
-
if (!colon)
|
80
|
-
return 0;
|
81
|
-
return colon - http_header;
|
82
|
-
}
|
83
|
-
|
84
|
-
static bool is_malformed_http_header(const char *http_header)
|
85
|
-
{
|
86
|
-
const char *c;
|
87
|
-
size_t name_len;
|
88
|
-
|
89
|
-
/* Disallow \r and \n */
|
90
|
-
c = strchr(http_header, '\r');
|
91
|
-
if (c)
|
92
|
-
return true;
|
93
|
-
c = strchr(http_header, '\n');
|
94
|
-
if (c)
|
95
|
-
return true;
|
96
|
-
|
97
|
-
/* Require a header name followed by : */
|
98
|
-
name_len = http_header_name_length(http_header);
|
99
|
-
if (name_len < 1)
|
100
|
-
return true;
|
101
|
-
|
102
|
-
return false;
|
103
|
-
}
|
104
|
-
|
105
|
-
static char *forbidden_custom_headers[] = {
|
106
|
-
"User-Agent",
|
107
|
-
"Host",
|
108
|
-
"Accept",
|
109
|
-
"Content-Type",
|
110
|
-
"Transfer-Encoding",
|
111
|
-
"Content-Length",
|
112
|
-
};
|
113
|
-
|
114
|
-
static bool is_forbidden_custom_header(const char *custom_header)
|
115
|
-
{
|
116
|
-
unsigned long i;
|
117
|
-
size_t name_len = http_header_name_length(custom_header);
|
118
|
-
|
119
|
-
/* Disallow headers that we set */
|
120
|
-
for (i = 0; i < ARRAY_SIZE(forbidden_custom_headers); i++)
|
121
|
-
if (strncmp(forbidden_custom_headers[i], custom_header, name_len) == 0)
|
122
|
-
return true;
|
123
|
-
|
124
|
-
return false;
|
125
|
-
}
|
126
|
-
|
127
|
-
static int git_smart__set_custom_headers(
|
128
|
-
git_transport *transport,
|
129
|
-
const git_strarray *custom_headers)
|
130
|
-
{
|
131
|
-
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
132
|
-
size_t i;
|
133
|
-
|
134
|
-
if (t->custom_headers.count)
|
135
|
-
git_strarray_dispose(&t->custom_headers);
|
136
|
-
|
137
|
-
if (!custom_headers)
|
138
|
-
return 0;
|
139
|
-
|
140
|
-
for (i = 0; i < custom_headers->count; i++) {
|
141
|
-
if (is_malformed_http_header(custom_headers->strings[i])) {
|
142
|
-
git_error_set(GIT_ERROR_INVALID, "custom HTTP header '%s' is malformed", custom_headers->strings[i]);
|
143
|
-
return -1;
|
144
|
-
}
|
145
|
-
if (is_forbidden_custom_header(custom_headers->strings[i])) {
|
146
|
-
git_error_set(GIT_ERROR_INVALID, "custom HTTP header '%s' is already set by libgit2", custom_headers->strings[i]);
|
147
|
-
return -1;
|
148
|
-
}
|
149
|
-
}
|
150
|
-
|
151
|
-
return git_strarray_copy(&t->custom_headers, custom_headers);
|
152
|
-
}
|
153
|
-
|
154
78
|
int git_smart__update_heads(transport_smart *t, git_vector *symrefs)
|
155
79
|
{
|
156
80
|
size_t i;
|
@@ -164,20 +88,20 @@ int git_smart__update_heads(transport_smart *t, git_vector *symrefs)
|
|
164
88
|
|
165
89
|
if (symrefs) {
|
166
90
|
git_refspec *spec;
|
167
|
-
|
91
|
+
git_str buf = GIT_STR_INIT;
|
168
92
|
size_t j;
|
169
93
|
int error = 0;
|
170
94
|
|
171
95
|
git_vector_foreach(symrefs, j, spec) {
|
172
|
-
|
96
|
+
git_str_clear(&buf);
|
173
97
|
if (git_refspec_src_matches(spec, ref->head.name) &&
|
174
|
-
!(error =
|
98
|
+
!(error = git_refspec__transform(&buf, spec, ref->head.name))) {
|
175
99
|
git__free(ref->head.symref_target);
|
176
|
-
ref->head.symref_target =
|
100
|
+
ref->head.symref_target = git_str_detach(&buf);
|
177
101
|
}
|
178
102
|
}
|
179
103
|
|
180
|
-
|
104
|
+
git_str_dispose(&buf);
|
181
105
|
|
182
106
|
if (error < 0)
|
183
107
|
return error;
|
@@ -200,17 +124,14 @@ static void free_symrefs(git_vector *symrefs)
|
|
200
124
|
git__free(spec);
|
201
125
|
}
|
202
126
|
|
203
|
-
|
127
|
+
git_vector_dispose(symrefs);
|
204
128
|
}
|
205
129
|
|
206
130
|
static int git_smart__connect(
|
207
131
|
git_transport *transport,
|
208
132
|
const char *url,
|
209
|
-
git_credential_acquire_cb cred_acquire_cb,
|
210
|
-
void *cred_acquire_payload,
|
211
|
-
const git_proxy_options *proxy,
|
212
133
|
int direction,
|
213
|
-
|
134
|
+
const git_remote_connect_options *connect_opts)
|
214
135
|
{
|
215
136
|
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
216
137
|
git_smart_subtransport_stream *stream;
|
@@ -223,24 +144,19 @@ static int git_smart__connect(
|
|
223
144
|
if (git_smart__reset_stream(t, true) < 0)
|
224
145
|
return -1;
|
225
146
|
|
147
|
+
if (git_remote_connect_options_normalize(&t->connect_opts, t->owner->repo, connect_opts) < 0)
|
148
|
+
return -1;
|
149
|
+
|
226
150
|
t->url = git__strdup(url);
|
227
151
|
GIT_ERROR_CHECK_ALLOC(t->url);
|
228
152
|
|
229
|
-
git_proxy_options_clear(&t->proxy);
|
230
|
-
|
231
|
-
if (git_proxy_options_dup(&t->proxy, proxy) < 0)
|
232
|
-
return -1;
|
233
|
-
|
234
153
|
t->direction = direction;
|
235
|
-
t->flags = flags;
|
236
|
-
t->cred_acquire_cb = cred_acquire_cb;
|
237
|
-
t->cred_acquire_payload = cred_acquire_payload;
|
238
154
|
|
239
|
-
if (GIT_DIRECTION_FETCH == t->direction)
|
155
|
+
if (GIT_DIRECTION_FETCH == t->direction) {
|
240
156
|
service = GIT_SERVICE_UPLOADPACK_LS;
|
241
|
-
else if (GIT_DIRECTION_PUSH == t->direction)
|
157
|
+
} else if (GIT_DIRECTION_PUSH == t->direction) {
|
242
158
|
service = GIT_SERVICE_RECEIVEPACK_LS;
|
243
|
-
else {
|
159
|
+
} else {
|
244
160
|
git_error_set(GIT_ERROR_NET, "invalid direction");
|
245
161
|
return -1;
|
246
162
|
}
|
@@ -251,8 +167,6 @@ static int git_smart__connect(
|
|
251
167
|
/* Save off the current stream (i.e. socket) that we are working with */
|
252
168
|
t->current_stream = stream;
|
253
169
|
|
254
|
-
gitno_buffer_setup_callback(&t->buffer, t->buffer_data, sizeof(t->buffer_data), git_smart__recv_cb, t);
|
255
|
-
|
256
170
|
/* 2 flushes for RPC; 1 for stateful */
|
257
171
|
if ((error = git_smart__store_refs(t, t->rpc ? 2 : 1)) < 0)
|
258
172
|
return error;
|
@@ -315,6 +229,62 @@ cleanup:
|
|
315
229
|
return error;
|
316
230
|
}
|
317
231
|
|
232
|
+
static int git_smart__set_connect_opts(
|
233
|
+
git_transport *transport,
|
234
|
+
const git_remote_connect_options *opts)
|
235
|
+
{
|
236
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
237
|
+
|
238
|
+
if (!t->connected) {
|
239
|
+
git_error_set(GIT_ERROR_NET, "cannot reconfigure a transport that is not connected");
|
240
|
+
return -1;
|
241
|
+
}
|
242
|
+
|
243
|
+
return git_remote_connect_options_normalize(&t->connect_opts, t->owner->repo, opts);
|
244
|
+
}
|
245
|
+
|
246
|
+
static int git_smart__capabilities(unsigned int *capabilities, git_transport *transport)
|
247
|
+
{
|
248
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
249
|
+
|
250
|
+
*capabilities = 0;
|
251
|
+
|
252
|
+
if (t->caps.push_options)
|
253
|
+
*capabilities |= GIT_REMOTE_CAPABILITY_PUSH_OPTIONS;
|
254
|
+
|
255
|
+
if (t->caps.want_tip_sha1)
|
256
|
+
*capabilities |= GIT_REMOTE_CAPABILITY_TIP_OID;
|
257
|
+
|
258
|
+
if (t->caps.want_reachable_sha1)
|
259
|
+
*capabilities |= GIT_REMOTE_CAPABILITY_REACHABLE_OID;
|
260
|
+
|
261
|
+
return 0;
|
262
|
+
}
|
263
|
+
|
264
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
265
|
+
static int git_smart__oid_type(git_oid_t *out, git_transport *transport)
|
266
|
+
{
|
267
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
268
|
+
|
269
|
+
*out = 0;
|
270
|
+
|
271
|
+
if (t->caps.object_format == NULL) {
|
272
|
+
*out = GIT_OID_DEFAULT;
|
273
|
+
} else {
|
274
|
+
*out = git_oid_type_fromstr(t->caps.object_format);
|
275
|
+
|
276
|
+
if (!*out) {
|
277
|
+
git_error_set(GIT_ERROR_INVALID,
|
278
|
+
"unknown object format '%s'",
|
279
|
+
t->caps.object_format);
|
280
|
+
return -1;
|
281
|
+
}
|
282
|
+
}
|
283
|
+
|
284
|
+
return 0;
|
285
|
+
}
|
286
|
+
#endif
|
287
|
+
|
318
288
|
static int git_smart__ls(const git_remote_head ***out, size_t *size, git_transport *transport)
|
319
289
|
{
|
320
290
|
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
@@ -356,8 +326,6 @@ int git_smart__negotiation_step(git_transport *transport, void *data, size_t len
|
|
356
326
|
if ((error = stream->write(stream, (const char *)data, len)) < 0)
|
357
327
|
return error;
|
358
328
|
|
359
|
-
gitno_buffer_setup_callback(&t->buffer, t->buffer_data, sizeof(t->buffer_data), git_smart__recv_cb, t);
|
360
|
-
|
361
329
|
return 0;
|
362
330
|
}
|
363
331
|
|
@@ -382,8 +350,6 @@ int git_smart__get_push_stream(transport_smart *t, git_smart_subtransport_stream
|
|
382
350
|
/* Save off the current stream (i.e. socket) that we are working with */
|
383
351
|
t->current_stream = *stream;
|
384
352
|
|
385
|
-
gitno_buffer_setup_callback(&t->buffer, t->buffer_data, sizeof(t->buffer_data), git_smart__recv_cb, t);
|
386
|
-
|
387
353
|
return 0;
|
388
354
|
}
|
389
355
|
|
@@ -401,32 +367,33 @@ static int git_smart__is_connected(git_transport *transport)
|
|
401
367
|
return t->connected;
|
402
368
|
}
|
403
369
|
|
404
|
-
static int git_smart__read_flags(git_transport *transport, int *flags)
|
405
|
-
{
|
406
|
-
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
407
|
-
|
408
|
-
*flags = t->flags;
|
409
|
-
|
410
|
-
return 0;
|
411
|
-
}
|
412
|
-
|
413
370
|
static int git_smart__close(git_transport *transport)
|
414
371
|
{
|
415
372
|
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
416
373
|
git_vector *common = &t->common;
|
417
374
|
unsigned int i;
|
418
375
|
git_pkt *p;
|
376
|
+
git_smart_service_t service;
|
419
377
|
int ret;
|
420
378
|
git_smart_subtransport_stream *stream;
|
421
379
|
const char flush[] = "0000";
|
422
380
|
|
381
|
+
if (t->direction == GIT_DIRECTION_FETCH) {
|
382
|
+
service = GIT_SERVICE_UPLOADPACK;
|
383
|
+
} else if (t->direction == GIT_DIRECTION_PUSH) {
|
384
|
+
service = GIT_SERVICE_RECEIVEPACK;
|
385
|
+
} else {
|
386
|
+
git_error_set(GIT_ERROR_NET, "invalid direction");
|
387
|
+
return -1;
|
388
|
+
}
|
389
|
+
|
423
390
|
/*
|
424
391
|
* If we're still connected at this point and not using RPC,
|
425
392
|
* we should say goodbye by sending a flush, or git-daemon
|
426
393
|
* will complain that we disconnected unexpectedly.
|
427
394
|
*/
|
428
395
|
if (t->connected && !t->rpc &&
|
429
|
-
!t->wrapped->action(&stream, t->wrapped, t->url,
|
396
|
+
!t->wrapped->action(&stream, t->wrapped, t->url, service)) {
|
430
397
|
t->current_stream->write(t->current_stream, flush, 4);
|
431
398
|
}
|
432
399
|
|
@@ -435,7 +402,7 @@ static int git_smart__close(git_transport *transport)
|
|
435
402
|
git_vector_foreach(common, i, p)
|
436
403
|
git_pkt_free(p);
|
437
404
|
|
438
|
-
|
405
|
+
git_vector_dispose(common);
|
439
406
|
|
440
407
|
if (t->url) {
|
441
408
|
git__free(t->url);
|
@@ -460,15 +427,18 @@ static void git_smart__free(git_transport *transport)
|
|
460
427
|
/* Free the subtransport */
|
461
428
|
t->wrapped->free(t->wrapped);
|
462
429
|
|
463
|
-
|
430
|
+
git_vector_dispose(&t->heads);
|
464
431
|
git_vector_foreach(refs, i, p)
|
465
432
|
git_pkt_free(p);
|
466
433
|
|
467
|
-
|
468
|
-
|
434
|
+
git_vector_dispose(refs);
|
435
|
+
|
436
|
+
git_remote_connect_options_dispose(&t->connect_opts);
|
469
437
|
|
470
|
-
|
438
|
+
git_array_dispose(t->shallow_roots);
|
471
439
|
|
440
|
+
git__free(t->caps.object_format);
|
441
|
+
git__free(t->caps.agent);
|
472
442
|
git__free(t);
|
473
443
|
}
|
474
444
|
|
@@ -482,34 +452,42 @@ static int ref_name_cmp(const void *a, const void *b)
|
|
482
452
|
int git_transport_smart_certificate_check(git_transport *transport, git_cert *cert, int valid, const char *hostname)
|
483
453
|
{
|
484
454
|
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
455
|
+
git_remote_connect_options *connect_opts = &t->connect_opts;
|
485
456
|
|
486
457
|
GIT_ASSERT_ARG(transport);
|
487
458
|
GIT_ASSERT_ARG(cert);
|
488
459
|
GIT_ASSERT_ARG(hostname);
|
489
460
|
|
490
|
-
if (!
|
461
|
+
if (!connect_opts->callbacks.certificate_check)
|
491
462
|
return GIT_PASSTHROUGH;
|
492
463
|
|
493
|
-
return
|
464
|
+
return connect_opts->callbacks.certificate_check(cert, valid, hostname, connect_opts->callbacks.payload);
|
494
465
|
}
|
495
466
|
|
496
467
|
int git_transport_smart_credentials(git_credential **out, git_transport *transport, const char *user, int methods)
|
497
468
|
{
|
498
469
|
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
470
|
+
git_remote_connect_options *connect_opts = &t->connect_opts;
|
499
471
|
|
500
472
|
GIT_ASSERT_ARG(out);
|
501
473
|
GIT_ASSERT_ARG(transport);
|
502
474
|
|
503
|
-
if (!
|
475
|
+
if (!connect_opts->callbacks.credentials)
|
504
476
|
return GIT_PASSTHROUGH;
|
505
477
|
|
506
|
-
return
|
478
|
+
return connect_opts->callbacks.credentials(out, t->url, user, methods, connect_opts->callbacks.payload);
|
507
479
|
}
|
508
480
|
|
509
|
-
int
|
481
|
+
int git_transport_remote_connect_options(
|
482
|
+
git_remote_connect_options *out,
|
483
|
+
git_transport *transport)
|
510
484
|
{
|
511
485
|
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
512
|
-
|
486
|
+
|
487
|
+
GIT_ASSERT_ARG(out);
|
488
|
+
GIT_ASSERT_ARG(transport);
|
489
|
+
|
490
|
+
return git_remote_connect_options_dup(out, &t->connect_opts);
|
513
491
|
}
|
514
492
|
|
515
493
|
int git_transport_smart(git_transport **out, git_remote *owner, void *param)
|
@@ -524,36 +502,35 @@ int git_transport_smart(git_transport **out, git_remote *owner, void *param)
|
|
524
502
|
GIT_ERROR_CHECK_ALLOC(t);
|
525
503
|
|
526
504
|
t->parent.version = GIT_TRANSPORT_VERSION;
|
527
|
-
t->parent.set_callbacks = git_smart__set_callbacks;
|
528
|
-
t->parent.set_custom_headers = git_smart__set_custom_headers;
|
529
505
|
t->parent.connect = git_smart__connect;
|
506
|
+
t->parent.set_connect_opts = git_smart__set_connect_opts;
|
507
|
+
t->parent.capabilities = git_smart__capabilities;
|
508
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
509
|
+
t->parent.oid_type = git_smart__oid_type;
|
510
|
+
#endif
|
530
511
|
t->parent.close = git_smart__close;
|
531
512
|
t->parent.free = git_smart__free;
|
532
513
|
t->parent.negotiate_fetch = git_smart__negotiate_fetch;
|
514
|
+
t->parent.shallow_roots = git_smart__shallow_roots;
|
533
515
|
t->parent.download_pack = git_smart__download_pack;
|
534
516
|
t->parent.push = git_smart__push;
|
535
517
|
t->parent.ls = git_smart__ls;
|
536
518
|
t->parent.is_connected = git_smart__is_connected;
|
537
|
-
t->parent.read_flags = git_smart__read_flags;
|
538
519
|
t->parent.cancel = git_smart__cancel;
|
539
520
|
|
540
521
|
t->owner = owner;
|
541
522
|
t->rpc = definition->rpc;
|
542
523
|
|
543
|
-
if (git_vector_init(&t->refs, 16, ref_name_cmp) < 0
|
524
|
+
if (git_vector_init(&t->refs, 16, ref_name_cmp) < 0 ||
|
525
|
+
git_vector_init(&t->heads, 16, ref_name_cmp) < 0 ||
|
526
|
+
definition->callback(&t->wrapped, &t->parent, definition->param) < 0) {
|
527
|
+
git_vector_dispose(&t->refs);
|
528
|
+
git_vector_dispose(&t->heads);
|
544
529
|
git__free(t);
|
545
530
|
return -1;
|
546
531
|
}
|
547
532
|
|
548
|
-
|
549
|
-
git__free(t);
|
550
|
-
return -1;
|
551
|
-
}
|
552
|
-
|
553
|
-
if (definition->callback(&t->wrapped, &t->parent, definition->param) < 0) {
|
554
|
-
git__free(t);
|
555
|
-
return -1;
|
556
|
-
}
|
533
|
+
git_staticstr_init(&t->buffer, GIT_SMART_BUFFER_SIZE);
|
557
534
|
|
558
535
|
*out = (git_transport *) t;
|
559
536
|
return 0;
|
@@ -11,11 +11,14 @@
|
|
11
11
|
|
12
12
|
#include "git2.h"
|
13
13
|
#include "vector.h"
|
14
|
-
#include "netops.h"
|
15
|
-
#include "buffer.h"
|
16
14
|
#include "push.h"
|
15
|
+
#include "str.h"
|
16
|
+
#include "oidarray.h"
|
17
|
+
#include "staticstr.h"
|
17
18
|
#include "git2/sys/transport.h"
|
18
19
|
|
20
|
+
#define GIT_SMART_BUFFER_SIZE 65536
|
21
|
+
|
19
22
|
#define GIT_SIDE_BAND_DATA 1
|
20
23
|
#define GIT_SIDE_BAND_PROGRESS 2
|
21
24
|
#define GIT_SIDE_BAND_ERROR 3
|
@@ -30,6 +33,12 @@
|
|
30
33
|
#define GIT_CAP_REPORT_STATUS "report-status"
|
31
34
|
#define GIT_CAP_THIN_PACK "thin-pack"
|
32
35
|
#define GIT_CAP_SYMREF "symref"
|
36
|
+
#define GIT_CAP_WANT_TIP_SHA1 "allow-tip-sha1-in-want"
|
37
|
+
#define GIT_CAP_WANT_REACHABLE_SHA1 "allow-reachable-sha1-in-want"
|
38
|
+
#define GIT_CAP_SHALLOW "shallow"
|
39
|
+
#define GIT_CAP_OBJECT_FORMAT "object-format="
|
40
|
+
#define GIT_CAP_AGENT "agent="
|
41
|
+
#define GIT_CAP_PUSH_OPTIONS "push-options"
|
33
42
|
|
34
43
|
extern bool git_smart__ofs_delta_enabled;
|
35
44
|
|
@@ -47,6 +56,8 @@ typedef enum {
|
|
47
56
|
GIT_PKT_OK,
|
48
57
|
GIT_PKT_NG,
|
49
58
|
GIT_PKT_UNPACK,
|
59
|
+
GIT_PKT_SHALLOW,
|
60
|
+
GIT_PKT_UNSHALLOW
|
50
61
|
} git_pkt_type;
|
51
62
|
|
52
63
|
/* Used for multi_ack and multi_ack_detailed */
|
@@ -118,17 +129,28 @@ typedef struct {
|
|
118
129
|
int unpack_ok;
|
119
130
|
} git_pkt_unpack;
|
120
131
|
|
132
|
+
typedef struct {
|
133
|
+
git_pkt_type type;
|
134
|
+
git_oid oid;
|
135
|
+
} git_pkt_shallow;
|
136
|
+
|
121
137
|
typedef struct transport_smart_caps {
|
122
|
-
int common:1,
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
138
|
+
unsigned int common:1,
|
139
|
+
ofs_delta:1,
|
140
|
+
multi_ack:1,
|
141
|
+
multi_ack_detailed:1,
|
142
|
+
side_band:1,
|
143
|
+
side_band_64k:1,
|
144
|
+
include_tag:1,
|
145
|
+
delete_refs:1,
|
146
|
+
report_status:1,
|
147
|
+
thin_pack:1,
|
148
|
+
want_tip_sha1:1,
|
149
|
+
want_reachable_sha1:1,
|
150
|
+
shallow:1,
|
151
|
+
push_options:1;
|
152
|
+
char *object_format;
|
153
|
+
char *agent;
|
132
154
|
} transport_smart_caps;
|
133
155
|
|
134
156
|
typedef int (*packetsize_cb)(size_t received, void *payload);
|
@@ -137,63 +159,61 @@ typedef struct {
|
|
137
159
|
git_transport parent;
|
138
160
|
git_remote *owner;
|
139
161
|
char *url;
|
140
|
-
|
141
|
-
void *cred_acquire_payload;
|
142
|
-
git_proxy_options proxy;
|
162
|
+
git_remote_connect_options connect_opts;
|
143
163
|
int direction;
|
144
|
-
int flags;
|
145
|
-
git_transport_message_cb progress_cb;
|
146
|
-
git_transport_message_cb error_cb;
|
147
|
-
git_transport_certificate_check_cb certificate_check_cb;
|
148
|
-
void *message_cb_payload;
|
149
|
-
git_strarray custom_headers;
|
150
164
|
git_smart_subtransport *wrapped;
|
151
165
|
git_smart_subtransport_stream *current_stream;
|
152
166
|
transport_smart_caps caps;
|
153
167
|
git_vector refs;
|
154
168
|
git_vector heads;
|
155
169
|
git_vector common;
|
170
|
+
git_array_oid_t shallow_roots;
|
156
171
|
git_atomic32 cancelled;
|
157
172
|
packetsize_cb packetsize_cb;
|
158
173
|
void *packetsize_payload;
|
159
174
|
unsigned rpc : 1,
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
char buffer_data[65536];
|
175
|
+
have_refs : 1,
|
176
|
+
connected : 1;
|
177
|
+
git_staticstr_with_size(GIT_SMART_BUFFER_SIZE) buffer;
|
164
178
|
} transport_smart;
|
165
179
|
|
166
180
|
/* smart_protocol.c */
|
167
181
|
int git_smart__store_refs(transport_smart *t, int flushes);
|
168
182
|
int git_smart__detect_caps(git_pkt_ref *pkt, transport_smart_caps *caps, git_vector *symrefs);
|
169
|
-
int git_smart__push(git_transport *transport, git_push *push
|
183
|
+
int git_smart__push(git_transport *transport, git_push *push);
|
170
184
|
|
171
185
|
int git_smart__negotiate_fetch(
|
172
186
|
git_transport *transport,
|
173
187
|
git_repository *repo,
|
174
|
-
const
|
175
|
-
|
188
|
+
const git_fetch_negotiation *wants);
|
189
|
+
|
190
|
+
int git_smart__shallow_roots(git_oidarray *out, git_transport *transport);
|
176
191
|
|
177
192
|
int git_smart__download_pack(
|
178
193
|
git_transport *transport,
|
179
194
|
git_repository *repo,
|
180
|
-
git_indexer_progress *stats
|
181
|
-
git_indexer_progress_cb progress_cb,
|
182
|
-
void *progress_payload);
|
195
|
+
git_indexer_progress *stats);
|
183
196
|
|
184
197
|
/* smart.c */
|
198
|
+
int git_smart__recv(transport_smart *t);
|
199
|
+
|
185
200
|
int git_smart__negotiation_step(git_transport *transport, void *data, size_t len);
|
186
201
|
int git_smart__get_push_stream(transport_smart *t, git_smart_subtransport_stream **out);
|
187
202
|
|
188
203
|
int git_smart__update_heads(transport_smart *t, git_vector *symrefs);
|
189
204
|
|
190
205
|
/* smart_pkt.c */
|
191
|
-
|
192
|
-
|
206
|
+
typedef struct {
|
207
|
+
git_oid_t oid_type;
|
208
|
+
unsigned int seen_capabilities: 1;
|
209
|
+
} git_pkt_parse_data;
|
210
|
+
|
211
|
+
int git_pkt_parse_line(git_pkt **head, const char **endptr, const char *line, size_t linelen, git_pkt_parse_data *data);
|
212
|
+
int git_pkt_buffer_flush(git_str *buf);
|
193
213
|
int git_pkt_send_flush(GIT_SOCKET s);
|
194
|
-
int git_pkt_buffer_done(
|
195
|
-
int git_pkt_buffer_wants(const
|
196
|
-
int git_pkt_buffer_have(git_oid *oid,
|
214
|
+
int git_pkt_buffer_done(git_str *buf);
|
215
|
+
int git_pkt_buffer_wants(const git_fetch_negotiation *wants, transport_smart_caps *caps, git_str *buf);
|
216
|
+
int git_pkt_buffer_have(git_oid *oid, git_str *buf);
|
197
217
|
void git_pkt_free(git_pkt *pkt);
|
198
218
|
|
199
219
|
#endif
|