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
@@ -0,0 +1,395 @@
|
|
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 <stdio.h>
|
9
|
+
#include <stdarg.h>
|
10
|
+
#include <stdint.h>
|
11
|
+
|
12
|
+
#include "progress.h"
|
13
|
+
#include "error.h"
|
14
|
+
|
15
|
+
/*
|
16
|
+
* Show updates to the percentage and number of objects received
|
17
|
+
* separately from the throughput to give an accurate progress while
|
18
|
+
* avoiding too much noise on the screen. (In milliseconds.)
|
19
|
+
*/
|
20
|
+
#define PROGRESS_UPDATE_TIME 60
|
21
|
+
#define THROUGHPUT_UPDATE_TIME 500
|
22
|
+
|
23
|
+
#define is_nl(c) ((c) == '\r' || (c) == '\n')
|
24
|
+
|
25
|
+
#define return_os_error(msg) do { \
|
26
|
+
git_error_set(GIT_ERROR_OS, "%s", msg); return -1; } while(0)
|
27
|
+
|
28
|
+
GIT_INLINE(size_t) no_nl_len(const char *str, size_t len)
|
29
|
+
{
|
30
|
+
size_t i = 0;
|
31
|
+
|
32
|
+
while (i < len && !is_nl(str[i]))
|
33
|
+
i++;
|
34
|
+
|
35
|
+
return i;
|
36
|
+
}
|
37
|
+
|
38
|
+
GIT_INLINE(size_t) nl_len(bool *has_nl, const char *str, size_t len)
|
39
|
+
{
|
40
|
+
size_t i = no_nl_len(str, len);
|
41
|
+
|
42
|
+
*has_nl = false;
|
43
|
+
|
44
|
+
while (i < len && is_nl(str[i])) {
|
45
|
+
*has_nl = true;
|
46
|
+
i++;
|
47
|
+
}
|
48
|
+
|
49
|
+
return i;
|
50
|
+
}
|
51
|
+
|
52
|
+
static int progress_write(cli_progress *progress, bool force, git_str *line)
|
53
|
+
{
|
54
|
+
bool has_nl;
|
55
|
+
size_t no_nl = no_nl_len(line->ptr, line->size);
|
56
|
+
size_t nl = nl_len(&has_nl, line->ptr + no_nl, line->size - no_nl);
|
57
|
+
uint64_t now = git_time_monotonic();
|
58
|
+
size_t i;
|
59
|
+
|
60
|
+
/* Avoid spamming the console with progress updates */
|
61
|
+
if (!force && line->ptr[line->size - 1] != '\n' && progress->last_update) {
|
62
|
+
if (now - progress->last_update < PROGRESS_UPDATE_TIME) {
|
63
|
+
git_str_clear(&progress->deferred);
|
64
|
+
git_str_put(&progress->deferred, line->ptr, line->size);
|
65
|
+
return git_str_oom(&progress->deferred) ? -1 : 0;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
/*
|
70
|
+
* If there's something on this line already (eg, a progress line
|
71
|
+
* with only a trailing `\r` that we'll print over) then we need
|
72
|
+
* to really print over it in case we're writing a shorter line.
|
73
|
+
*/
|
74
|
+
if (printf("%.*s", (int)no_nl, line->ptr) < 0)
|
75
|
+
return_os_error("could not print status");
|
76
|
+
|
77
|
+
if (progress->onscreen.size) {
|
78
|
+
for (i = no_nl; i < progress->onscreen.size; i++) {
|
79
|
+
if (printf(" ") < 0)
|
80
|
+
return_os_error("could not print status");
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
if (printf("%.*s", (int)nl, line->ptr + no_nl) < 0 ||
|
85
|
+
fflush(stdout) != 0)
|
86
|
+
return_os_error("could not print status");
|
87
|
+
|
88
|
+
git_str_clear(&progress->onscreen);
|
89
|
+
|
90
|
+
if (line->ptr[line->size - 1] == '\n') {
|
91
|
+
progress->last_update = 0;
|
92
|
+
} else {
|
93
|
+
git_str_put(&progress->onscreen, line->ptr, line->size);
|
94
|
+
progress->last_update = now;
|
95
|
+
}
|
96
|
+
|
97
|
+
git_str_clear(&progress->deferred);
|
98
|
+
return git_str_oom(&progress->onscreen) ? -1 : 0;
|
99
|
+
}
|
100
|
+
|
101
|
+
static int progress_printf(cli_progress *progress, bool force, const char *fmt, ...)
|
102
|
+
GIT_FORMAT_PRINTF(3, 4);
|
103
|
+
|
104
|
+
int progress_printf(cli_progress *progress, bool force, const char *fmt, ...)
|
105
|
+
{
|
106
|
+
git_str buf = GIT_BUF_INIT;
|
107
|
+
va_list ap;
|
108
|
+
int error;
|
109
|
+
|
110
|
+
va_start(ap, fmt);
|
111
|
+
error = git_str_vprintf(&buf, fmt, ap);
|
112
|
+
va_end(ap);
|
113
|
+
|
114
|
+
if (error < 0)
|
115
|
+
return error;
|
116
|
+
|
117
|
+
error = progress_write(progress, force, &buf);
|
118
|
+
|
119
|
+
git_str_dispose(&buf);
|
120
|
+
return error;
|
121
|
+
}
|
122
|
+
|
123
|
+
static int progress_complete(cli_progress *progress)
|
124
|
+
{
|
125
|
+
if (progress->deferred.size)
|
126
|
+
progress_write(progress, true, &progress->deferred);
|
127
|
+
|
128
|
+
if (progress->onscreen.size)
|
129
|
+
if (printf("\n") < 0)
|
130
|
+
return_os_error("could not print status");
|
131
|
+
|
132
|
+
git_str_clear(&progress->deferred);
|
133
|
+
git_str_clear(&progress->onscreen);
|
134
|
+
progress->last_update = 0;
|
135
|
+
progress->action_start = 0;
|
136
|
+
progress->action_finish = 0;
|
137
|
+
|
138
|
+
return 0;
|
139
|
+
}
|
140
|
+
|
141
|
+
GIT_INLINE(int) percent(size_t completed, size_t total)
|
142
|
+
{
|
143
|
+
if (total == 0)
|
144
|
+
return (completed == 0) ? 100 : 0;
|
145
|
+
|
146
|
+
return (int)(((double)completed / (double)total) * 100);
|
147
|
+
}
|
148
|
+
|
149
|
+
int cli_progress_fetch_sideband(const char *str, int len, void *payload)
|
150
|
+
{
|
151
|
+
cli_progress *progress = (cli_progress *)payload;
|
152
|
+
size_t remain;
|
153
|
+
|
154
|
+
if (len <= 0)
|
155
|
+
return 0;
|
156
|
+
|
157
|
+
/* Accumulate the sideband data, then print it line-at-a-time. */
|
158
|
+
if (git_str_put(&progress->sideband, str, len) < 0)
|
159
|
+
return -1;
|
160
|
+
|
161
|
+
str = progress->sideband.ptr;
|
162
|
+
remain = progress->sideband.size;
|
163
|
+
|
164
|
+
while (remain) {
|
165
|
+
bool has_nl;
|
166
|
+
size_t line_len = nl_len(&has_nl, str, remain);
|
167
|
+
|
168
|
+
if (!has_nl)
|
169
|
+
break;
|
170
|
+
|
171
|
+
if (line_len < INT_MAX) {
|
172
|
+
int error = progress_printf(progress, true,
|
173
|
+
"remote: %.*s", (int)line_len, str);
|
174
|
+
|
175
|
+
if (error < 0)
|
176
|
+
return error;
|
177
|
+
}
|
178
|
+
|
179
|
+
str += line_len;
|
180
|
+
remain -= line_len;
|
181
|
+
}
|
182
|
+
|
183
|
+
git_str_consume_bytes(&progress->sideband, (progress->sideband.size - remain));
|
184
|
+
|
185
|
+
return 0;
|
186
|
+
}
|
187
|
+
|
188
|
+
static int fetch_receiving(
|
189
|
+
cli_progress *progress,
|
190
|
+
const git_indexer_progress *stats)
|
191
|
+
{
|
192
|
+
char *recv_units[] = { "B", "KiB", "MiB", "GiB", "TiB", NULL };
|
193
|
+
char *rate_units[] = { "B/s", "KiB/s", "MiB/s", "GiB/s", "TiB/s", NULL };
|
194
|
+
uint64_t now, elapsed;
|
195
|
+
|
196
|
+
double recv_len, rate;
|
197
|
+
size_t recv_unit_idx = 0, rate_unit_idx = 0;
|
198
|
+
bool done = (stats->received_objects == stats->total_objects);
|
199
|
+
|
200
|
+
if (!progress->action_start)
|
201
|
+
progress->action_start = git_time_monotonic();
|
202
|
+
|
203
|
+
if (done && progress->action_finish)
|
204
|
+
now = progress->action_finish;
|
205
|
+
else if (done)
|
206
|
+
progress->action_finish = now = git_time_monotonic();
|
207
|
+
else
|
208
|
+
now = git_time_monotonic();
|
209
|
+
|
210
|
+
if (progress->throughput_update &&
|
211
|
+
now - progress->throughput_update < THROUGHPUT_UPDATE_TIME) {
|
212
|
+
elapsed = progress->throughput_update -
|
213
|
+
progress->action_start;
|
214
|
+
recv_len = progress->throughput_bytes;
|
215
|
+
} else {
|
216
|
+
elapsed = now - progress->action_start;
|
217
|
+
recv_len = (double)stats->received_bytes;
|
218
|
+
|
219
|
+
progress->throughput_update = now;
|
220
|
+
progress->throughput_bytes = recv_len;
|
221
|
+
}
|
222
|
+
|
223
|
+
rate = elapsed ? recv_len / elapsed : 0;
|
224
|
+
|
225
|
+
while (recv_len > 1024 && recv_units[recv_unit_idx+1]) {
|
226
|
+
recv_len /= 1024;
|
227
|
+
recv_unit_idx++;
|
228
|
+
}
|
229
|
+
|
230
|
+
while (rate > 1024 && rate_units[rate_unit_idx+1]) {
|
231
|
+
rate /= 1024;
|
232
|
+
rate_unit_idx++;
|
233
|
+
}
|
234
|
+
|
235
|
+
return progress_printf(progress, false,
|
236
|
+
"Receiving objects: %3d%% (%d/%d), %.2f %s | %.2f %s%s\r",
|
237
|
+
percent(stats->received_objects, stats->total_objects),
|
238
|
+
stats->received_objects,
|
239
|
+
stats->total_objects,
|
240
|
+
recv_len, recv_units[recv_unit_idx],
|
241
|
+
rate, rate_units[rate_unit_idx],
|
242
|
+
done ? ", done." : "");
|
243
|
+
}
|
244
|
+
|
245
|
+
static int indexer_indexing(
|
246
|
+
cli_progress *progress,
|
247
|
+
const git_indexer_progress *stats)
|
248
|
+
{
|
249
|
+
bool done = (stats->received_objects == stats->total_objects);
|
250
|
+
|
251
|
+
return progress_printf(progress, false,
|
252
|
+
"Indexing objects: %3d%% (%d/%d)%s\r",
|
253
|
+
percent(stats->received_objects, stats->total_objects),
|
254
|
+
stats->received_objects,
|
255
|
+
stats->total_objects,
|
256
|
+
done ? ", done." : "");
|
257
|
+
}
|
258
|
+
|
259
|
+
static int indexer_resolving(
|
260
|
+
cli_progress *progress,
|
261
|
+
const git_indexer_progress *stats)
|
262
|
+
{
|
263
|
+
bool done = (stats->indexed_deltas == stats->total_deltas);
|
264
|
+
|
265
|
+
return progress_printf(progress, false,
|
266
|
+
"Resolving deltas: %3d%% (%d/%d)%s\r",
|
267
|
+
percent(stats->indexed_deltas, stats->total_deltas),
|
268
|
+
stats->indexed_deltas, stats->total_deltas,
|
269
|
+
done ? ", done." : "");
|
270
|
+
}
|
271
|
+
|
272
|
+
int cli_progress_fetch_transfer(const git_indexer_progress *stats, void *payload)
|
273
|
+
{
|
274
|
+
cli_progress *progress = (cli_progress *)payload;
|
275
|
+
int error = 0;
|
276
|
+
|
277
|
+
switch (progress->action) {
|
278
|
+
case CLI_PROGRESS_NONE:
|
279
|
+
progress->action = CLI_PROGRESS_RECEIVING;
|
280
|
+
/* fall through */
|
281
|
+
|
282
|
+
case CLI_PROGRESS_RECEIVING:
|
283
|
+
if ((error = fetch_receiving(progress, stats)) < 0)
|
284
|
+
break;
|
285
|
+
|
286
|
+
/*
|
287
|
+
* Upgrade from receiving to resolving; do this after the
|
288
|
+
* final call to cli_progress_fetch_receiving (above) to
|
289
|
+
* ensure that we've printed a final "done" string after
|
290
|
+
* any sideband data.
|
291
|
+
*/
|
292
|
+
if (!stats->indexed_deltas)
|
293
|
+
break;
|
294
|
+
|
295
|
+
progress_complete(progress);
|
296
|
+
progress->action = CLI_PROGRESS_RESOLVING;
|
297
|
+
/* fall through */
|
298
|
+
|
299
|
+
case CLI_PROGRESS_RESOLVING:
|
300
|
+
error = indexer_resolving(progress, stats);
|
301
|
+
break;
|
302
|
+
|
303
|
+
default:
|
304
|
+
/* should not be reached */
|
305
|
+
GIT_ASSERT(!"unexpected progress state");
|
306
|
+
}
|
307
|
+
|
308
|
+
return error;
|
309
|
+
}
|
310
|
+
|
311
|
+
int cli_progress_indexer(
|
312
|
+
const git_indexer_progress *stats,
|
313
|
+
void *payload)
|
314
|
+
{
|
315
|
+
cli_progress *progress = (cli_progress *)payload;
|
316
|
+
int error = 0;
|
317
|
+
|
318
|
+
switch (progress->action) {
|
319
|
+
case CLI_PROGRESS_NONE:
|
320
|
+
progress->action = CLI_PROGRESS_INDEXING;
|
321
|
+
/* fall through */
|
322
|
+
|
323
|
+
case CLI_PROGRESS_INDEXING:
|
324
|
+
if ((error = indexer_indexing(progress, stats)) < 0)
|
325
|
+
break;
|
326
|
+
|
327
|
+
if (stats->indexed_deltas == stats->total_deltas)
|
328
|
+
break;
|
329
|
+
|
330
|
+
progress_complete(progress);
|
331
|
+
progress->action = CLI_PROGRESS_RESOLVING;
|
332
|
+
/* fall through */
|
333
|
+
|
334
|
+
case CLI_PROGRESS_RESOLVING:
|
335
|
+
error = indexer_resolving(progress, stats);
|
336
|
+
break;
|
337
|
+
|
338
|
+
default:
|
339
|
+
/* should not be reached */
|
340
|
+
GIT_ASSERT(!"unexpected progress state");
|
341
|
+
}
|
342
|
+
|
343
|
+
return error;
|
344
|
+
}
|
345
|
+
|
346
|
+
void cli_progress_checkout(
|
347
|
+
const char *path,
|
348
|
+
size_t completed_steps,
|
349
|
+
size_t total_steps,
|
350
|
+
void *payload)
|
351
|
+
{
|
352
|
+
cli_progress *progress = (cli_progress *)payload;
|
353
|
+
bool done = (completed_steps == total_steps);
|
354
|
+
|
355
|
+
GIT_UNUSED(path);
|
356
|
+
|
357
|
+
if (progress->action != CLI_PROGRESS_CHECKING_OUT) {
|
358
|
+
progress_complete(progress);
|
359
|
+
progress->action = CLI_PROGRESS_CHECKING_OUT;
|
360
|
+
}
|
361
|
+
|
362
|
+
progress_printf(progress, false,
|
363
|
+
"Checking out files: %3d%% (%" PRIuZ "/%" PRIuZ ")%s\r",
|
364
|
+
percent(completed_steps, total_steps),
|
365
|
+
completed_steps, total_steps,
|
366
|
+
done ? ", done." : "");
|
367
|
+
}
|
368
|
+
|
369
|
+
int cli_progress_abort(cli_progress *progress)
|
370
|
+
{
|
371
|
+
if (progress->onscreen.size > 0 && printf("\n") < 0)
|
372
|
+
return_os_error("could not print status");
|
373
|
+
|
374
|
+
return 0;
|
375
|
+
}
|
376
|
+
|
377
|
+
int cli_progress_finish(cli_progress *progress)
|
378
|
+
{
|
379
|
+
int error = progress->action ? progress_complete(progress) : 0;
|
380
|
+
|
381
|
+
progress->action = 0;
|
382
|
+
return error;
|
383
|
+
}
|
384
|
+
|
385
|
+
void cli_progress_dispose(cli_progress *progress)
|
386
|
+
{
|
387
|
+
if (progress == NULL)
|
388
|
+
return;
|
389
|
+
|
390
|
+
git_str_dispose(&progress->sideband);
|
391
|
+
git_str_dispose(&progress->onscreen);
|
392
|
+
git_str_dispose(&progress->deferred);
|
393
|
+
|
394
|
+
memset(progress, 0, sizeof(cli_progress));
|
395
|
+
}
|
@@ -0,0 +1,129 @@
|
|
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 CLI_progress_h__
|
9
|
+
#define CLI_progress_h__
|
10
|
+
|
11
|
+
#include <git2.h>
|
12
|
+
#include "str.h"
|
13
|
+
|
14
|
+
/*
|
15
|
+
* A general purpose set of progress printing functions. An individual
|
16
|
+
* `cli_progress` object is capable of displaying progress for a single
|
17
|
+
* function, even if that function displays multiple pieces of progress
|
18
|
+
* (like `git_clone`). `cli_progress_finish` should be called after
|
19
|
+
* any function invocation to re-set state.
|
20
|
+
*/
|
21
|
+
|
22
|
+
typedef enum {
|
23
|
+
CLI_PROGRESS_NONE,
|
24
|
+
CLI_PROGRESS_RECEIVING,
|
25
|
+
CLI_PROGRESS_INDEXING,
|
26
|
+
CLI_PROGRESS_RESOLVING,
|
27
|
+
CLI_PROGRESS_CHECKING_OUT
|
28
|
+
} cli_progress_t;
|
29
|
+
|
30
|
+
typedef struct {
|
31
|
+
cli_progress_t action;
|
32
|
+
|
33
|
+
/* Actions may time themselves (eg fetch) but are not required to */
|
34
|
+
uint64_t action_start;
|
35
|
+
uint64_t action_finish;
|
36
|
+
|
37
|
+
/* Last console update, avoid too frequent updates. */
|
38
|
+
uint64_t last_update;
|
39
|
+
|
40
|
+
/* Accumulators for partial output and deferred updates. */
|
41
|
+
git_str sideband;
|
42
|
+
git_str onscreen;
|
43
|
+
git_str deferred;
|
44
|
+
|
45
|
+
/* Last update about throughput */
|
46
|
+
uint64_t throughput_update;
|
47
|
+
double throughput_bytes;
|
48
|
+
} cli_progress;
|
49
|
+
|
50
|
+
#define CLI_PROGRESS_INIT { 0 }
|
51
|
+
|
52
|
+
/**
|
53
|
+
* Prints sideband data from fetch to the console. Suitable for a
|
54
|
+
* `sideband_progress` callback for `git_fetch_options`.
|
55
|
+
*
|
56
|
+
* @param str The sideband string
|
57
|
+
* @param len The length of the sideband string
|
58
|
+
* @param payload A pointer to the cli_progress
|
59
|
+
* @return 0 on success, -1 on failure
|
60
|
+
*/
|
61
|
+
extern int cli_progress_fetch_sideband(
|
62
|
+
const char *str,
|
63
|
+
int len,
|
64
|
+
void *payload);
|
65
|
+
|
66
|
+
/**
|
67
|
+
* Prints fetch transfer statistics to the console. Suitable for a
|
68
|
+
* `transfer_progress` callback for `git_fetch_options`.
|
69
|
+
*
|
70
|
+
* @param stats The indexer stats
|
71
|
+
* @param payload A pointer to the cli_progress
|
72
|
+
* @return 0 on success, -1 on failure
|
73
|
+
*/
|
74
|
+
extern int cli_progress_fetch_transfer(
|
75
|
+
const git_indexer_progress *stats,
|
76
|
+
void *payload);
|
77
|
+
|
78
|
+
/**
|
79
|
+
* Prints indexer progress to the console. Suitable for a
|
80
|
+
* `progress_cb` callback for `git_indexer_options`.
|
81
|
+
*
|
82
|
+
* @param stats The indexer stats
|
83
|
+
* @param payload A pointer to the cli_progress
|
84
|
+
*/
|
85
|
+
extern int cli_progress_indexer(
|
86
|
+
const git_indexer_progress *stats,
|
87
|
+
void *payload);
|
88
|
+
|
89
|
+
/**
|
90
|
+
* Prints checkout progress to the console. Suitable for a
|
91
|
+
* `progress_cb` callback for `git_checkout_options`.
|
92
|
+
*
|
93
|
+
* @param path The path being written
|
94
|
+
* @param completed_steps The completed checkout steps
|
95
|
+
* @param total_steps The total number of checkout steps
|
96
|
+
* @param payload A pointer to the cli_progress
|
97
|
+
*/
|
98
|
+
extern void cli_progress_checkout(
|
99
|
+
const char *path,
|
100
|
+
size_t completed_steps,
|
101
|
+
size_t total_steps,
|
102
|
+
void *payload);
|
103
|
+
|
104
|
+
/**
|
105
|
+
* Stop displaying progress quickly; suitable for stopping an application
|
106
|
+
* quickly. Does not display any lines that were buffered, just gets the
|
107
|
+
* console back to a sensible place.
|
108
|
+
*
|
109
|
+
* @param progress The progress information
|
110
|
+
* @return 0 on success, -1 on failure
|
111
|
+
*/
|
112
|
+
extern int cli_progress_abort(cli_progress *progress);
|
113
|
+
|
114
|
+
/**
|
115
|
+
* Finishes displaying progress; flushes any buffered output.
|
116
|
+
*
|
117
|
+
* @param progress The progress information
|
118
|
+
* @return 0 on success, -1 on failure
|
119
|
+
*/
|
120
|
+
extern int cli_progress_finish(cli_progress *progress);
|
121
|
+
|
122
|
+
/**
|
123
|
+
* Disposes the progress information.
|
124
|
+
*
|
125
|
+
* @param progress The progress information
|
126
|
+
*/
|
127
|
+
extern void cli_progress_dispose(cli_progress *progress);
|
128
|
+
|
129
|
+
#endif /* CLI_progress_h__ */
|
@@ -0,0 +1,20 @@
|
|
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 CLI_sighandler_h__
|
9
|
+
#define CLI_sighandler_h__
|
10
|
+
|
11
|
+
/**
|
12
|
+
* Sets up a signal handler that will run when the process is interrupted
|
13
|
+
* (via SIGINT on POSIX or Control-C or Control-Break on Windows).
|
14
|
+
*
|
15
|
+
* @param handler The function to run on interrupt
|
16
|
+
* @return 0 on success, -1 on failure
|
17
|
+
*/
|
18
|
+
int cli_sighandler_set_interrupt(void (*handler)(void));
|
19
|
+
|
20
|
+
#endif /* CLI_sighandler_h__ */
|
@@ -0,0 +1,37 @@
|
|
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 <stdint.h>
|
9
|
+
#include <signal.h>
|
10
|
+
#include "git2_util.h"
|
11
|
+
#include "common.h"
|
12
|
+
#include "sighandler.h"
|
13
|
+
|
14
|
+
static void (*interrupt_handler)(void) = NULL;
|
15
|
+
|
16
|
+
static void interrupt_proxy(int signal)
|
17
|
+
{
|
18
|
+
GIT_UNUSED(signal);
|
19
|
+
interrupt_handler();
|
20
|
+
}
|
21
|
+
|
22
|
+
int cli_sighandler_set_interrupt(void (*handler)(void))
|
23
|
+
{
|
24
|
+
void (*result)(int);
|
25
|
+
|
26
|
+
if ((interrupt_handler = handler) != NULL)
|
27
|
+
result = signal(SIGINT, interrupt_proxy);
|
28
|
+
else
|
29
|
+
result = signal(SIGINT, SIG_DFL);
|
30
|
+
|
31
|
+
if (result == SIG_ERR) {
|
32
|
+
git_error_set(GIT_ERROR_OS, "could not set signal handler");
|
33
|
+
return -1;
|
34
|
+
}
|
35
|
+
|
36
|
+
return 0;
|
37
|
+
}
|
@@ -0,0 +1,37 @@
|
|
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 "git2_util.h"
|
9
|
+
#include <windows.h>
|
10
|
+
|
11
|
+
#include "sighandler.h"
|
12
|
+
|
13
|
+
static void (*interrupt_handler)(void) = NULL;
|
14
|
+
|
15
|
+
static BOOL WINAPI interrupt_proxy(DWORD signal)
|
16
|
+
{
|
17
|
+
GIT_UNUSED(signal);
|
18
|
+
interrupt_handler();
|
19
|
+
return TRUE;
|
20
|
+
}
|
21
|
+
|
22
|
+
int cli_sighandler_set_interrupt(void (*handler)(void))
|
23
|
+
{
|
24
|
+
BOOL result;
|
25
|
+
|
26
|
+
if ((interrupt_handler = handler) != NULL)
|
27
|
+
result = SetConsoleCtrlHandler(interrupt_proxy, FALSE);
|
28
|
+
else
|
29
|
+
result = SetConsoleCtrlHandler(NULL, FALSE);
|
30
|
+
|
31
|
+
if (!result) {
|
32
|
+
git_error_set(GIT_ERROR_OS, "could not set control control handler");
|
33
|
+
return -1;
|
34
|
+
}
|
35
|
+
|
36
|
+
return 0;
|
37
|
+
}
|