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
@@ -15,6 +15,9 @@ extern int git_clone__submodule(git_repository **out,
|
|
15
15
|
const char *url, const char *local_path,
|
16
16
|
const git_clone_options *_options);
|
17
17
|
|
18
|
-
extern int git_clone__should_clone_local(
|
18
|
+
extern int git_clone__should_clone_local(
|
19
|
+
bool *out,
|
20
|
+
const char *url,
|
21
|
+
git_clone_local_t local);
|
19
22
|
|
20
23
|
#endif
|
@@ -14,14 +14,15 @@
|
|
14
14
|
#include "git2/mailmap.h"
|
15
15
|
#include "git2/sys/commit.h"
|
16
16
|
|
17
|
+
#include "buf.h"
|
17
18
|
#include "odb.h"
|
18
19
|
#include "commit.h"
|
19
20
|
#include "signature.h"
|
20
|
-
#include "message.h"
|
21
21
|
#include "refs.h"
|
22
22
|
#include "object.h"
|
23
23
|
#include "array.h"
|
24
24
|
#include "oidarray.h"
|
25
|
+
#include "grafts.h"
|
25
26
|
|
26
27
|
void git_commit__free(void *_commit)
|
27
28
|
{
|
@@ -42,7 +43,7 @@ void git_commit__free(void *_commit)
|
|
42
43
|
}
|
43
44
|
|
44
45
|
static int git_commit__create_buffer_internal(
|
45
|
-
|
46
|
+
git_str *out,
|
46
47
|
const git_signature *author,
|
47
48
|
const git_signature *committer,
|
48
49
|
const char *message_encoding,
|
@@ -56,28 +57,30 @@ static int git_commit__create_buffer_internal(
|
|
56
57
|
GIT_ASSERT_ARG(out);
|
57
58
|
GIT_ASSERT_ARG(tree);
|
58
59
|
|
59
|
-
|
60
|
+
if (git_object__write_oid_header(out, "tree ", tree) < 0)
|
61
|
+
goto on_error;
|
60
62
|
|
61
63
|
for (i = 0; i < git_array_size(*parents); i++) {
|
62
64
|
parent = git_array_get(*parents, i);
|
63
|
-
|
65
|
+
if (git_object__write_oid_header(out, "parent ", parent) < 0)
|
66
|
+
goto on_error;
|
64
67
|
}
|
65
68
|
|
66
69
|
git_signature__writebuf(out, "author ", author);
|
67
70
|
git_signature__writebuf(out, "committer ", committer);
|
68
71
|
|
69
72
|
if (message_encoding != NULL)
|
70
|
-
|
73
|
+
git_str_printf(out, "encoding %s\n", message_encoding);
|
71
74
|
|
72
|
-
|
75
|
+
git_str_putc(out, '\n');
|
73
76
|
|
74
|
-
if (
|
77
|
+
if (git_str_puts(out, message) < 0)
|
75
78
|
goto on_error;
|
76
79
|
|
77
80
|
return 0;
|
78
81
|
|
79
82
|
on_error:
|
80
|
-
|
83
|
+
git_str_dispose(out);
|
81
84
|
return -1;
|
82
85
|
}
|
83
86
|
|
@@ -136,7 +139,7 @@ static int git_commit__create_internal(
|
|
136
139
|
int error;
|
137
140
|
git_odb *odb;
|
138
141
|
git_reference *ref = NULL;
|
139
|
-
|
142
|
+
git_str buf = GIT_STR_INIT;
|
140
143
|
const git_oid *current_id = NULL;
|
141
144
|
git_array_oid_t parents = GIT_ARRAY_INIT;
|
142
145
|
|
@@ -179,7 +182,7 @@ static int git_commit__create_internal(
|
|
179
182
|
cleanup:
|
180
183
|
git_array_clear(parents);
|
181
184
|
git_reference_free(ref);
|
182
|
-
|
185
|
+
git_str_dispose(&buf);
|
183
186
|
return error;
|
184
187
|
}
|
185
188
|
|
@@ -388,16 +391,22 @@ int git_commit_amend(
|
|
388
391
|
return error;
|
389
392
|
}
|
390
393
|
|
391
|
-
static int commit_parse(
|
394
|
+
static int commit_parse(
|
395
|
+
git_commit *commit,
|
396
|
+
const char *data,
|
397
|
+
size_t size,
|
398
|
+
git_commit__parse_options *opts)
|
392
399
|
{
|
393
400
|
const char *buffer_start = data, *buffer;
|
394
401
|
const char *buffer_end = buffer_start + size;
|
395
402
|
git_oid parent_id;
|
396
403
|
size_t header_len;
|
397
404
|
git_signature dummy_sig;
|
405
|
+
int error;
|
398
406
|
|
399
407
|
GIT_ASSERT_ARG(commit);
|
400
408
|
GIT_ASSERT_ARG(data);
|
409
|
+
GIT_ASSERT_ARG(opts);
|
401
410
|
|
402
411
|
buffer = buffer_start;
|
403
412
|
|
@@ -406,39 +415,40 @@ static int commit_parse(git_commit *commit, const char *data, size_t size, unsig
|
|
406
415
|
GIT_ERROR_CHECK_ARRAY(commit->parent_ids);
|
407
416
|
|
408
417
|
/* The tree is always the first field */
|
409
|
-
if (!(flags & GIT_COMMIT_PARSE_QUICK)) {
|
410
|
-
|
418
|
+
if (!(opts->flags & GIT_COMMIT_PARSE_QUICK)) {
|
419
|
+
if (git_object__parse_oid_header(&commit->tree_id,
|
420
|
+
&buffer, buffer_end, "tree ",
|
421
|
+
opts->oid_type) < 0)
|
411
422
|
goto bad_buffer;
|
412
423
|
} else {
|
413
|
-
size_t tree_len = strlen("tree ") +
|
424
|
+
size_t tree_len = strlen("tree ") + git_oid_hexsize(opts->oid_type) + 1;
|
425
|
+
|
414
426
|
if (buffer + tree_len > buffer_end)
|
415
427
|
goto bad_buffer;
|
416
428
|
buffer += tree_len;
|
417
429
|
}
|
418
430
|
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
while (git_oid__parse(&parent_id, &buffer, buffer_end, "parent ") == 0) {
|
431
|
+
while (git_object__parse_oid_header(&parent_id,
|
432
|
+
&buffer, buffer_end, "parent ",
|
433
|
+
opts->oid_type) == 0) {
|
424
434
|
git_oid *new_id = git_array_alloc(commit->parent_ids);
|
425
435
|
GIT_ERROR_CHECK_ALLOC(new_id);
|
426
436
|
|
427
437
|
git_oid_cpy(new_id, &parent_id);
|
428
438
|
}
|
429
439
|
|
430
|
-
if (!(flags & GIT_COMMIT_PARSE_QUICK)) {
|
440
|
+
if (!opts || !(opts->flags & GIT_COMMIT_PARSE_QUICK)) {
|
431
441
|
commit->author = git__malloc(sizeof(git_signature));
|
432
442
|
GIT_ERROR_CHECK_ALLOC(commit->author);
|
433
443
|
|
434
|
-
if (git_signature__parse(commit->author, &buffer, buffer_end, "author ", '\n') < 0)
|
435
|
-
return
|
444
|
+
if ((error = git_signature__parse(commit->author, &buffer, buffer_end, "author ", '\n')) < 0)
|
445
|
+
return error;
|
436
446
|
}
|
437
447
|
|
438
448
|
/* Some tools create multiple author fields, ignore the extra ones */
|
439
449
|
while (!git__prefixncmp(buffer, buffer_end - buffer, "author ")) {
|
440
|
-
if (git_signature__parse(&dummy_sig, &buffer, buffer_end, "author ", '\n') < 0)
|
441
|
-
return
|
450
|
+
if ((error = git_signature__parse(&dummy_sig, &buffer, buffer_end, "author ", '\n')) < 0)
|
451
|
+
return error;
|
442
452
|
|
443
453
|
git__free(dummy_sig.name);
|
444
454
|
git__free(dummy_sig.email);
|
@@ -448,10 +458,10 @@ static int commit_parse(git_commit *commit, const char *data, size_t size, unsig
|
|
448
458
|
commit->committer = git__malloc(sizeof(git_signature));
|
449
459
|
GIT_ERROR_CHECK_ALLOC(commit->committer);
|
450
460
|
|
451
|
-
if (git_signature__parse(commit->committer, &buffer, buffer_end, "committer ", '\n') < 0)
|
452
|
-
return
|
461
|
+
if ((error = git_signature__parse(commit->committer, &buffer, buffer_end, "committer ", '\n')) < 0)
|
462
|
+
return error;
|
453
463
|
|
454
|
-
if (flags & GIT_COMMIT_PARSE_QUICK)
|
464
|
+
if (opts && opts->flags & GIT_COMMIT_PARSE_QUICK)
|
455
465
|
return 0;
|
456
466
|
|
457
467
|
/* Parse add'l header entries */
|
@@ -493,22 +503,67 @@ static int commit_parse(git_commit *commit, const char *data, size_t size, unsig
|
|
493
503
|
|
494
504
|
bad_buffer:
|
495
505
|
git_error_set(GIT_ERROR_OBJECT, "failed to parse bad commit object");
|
496
|
-
return
|
506
|
+
return GIT_EINVALID;
|
497
507
|
}
|
498
508
|
|
499
|
-
int
|
509
|
+
int git_commit__parse(
|
510
|
+
void *commit,
|
511
|
+
git_odb_object *odb_obj,
|
512
|
+
git_oid_t oid_type)
|
500
513
|
{
|
501
|
-
|
514
|
+
git_commit__parse_options parse_options = {0};
|
515
|
+
parse_options.oid_type = oid_type;
|
516
|
+
|
517
|
+
return git_commit__parse_ext(commit, odb_obj, &parse_options);
|
502
518
|
}
|
503
519
|
|
504
|
-
int
|
520
|
+
int git_commit__parse_raw(
|
521
|
+
void *commit,
|
522
|
+
const char *data,
|
523
|
+
size_t size,
|
524
|
+
git_oid_t oid_type)
|
505
525
|
{
|
506
|
-
|
526
|
+
git_commit__parse_options parse_options = {0};
|
527
|
+
parse_options.oid_type = oid_type;
|
528
|
+
|
529
|
+
return commit_parse(commit, data, size, &parse_options);
|
530
|
+
}
|
531
|
+
|
532
|
+
static int assign_commit_parents_from_graft(git_commit *commit, git_commit_graft *graft) {
|
533
|
+
size_t idx;
|
534
|
+
git_oid *oid;
|
535
|
+
|
536
|
+
git_array_clear(commit->parent_ids);
|
537
|
+
git_array_init_to_size(commit->parent_ids, git_array_size(graft->parents));
|
538
|
+
git_array_foreach(graft->parents, idx, oid) {
|
539
|
+
git_oid *id = git_array_alloc(commit->parent_ids);
|
540
|
+
GIT_ERROR_CHECK_ALLOC(id);
|
541
|
+
|
542
|
+
git_oid_cpy(id, oid);
|
543
|
+
}
|
544
|
+
|
545
|
+
return 0;
|
507
546
|
}
|
508
547
|
|
509
|
-
int
|
548
|
+
int git_commit__parse_ext(
|
549
|
+
git_commit *commit,
|
550
|
+
git_odb_object *odb_obj,
|
551
|
+
git_commit__parse_options *parse_opts)
|
510
552
|
{
|
511
|
-
|
553
|
+
git_repository *repo = git_object_owner((git_object *)commit);
|
554
|
+
git_commit_graft *graft;
|
555
|
+
int error;
|
556
|
+
|
557
|
+
if ((error = commit_parse(commit, git_odb_object_data(odb_obj),
|
558
|
+
git_odb_object_size(odb_obj), parse_opts)) < 0)
|
559
|
+
return error;
|
560
|
+
|
561
|
+
/* Perform necessary grafts */
|
562
|
+
if (git_grafts_get(&graft, repo->grafts, git_odb_object_id(odb_obj)) != 0 &&
|
563
|
+
git_grafts_get(&graft, repo->shallow_grafts, git_odb_object_id(odb_obj)) != 0)
|
564
|
+
return 0;
|
565
|
+
|
566
|
+
return assign_commit_parents_from_graft(commit, graft);
|
512
567
|
}
|
513
568
|
|
514
569
|
#define GIT_COMMIT_GETTER(_rvalue, _name, _return, _invalid) \
|
@@ -545,8 +600,8 @@ const char *git_commit_message(const git_commit *commit)
|
|
545
600
|
|
546
601
|
const char *git_commit_summary(git_commit *commit)
|
547
602
|
{
|
548
|
-
|
549
|
-
const char *msg, *space;
|
603
|
+
git_str summary = GIT_STR_INIT;
|
604
|
+
const char *msg, *space, *next;
|
550
605
|
bool space_contains_newline = false;
|
551
606
|
|
552
607
|
GIT_ASSERT_ARG_WITH_RETVAL(commit, NULL);
|
@@ -555,10 +610,21 @@ const char *git_commit_summary(git_commit *commit)
|
|
555
610
|
for (msg = git_commit_message(commit), space = NULL; *msg; ++msg) {
|
556
611
|
char next_character = msg[0];
|
557
612
|
/* stop processing at the end of the first paragraph */
|
558
|
-
if (next_character == '\n'
|
559
|
-
|
613
|
+
if (next_character == '\n') {
|
614
|
+
if (!msg[1])
|
615
|
+
break;
|
616
|
+
if (msg[1] == '\n')
|
617
|
+
break;
|
618
|
+
/* stop processing if next line contains only whitespace */
|
619
|
+
next = msg + 1;
|
620
|
+
while (*next && git__isspace_nonlf(*next)) {
|
621
|
+
++next;
|
622
|
+
}
|
623
|
+
if (!*next || *next == '\n')
|
624
|
+
break;
|
625
|
+
}
|
560
626
|
/* record the beginning of contiguous whitespace runs */
|
561
|
-
|
627
|
+
if (git__isspace(next_character)) {
|
562
628
|
if(space == NULL) {
|
563
629
|
space = msg;
|
564
630
|
space_contains_newline = false;
|
@@ -570,17 +636,17 @@ const char *git_commit_summary(git_commit *commit)
|
|
570
636
|
/* process any recorded whitespace */
|
571
637
|
if (space) {
|
572
638
|
if(space_contains_newline)
|
573
|
-
|
639
|
+
git_str_putc(&summary, ' '); /* if the space contains a newline, collapse to ' ' */
|
574
640
|
else
|
575
|
-
|
641
|
+
git_str_put(&summary, space, (msg - space)); /* otherwise copy it */
|
576
642
|
space = NULL;
|
577
643
|
}
|
578
644
|
/* copy the next character */
|
579
|
-
|
645
|
+
git_str_putc(&summary, next_character);
|
580
646
|
}
|
581
647
|
}
|
582
648
|
|
583
|
-
commit->summary =
|
649
|
+
commit->summary = git_str_detach(&summary);
|
584
650
|
if (!commit->summary)
|
585
651
|
commit->summary = git__strdup("");
|
586
652
|
}
|
@@ -678,11 +744,22 @@ int git_commit_nth_gen_ancestor(
|
|
678
744
|
return 0;
|
679
745
|
}
|
680
746
|
|
681
|
-
int git_commit_header_field(
|
747
|
+
int git_commit_header_field(
|
748
|
+
git_buf *out,
|
749
|
+
const git_commit *commit,
|
750
|
+
const char *field)
|
751
|
+
{
|
752
|
+
GIT_BUF_WRAP_PRIVATE(out, git_commit__header_field, commit, field);
|
753
|
+
}
|
754
|
+
|
755
|
+
int git_commit__header_field(
|
756
|
+
git_str *out,
|
757
|
+
const git_commit *commit,
|
758
|
+
const char *field)
|
682
759
|
{
|
683
760
|
const char *eol, *buf = commit->raw_header;
|
684
761
|
|
685
|
-
|
762
|
+
git_str_clear(out);
|
686
763
|
|
687
764
|
while ((eol = strchr(buf, '\n'))) {
|
688
765
|
/* We can skip continuations here */
|
@@ -706,22 +783,22 @@ int git_commit_header_field(git_buf *out, const git_commit *commit, const char *
|
|
706
783
|
|
707
784
|
buf++; /* skip the SP */
|
708
785
|
|
709
|
-
|
710
|
-
if (
|
786
|
+
git_str_put(out, buf, eol - buf);
|
787
|
+
if (git_str_oom(out))
|
711
788
|
goto oom;
|
712
789
|
|
713
790
|
/* If the next line starts with SP, it's multi-line, we must continue */
|
714
791
|
while (eol[1] == ' ') {
|
715
|
-
|
792
|
+
git_str_putc(out, '\n');
|
716
793
|
buf = eol + 2;
|
717
794
|
eol = strchr(buf, '\n');
|
718
795
|
if (!eol)
|
719
796
|
goto malformed;
|
720
797
|
|
721
|
-
|
798
|
+
git_str_put(out, buf, eol - buf);
|
722
799
|
}
|
723
800
|
|
724
|
-
if (
|
801
|
+
if (git_str_oom(out))
|
725
802
|
goto oom;
|
726
803
|
|
727
804
|
return 0;
|
@@ -738,7 +815,35 @@ oom:
|
|
738
815
|
return -1;
|
739
816
|
}
|
740
817
|
|
741
|
-
int git_commit_extract_signature(
|
818
|
+
int git_commit_extract_signature(
|
819
|
+
git_buf *signature_out,
|
820
|
+
git_buf *signed_data_out,
|
821
|
+
git_repository *repo,
|
822
|
+
git_oid *commit_id,
|
823
|
+
const char *field)
|
824
|
+
{
|
825
|
+
git_str signature = GIT_STR_INIT, signed_data = GIT_STR_INIT;
|
826
|
+
int error;
|
827
|
+
|
828
|
+
if ((error = git_buf_tostr(&signature, signature_out)) < 0 ||
|
829
|
+
(error = git_buf_tostr(&signed_data, signed_data_out)) < 0 ||
|
830
|
+
(error = git_commit__extract_signature(&signature, &signed_data, repo, commit_id, field)) < 0 ||
|
831
|
+
(error = git_buf_fromstr(signature_out, &signature)) < 0 ||
|
832
|
+
(error = git_buf_fromstr(signed_data_out, &signed_data)) < 0)
|
833
|
+
goto done;
|
834
|
+
|
835
|
+
done:
|
836
|
+
git_str_dispose(&signature);
|
837
|
+
git_str_dispose(&signed_data);
|
838
|
+
return error;
|
839
|
+
}
|
840
|
+
|
841
|
+
int git_commit__extract_signature(
|
842
|
+
git_str *signature,
|
843
|
+
git_str *signed_data,
|
844
|
+
git_repository *repo,
|
845
|
+
git_oid *commit_id,
|
846
|
+
const char *field)
|
742
847
|
{
|
743
848
|
git_odb_object *obj;
|
744
849
|
git_odb *odb;
|
@@ -746,8 +851,8 @@ int git_commit_extract_signature(git_buf *signature, git_buf *signed_data, git_r
|
|
746
851
|
const char *h, *eol;
|
747
852
|
int error;
|
748
853
|
|
749
|
-
|
750
|
-
|
854
|
+
git_str_clear(signature);
|
855
|
+
git_str_clear(signed_data);
|
751
856
|
|
752
857
|
if (!field)
|
753
858
|
field = "gpgsig";
|
@@ -769,7 +874,7 @@ int git_commit_extract_signature(git_buf *signature, git_buf *signed_data, git_r
|
|
769
874
|
while ((h = strchr(buf, '\n')) && h[1] != '\0') {
|
770
875
|
h++;
|
771
876
|
if (git__prefixcmp(buf, field)) {
|
772
|
-
if (
|
877
|
+
if (git_str_put(signed_data, buf, h - buf) < 0)
|
773
878
|
return -1;
|
774
879
|
|
775
880
|
buf = h;
|
@@ -788,25 +893,25 @@ int git_commit_extract_signature(git_buf *signature, git_buf *signed_data, git_r
|
|
788
893
|
|
789
894
|
h++; /* skip the SP */
|
790
895
|
|
791
|
-
|
792
|
-
if (
|
896
|
+
git_str_put(signature, h, eol - h);
|
897
|
+
if (git_str_oom(signature))
|
793
898
|
goto oom;
|
794
899
|
|
795
900
|
/* If the next line starts with SP, it's multi-line, we must continue */
|
796
901
|
while (eol[1] == ' ') {
|
797
|
-
|
902
|
+
git_str_putc(signature, '\n');
|
798
903
|
h = eol + 2;
|
799
904
|
eol = strchr(h, '\n');
|
800
905
|
if (!eol)
|
801
906
|
goto malformed;
|
802
907
|
|
803
|
-
|
908
|
+
git_str_put(signature, h, eol - h);
|
804
909
|
}
|
805
910
|
|
806
|
-
if (
|
911
|
+
if (git_str_oom(signature))
|
807
912
|
goto oom;
|
808
913
|
|
809
|
-
error =
|
914
|
+
error = git_str_puts(signed_data, eol+1);
|
810
915
|
git_odb_object_free(obj);
|
811
916
|
return error;
|
812
917
|
}
|
@@ -826,12 +931,29 @@ oom:
|
|
826
931
|
|
827
932
|
cleanup:
|
828
933
|
git_odb_object_free(obj);
|
829
|
-
|
830
|
-
|
934
|
+
git_str_clear(signature);
|
935
|
+
git_str_clear(signed_data);
|
831
936
|
return error;
|
832
937
|
}
|
833
938
|
|
834
|
-
int git_commit_create_buffer(
|
939
|
+
int git_commit_create_buffer(
|
940
|
+
git_buf *out,
|
941
|
+
git_repository *repo,
|
942
|
+
const git_signature *author,
|
943
|
+
const git_signature *committer,
|
944
|
+
const char *message_encoding,
|
945
|
+
const char *message,
|
946
|
+
const git_tree *tree,
|
947
|
+
size_t parent_count,
|
948
|
+
const git_commit *parents[])
|
949
|
+
{
|
950
|
+
GIT_BUF_WRAP_PRIVATE(out, git_commit__create_buffer, repo,
|
951
|
+
author, committer, message_encoding, message,
|
952
|
+
tree, parent_count, parents);
|
953
|
+
}
|
954
|
+
|
955
|
+
int git_commit__create_buffer(
|
956
|
+
git_str *out,
|
835
957
|
git_repository *repo,
|
836
958
|
const git_signature *author,
|
837
959
|
const git_signature *committer,
|
@@ -866,7 +988,7 @@ int git_commit_create_buffer(git_buf *out,
|
|
866
988
|
/**
|
867
989
|
* Append to 'out' properly marking continuations when there's a newline in 'content'
|
868
990
|
*/
|
869
|
-
static int format_header_field(
|
991
|
+
static int format_header_field(git_str *out, const char *field, const char *content)
|
870
992
|
{
|
871
993
|
const char *lf;
|
872
994
|
|
@@ -874,19 +996,19 @@ static int format_header_field(git_buf *out, const char *field, const char *cont
|
|
874
996
|
GIT_ASSERT_ARG(field);
|
875
997
|
GIT_ASSERT_ARG(content);
|
876
998
|
|
877
|
-
|
878
|
-
|
999
|
+
git_str_puts(out, field);
|
1000
|
+
git_str_putc(out, ' ');
|
879
1001
|
|
880
1002
|
while ((lf = strchr(content, '\n')) != NULL) {
|
881
|
-
|
882
|
-
|
1003
|
+
git_str_put(out, content, lf - content);
|
1004
|
+
git_str_puts(out, "\n ");
|
883
1005
|
content = lf + 1;
|
884
1006
|
}
|
885
1007
|
|
886
|
-
|
887
|
-
|
1008
|
+
git_str_puts(out, content);
|
1009
|
+
git_str_putc(out, '\n');
|
888
1010
|
|
889
|
-
return
|
1011
|
+
return git_str_oom(out) ? -1 : 0;
|
890
1012
|
}
|
891
1013
|
|
892
1014
|
static const git_oid *commit_parent_from_commit(size_t n, void *payload)
|
@@ -908,15 +1030,20 @@ int git_commit_create_with_signature(
|
|
908
1030
|
int error = 0;
|
909
1031
|
const char *field;
|
910
1032
|
const char *header_end;
|
911
|
-
|
1033
|
+
git_str commit = GIT_STR_INIT;
|
912
1034
|
git_commit *parsed;
|
913
1035
|
git_array_oid_t parents = GIT_ARRAY_INIT;
|
1036
|
+
git_commit__parse_options parse_opts = {0};
|
1037
|
+
|
1038
|
+
parse_opts.oid_type = repo->oid_type;
|
914
1039
|
|
915
1040
|
/* The first step is to verify that all the tree and parents exist */
|
916
1041
|
parsed = git__calloc(1, sizeof(git_commit));
|
917
1042
|
GIT_ERROR_CHECK_ALLOC(parsed);
|
918
|
-
if (
|
1043
|
+
if (commit_parse(parsed, commit_content, strlen(commit_content), &parse_opts) < 0) {
|
1044
|
+
error = -1;
|
919
1045
|
goto cleanup;
|
1046
|
+
}
|
920
1047
|
|
921
1048
|
if ((error = validate_tree_and_parents(&parents, repo, &parsed->tree_id, commit_parent_from_commit, parsed, NULL, true)) < 0)
|
922
1049
|
goto cleanup;
|
@@ -933,7 +1060,7 @@ int git_commit_create_with_signature(
|
|
933
1060
|
|
934
1061
|
/* The header ends after the first LF */
|
935
1062
|
header_end++;
|
936
|
-
|
1063
|
+
git_str_put(&commit, commit_content, header_end - commit_content);
|
937
1064
|
|
938
1065
|
if (signature != NULL) {
|
939
1066
|
field = signature_field ? signature_field : "gpgsig";
|
@@ -942,9 +1069,9 @@ int git_commit_create_with_signature(
|
|
942
1069
|
goto cleanup;
|
943
1070
|
}
|
944
1071
|
|
945
|
-
|
1072
|
+
git_str_puts(&commit, header_end);
|
946
1073
|
|
947
|
-
if (
|
1074
|
+
if (git_str_oom(&commit))
|
948
1075
|
return -1;
|
949
1076
|
|
950
1077
|
if ((error = git_repository_odb__weakptr(&odb, repo)) < 0)
|
@@ -955,7 +1082,84 @@ int git_commit_create_with_signature(
|
|
955
1082
|
|
956
1083
|
cleanup:
|
957
1084
|
git_commit__free(parsed);
|
958
|
-
|
1085
|
+
git_str_dispose(&commit);
|
1086
|
+
return error;
|
1087
|
+
}
|
1088
|
+
|
1089
|
+
int git_commit_create_from_stage(
|
1090
|
+
git_oid *out,
|
1091
|
+
git_repository *repo,
|
1092
|
+
const char *message,
|
1093
|
+
const git_commit_create_options *given_opts)
|
1094
|
+
{
|
1095
|
+
git_commit_create_options opts = GIT_COMMIT_CREATE_OPTIONS_INIT;
|
1096
|
+
git_signature *default_signature = NULL;
|
1097
|
+
const git_signature *author, *committer;
|
1098
|
+
git_index *index = NULL;
|
1099
|
+
git_diff *diff = NULL;
|
1100
|
+
git_oid tree_id;
|
1101
|
+
git_tree *head_tree = NULL, *tree = NULL;
|
1102
|
+
git_commitarray parents = { 0 };
|
1103
|
+
int error = -1;
|
1104
|
+
|
1105
|
+
GIT_ASSERT_ARG(out && repo);
|
1106
|
+
|
1107
|
+
if (given_opts)
|
1108
|
+
memcpy(&opts, given_opts, sizeof(git_commit_create_options));
|
1109
|
+
|
1110
|
+
author = opts.author;
|
1111
|
+
committer = opts.committer;
|
1112
|
+
|
1113
|
+
if (!author || !committer) {
|
1114
|
+
if (git_signature_default(&default_signature, repo) < 0)
|
1115
|
+
goto done;
|
1116
|
+
|
1117
|
+
if (!author)
|
1118
|
+
author = default_signature;
|
1119
|
+
|
1120
|
+
if (!committer)
|
1121
|
+
committer = default_signature;
|
1122
|
+
}
|
1123
|
+
|
1124
|
+
if (git_repository_index(&index, repo) < 0)
|
1125
|
+
goto done;
|
1126
|
+
|
1127
|
+
if (!opts.allow_empty_commit) {
|
1128
|
+
error = git_repository_head_tree(&head_tree, repo);
|
1129
|
+
|
1130
|
+
if (error && error != GIT_EUNBORNBRANCH)
|
1131
|
+
goto done;
|
1132
|
+
|
1133
|
+
error = -1;
|
1134
|
+
|
1135
|
+
if (git_diff_tree_to_index(&diff, repo, head_tree, index, NULL) < 0)
|
1136
|
+
goto done;
|
1137
|
+
|
1138
|
+
if (git_diff_num_deltas(diff) == 0) {
|
1139
|
+
git_error_set(GIT_ERROR_REPOSITORY,
|
1140
|
+
"no changes are staged for commit");
|
1141
|
+
error = GIT_EUNCHANGED;
|
1142
|
+
goto done;
|
1143
|
+
}
|
1144
|
+
}
|
1145
|
+
|
1146
|
+
if (git_index_write_tree(&tree_id, index) < 0 ||
|
1147
|
+
git_tree_lookup(&tree, repo, &tree_id) < 0 ||
|
1148
|
+
git_repository_commit_parents(&parents, repo) < 0)
|
1149
|
+
goto done;
|
1150
|
+
|
1151
|
+
error = git_commit_create(out, repo, "HEAD", author, committer,
|
1152
|
+
opts.message_encoding, message,
|
1153
|
+
tree, parents.count,
|
1154
|
+
(const git_commit **)parents.commits);
|
1155
|
+
|
1156
|
+
done:
|
1157
|
+
git_commitarray_dispose(&parents);
|
1158
|
+
git_signature_free(default_signature);
|
1159
|
+
git_tree_free(tree);
|
1160
|
+
git_tree_free(head_tree);
|
1161
|
+
git_diff_free(diff);
|
1162
|
+
git_index_free(index);
|
959
1163
|
return error;
|
960
1164
|
}
|
961
1165
|
|
@@ -970,3 +1174,18 @@ int git_commit_author_with_mailmap(
|
|
970
1174
|
{
|
971
1175
|
return git_mailmap_resolve_signature(out, mailmap, commit->author);
|
972
1176
|
}
|
1177
|
+
|
1178
|
+
void git_commitarray_dispose(git_commitarray *array)
|
1179
|
+
{
|
1180
|
+
size_t i;
|
1181
|
+
|
1182
|
+
if (array == NULL)
|
1183
|
+
return;
|
1184
|
+
|
1185
|
+
for (i = 0; i < array->count; i++)
|
1186
|
+
git_commit_free(array->commits[i]);
|
1187
|
+
|
1188
|
+
git__free((git_commit **)array->commits);
|
1189
|
+
|
1190
|
+
memset(array, 0, sizeof(*array));
|
1191
|
+
}
|