rugged 1.3.2 → 1.6.2
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 +7 -4
- data/ext/rugged/rugged.c +16 -0
- data/ext/rugged/rugged.h +4 -0
- 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/CMakeLists.txt +132 -288
- data/vendor/libgit2/COPYING +106 -19
- data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
- data/vendor/libgit2/cmake/AddClarTest.cmake +7 -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 → FindHTTPParser.cmake} +17 -17
- data/vendor/libgit2/cmake/FindIconv.cmake +27 -27
- 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 +19 -0
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +100 -100
- data/vendor/libgit2/cmake/SelectHashes.cmake +91 -53
- data/vendor/libgit2/cmake/SelectRegex.cmake +51 -0
- data/vendor/libgit2/cmake/SelectSSH.cmake +41 -0
- data/vendor/libgit2/cmake/SelectWinHTTP.cmake +17 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +34 -0
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +33 -31
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +3 -1
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +88 -88
- data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
- data/vendor/libgit2/deps/zlib/adler32.c +7 -0
- data/vendor/libgit2/deps/zlib/crc32.c +975 -288
- data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
- data/vendor/libgit2/deps/zlib/deflate.c +83 -31
- data/vendor/libgit2/deps/zlib/deflate.h +12 -15
- data/vendor/libgit2/deps/zlib/gzguts.h +3 -2
- data/vendor/libgit2/deps/zlib/infback.c +2 -1
- data/vendor/libgit2/deps/zlib/inffast.c +14 -14
- data/vendor/libgit2/deps/zlib/inflate.c +39 -8
- data/vendor/libgit2/deps/zlib/inflate.h +3 -2
- data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
- data/vendor/libgit2/deps/zlib/trees.c +27 -48
- data/vendor/libgit2/deps/zlib/zlib.h +126 -100
- data/vendor/libgit2/deps/zlib/zutil.c +2 -2
- data/vendor/libgit2/deps/zlib/zutil.h +12 -9
- data/vendor/libgit2/include/git2/apply.h +16 -2
- data/vendor/libgit2/include/git2/attr.h +11 -2
- data/vendor/libgit2/include/git2/blame.h +4 -1
- data/vendor/libgit2/include/git2/blob.h +14 -1
- data/vendor/libgit2/include/git2/branch.h +4 -2
- data/vendor/libgit2/include/git2/buffer.h +18 -78
- data/vendor/libgit2/include/git2/cert.h +2 -2
- data/vendor/libgit2/include/git2/checkout.h +5 -2
- data/vendor/libgit2/include/git2/clone.h +3 -3
- data/vendor/libgit2/include/git2/commit.h +2 -0
- data/vendor/libgit2/include/git2/common.h +28 -7
- data/vendor/libgit2/include/git2/config.h +25 -9
- data/vendor/libgit2/include/git2/credential.h +2 -1
- data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
- data/vendor/libgit2/include/git2/deprecated.h +9 -1
- data/vendor/libgit2/include/git2/describe.h +7 -2
- data/vendor/libgit2/include/git2/diff.h +18 -10
- data/vendor/libgit2/include/git2/email.h +1 -1
- data/vendor/libgit2/include/git2/errors.h +17 -3
- data/vendor/libgit2/include/git2/experimental.h +20 -0
- data/vendor/libgit2/include/git2/filter.h +7 -2
- data/vendor/libgit2/include/git2/graph.h +1 -0
- data/vendor/libgit2/include/git2/ignore.h +1 -1
- data/vendor/libgit2/include/git2/index.h +11 -5
- data/vendor/libgit2/include/git2/indexer.h +48 -0
- data/vendor/libgit2/include/git2/merge.h +24 -4
- data/vendor/libgit2/include/git2/message.h +2 -0
- data/vendor/libgit2/include/git2/object.h +49 -0
- data/vendor/libgit2/include/git2/odb.h +94 -13
- data/vendor/libgit2/include/git2/odb_backend.h +107 -19
- data/vendor/libgit2/include/git2/oid.h +115 -15
- data/vendor/libgit2/include/git2/pack.h +24 -8
- data/vendor/libgit2/include/git2/patch.h +8 -0
- data/vendor/libgit2/include/git2/pathspec.h +1 -1
- data/vendor/libgit2/include/git2/proxy.h +1 -1
- data/vendor/libgit2/include/git2/rebase.h +9 -1
- data/vendor/libgit2/include/git2/refdb.h +3 -0
- data/vendor/libgit2/include/git2/reflog.h +1 -1
- data/vendor/libgit2/include/git2/refs.h +2 -2
- data/vendor/libgit2/include/git2/remote.h +184 -37
- data/vendor/libgit2/include/git2/repository.h +34 -10
- data/vendor/libgit2/include/git2/reset.h +2 -2
- data/vendor/libgit2/include/git2/revparse.h +1 -1
- data/vendor/libgit2/include/git2/revwalk.h +4 -1
- data/vendor/libgit2/include/git2/signature.h +1 -1
- data/vendor/libgit2/include/git2/stash.h +61 -7
- data/vendor/libgit2/include/git2/status.h +14 -5
- data/vendor/libgit2/include/git2/strarray.h +0 -13
- data/vendor/libgit2/include/git2/submodule.h +7 -2
- data/vendor/libgit2/include/git2/sys/commit_graph.h +1 -1
- data/vendor/libgit2/include/git2/sys/odb_backend.h +3 -6
- data/vendor/libgit2/include/git2/sys/remote.h +46 -0
- data/vendor/libgit2/include/git2/sys/stream.h +1 -1
- data/vendor/libgit2/include/git2/sys/transport.h +46 -39
- data/vendor/libgit2/include/git2/tag.h +1 -0
- data/vendor/libgit2/include/git2/tree.h +4 -3
- data/vendor/libgit2/include/git2/types.h +7 -7
- data/vendor/libgit2/include/git2/version.h +27 -6
- data/vendor/libgit2/include/git2/worktree.h +12 -2
- data/vendor/libgit2/include/git2.h +1 -0
- data/vendor/libgit2/src/CMakeLists.txt +177 -419
- data/vendor/libgit2/src/README.md +12 -0
- data/vendor/libgit2/src/cli/CMakeLists.txt +57 -0
- data/vendor/libgit2/src/cli/README.md +26 -0
- data/vendor/libgit2/src/cli/cli.h +20 -0
- data/vendor/libgit2/src/cli/cmd.c +21 -0
- data/vendor/libgit2/src/cli/cmd.h +33 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +204 -0
- data/vendor/libgit2/src/cli/cmd_clone.c +176 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +154 -0
- data/vendor/libgit2/src/cli/cmd_help.c +86 -0
- data/vendor/libgit2/src/cli/error.h +51 -0
- data/vendor/libgit2/src/cli/main.c +106 -0
- data/vendor/libgit2/src/cli/opt.c +669 -0
- data/vendor/libgit2/src/cli/opt.h +349 -0
- data/vendor/libgit2/src/cli/opt_usage.c +194 -0
- data/vendor/libgit2/src/cli/opt_usage.h +35 -0
- data/vendor/libgit2/src/cli/progress.c +345 -0
- data/vendor/libgit2/src/cli/progress.h +117 -0
- data/vendor/libgit2/src/cli/sighandler.h +20 -0
- data/vendor/libgit2/src/cli/unix/sighandler.c +36 -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 +141 -0
- data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +1 -1
- data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +2 -2
- data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +18 -18
- data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +2 -2
- data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +18 -18
- data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +18 -18
- data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +4 -4
- data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +18 -13
- data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +2 -0
- data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +1 -1
- 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/{branch.h → libgit2/branch.h} +15 -3
- data/vendor/libgit2/src/libgit2/buf.c +126 -0
- data/vendor/libgit2/src/libgit2/buf.h +50 -0
- data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +74 -68
- data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +13 -13
- data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +96 -67
- data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +178 -73
- data/vendor/libgit2/src/libgit2/commit.h +87 -0
- data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +122 -89
- data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +14 -4
- data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +7 -4
- data/vendor/libgit2/src/libgit2/common.h +55 -0
- data/vendor/libgit2/src/{config.c → libgit2/config.c} +101 -69
- data/vendor/libgit2/src/{config.h → libgit2/config.h} +15 -2
- data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +105 -93
- data/vendor/libgit2/src/{config_mem.c → libgit2/config_mem.c} +9 -9
- data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +27 -23
- data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +24 -21
- data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +35 -27
- data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +30 -9
- data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +2 -4
- data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +34 -36
- data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +3 -3
- data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +44 -26
- data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +47 -18
- data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +5 -3
- data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +112 -100
- 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} +13 -8
- data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +4 -8
- data/vendor/libgit2/src/{email.c → libgit2/email.c} +55 -39
- data/vendor/libgit2/src/{email.h → libgit2/email.h} +1 -1
- data/vendor/libgit2/src/{errors.c → libgit2/errors.c} +18 -18
- data/vendor/libgit2/src/{errors.h → libgit2/errors.h} +1 -2
- data/vendor/libgit2/src/libgit2/experimental.h.in +13 -0
- data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +72 -27
- data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +1 -1
- data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +23 -23
- data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +127 -53
- data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +26 -5
- data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +20 -20
- data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +35 -34
- data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +2 -2
- data/vendor/libgit2/src/{index.c → libgit2/index.c} +91 -90
- data/vendor/libgit2/src/{index.h → libgit2/index.h} +6 -3
- data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +173 -92
- data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +71 -61
- data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +5 -5
- data/vendor/libgit2/src/{libgit2.c → libgit2/libgit2.c} +46 -11
- data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +38 -36
- data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +30 -30
- data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +1 -14
- data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +2 -2
- data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +13 -3
- data/vendor/libgit2/src/{message.c → libgit2/message.c} +21 -10
- data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +112 -92
- data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +5 -4
- data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +15 -12
- data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +5 -2
- data/vendor/libgit2/src/{netops.c → libgit2/netops.c} +1 -2
- data/vendor/libgit2/src/{netops.h → libgit2/netops.h} +1 -1
- data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +25 -34
- data/vendor/libgit2/src/{object.c → libgit2/object.c} +135 -30
- data/vendor/libgit2/src/{object.h → libgit2/object.h} +12 -3
- data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +228 -81
- 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} +18 -5
- data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +137 -85
- data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +136 -90
- data/vendor/libgit2/src/libgit2/oid.h +273 -0
- data/vendor/libgit2/src/{oidmap.c → libgit2/oidmap.c} +1 -1
- data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +56 -30
- data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +11 -6
- data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +114 -84
- data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +31 -16
- data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +4 -3
- data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +3 -3
- data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +1 -0
- data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +27 -11
- data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +5 -5
- data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +29 -29
- 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} +6 -6
- 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} +43 -38
- data/vendor/libgit2/src/{push.h → libgit2/push.h} +4 -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} +119 -107
- data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +506 -197
- data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +7 -5
- data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +1 -2
- data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +34 -32
- data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +2 -2
- data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +32 -37
- data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +5 -2
- data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +718 -420
- data/vendor/libgit2/src/libgit2/remote.h +100 -0
- data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +629 -386
- data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +20 -9
- data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +8 -5
- data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +14 -14
- data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +71 -42
- data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +12 -8
- data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +12 -6
- data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +1 -1
- data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +235 -61
- data/vendor/libgit2/src/{status.c → libgit2/status.c} +4 -1
- 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 +8 -6
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +1 -1
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +7 -3
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +3 -3
- data/vendor/libgit2/src/{streams → libgit2/streams}/socket.c +4 -1
- data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +177 -161
- data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +1 -1
- data/vendor/libgit2/src/libgit2/sysdir.c +650 -0
- data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +53 -18
- data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +73 -42
- data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +2 -2
- data/vendor/libgit2/src/{threadstate.c → libgit2/threadstate.c} +3 -3
- data/vendor/libgit2/src/{threadstate.h → libgit2/threadstate.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} +1 -1
- data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +1 -1
- data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +10 -10
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +7 -9
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +2 -3
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.c +12 -13
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.c +10 -10
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +0 -1
- data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +9 -11
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +41 -20
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +2 -3
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +75 -66
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +10 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +138 -116
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +92 -133
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +35 -32
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +177 -65
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +97 -49
- data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.c +365 -198
- data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +58 -59
- data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +8 -8
- data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +2 -2
- data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +93 -83
- data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +4 -4
- data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +121 -94
- data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +1 -1
- data/vendor/libgit2/src/libgit2/xdiff/git-xdiff.h +53 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiff.h +15 -15
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.c +134 -108
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.c +23 -7
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xhistogram.c +87 -78
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xinclude.h +1 -12
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmerge.c +104 -117
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xpatience.c +6 -17
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.c +15 -20
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.c +18 -7
- data/vendor/libgit2/src/util/CMakeLists.txt +80 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.h +1 -1
- data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
- data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{array.h → util/array.h} +1 -1
- data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
- data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +1 -1
- data/vendor/libgit2/src/{date.c → util/date.c} +14 -20
- data/vendor/libgit2/src/util/date.h +33 -0
- data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +29 -29
- data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +2 -2
- data/vendor/libgit2/src/{path.c → util/fs_path.c} +453 -647
- data/vendor/libgit2/src/{path.h → util/fs_path.h} +221 -188
- data/vendor/libgit2/src/{futils.c → util/futils.c} +135 -90
- data/vendor/libgit2/src/{futils.h → util/futils.h} +28 -15
- data/vendor/libgit2/src/{features.h.in → util/git2_features.h.in} +15 -1
- data/vendor/libgit2/src/{common.h → util/git2_util.h} +20 -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 +195 -0
- data/vendor/libgit2/src/util/hash/openssl.h +45 -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 +70 -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/{khash.h → util/khash.h} +1 -1
- data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
- data/vendor/libgit2/src/util/net.c +1003 -0
- data/vendor/libgit2/src/{net.h → util/net.h} +18 -4
- data/vendor/libgit2/src/{pool.h → util/pool.h} +1 -1
- data/vendor/libgit2/src/{posix.c → util/posix.c} +3 -3
- data/vendor/libgit2/src/{posix.h → util/posix.h} +4 -1
- data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +2 -2
- data/vendor/libgit2/src/util/rand.c +234 -0
- data/vendor/libgit2/src/util/rand.h +37 -0
- data/vendor/libgit2/src/{regexp.c → util/regexp.c} +4 -4
- 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} +1 -1
- data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +2 -2
- data/vendor/libgit2/src/{buffer.c → util/str.c} +157 -151
- data/vendor/libgit2/src/util/str.h +357 -0
- data/vendor/libgit2/src/{strmap.h → util/strmap.h} +1 -1
- 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 -4
- data/vendor/libgit2/src/{unix → util/unix}/realpath.c +1 -3
- 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} +15 -15
- data/vendor/libgit2/src/{util.h → util/util.h} +4 -29
- data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
- data/vendor/libgit2/src/{vector.h → util/vector.h} +2 -2
- 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.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +140 -9
- 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 +12 -28
- 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/{win32 → util/win32}/thread.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.h +1 -1
- 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.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 +402 -356
- data/vendor/libgit2/src/buffer.h +0 -374
- data/vendor/libgit2/src/commit.h +0 -46
- 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/message.h +0 -17
- data/vendor/libgit2/src/net.c +0 -540
- data/vendor/libgit2/src/oid.h +0 -51
- data/vendor/libgit2/src/remote.h +0 -55
- data/vendor/libgit2/src/sysdir.c +0 -347
- data/vendor/libgit2/src/win32/findfile.c +0 -230
- data/vendor/libgit2/src/win32/findfile.h +0 -19
- /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/{attrcache.h → libgit2/attrcache.h} +0 -0
- /data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +0 -0
- /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
- /data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +0 -0
- /data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +0 -0
- /data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -0
- /data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +0 -0
- /data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +0 -0
- /data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +0 -0
- /data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +0 -0
- /data/vendor/libgit2/src/{config_entries.c → libgit2/config_entries.c} +0 -0
- /data/vendor/libgit2/src/{config_entries.h → libgit2/config_entries.h} +0 -0
- /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
- /data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +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.c → libgit2/diff_parse.c} +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/{diff_xdiff.h → libgit2/diff_xdiff.h} +0 -0
- /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
- /data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +0 -0
- /data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +0 -0
- /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
- /data/vendor/libgit2/src/{idxmap.c → libgit2/idxmap.c} +0 -0
- /data/vendor/libgit2/src/{idxmap.h → libgit2/idxmap.h} +0 -0
- /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
- /data/vendor/libgit2/src/{libgit2.h → libgit2/libgit2.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/{offmap.c → libgit2/offmap.c} +0 -0
- /data/vendor/libgit2/src/{offmap.h → libgit2/offmap.h} +0 -0
- /data/vendor/libgit2/src/{oidarray.c → libgit2/oidarray.c} +0 -0
- /data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +0 -0
- /data/vendor/libgit2/src/{oidmap.h → libgit2/oidmap.h} +0 -0
- /data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +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/{revwalk.h → libgit2/revwalk.h} +0 -0
- /data/vendor/libgit2/src/{settings.h → libgit2/settings.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.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}/socket.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
- /data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.h +0 -0
- /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmacros.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xtypes.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.h +0 -0
- /data/vendor/libgit2/src/{alloc.c → util/alloc.c} +0 -0
- /data/vendor/libgit2/src/{alloc.h → util/alloc.h} +0 -0
- /data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.c +0 -0
- /data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.c +0 -0
- /data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.c +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/{integer.h → util/integer.h} +0 -0
- /data/vendor/libgit2/src/{pool.c → util/pool.c} +0 -0
- /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
- /data/vendor/libgit2/src/{strmap.c → util/strmap.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/{vector.c → util/vector.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}/error.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}/utf-conv.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}/w32_util.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
|
@@ -14,10 +14,10 @@
|
|
|
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"
|
|
@@ -42,7 +42,7 @@ void git_commit__free(void *_commit)
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
static int git_commit__create_buffer_internal(
|
|
45
|
-
|
|
45
|
+
git_str *out,
|
|
46
46
|
const git_signature *author,
|
|
47
47
|
const git_signature *committer,
|
|
48
48
|
const char *message_encoding,
|
|
@@ -56,28 +56,30 @@ static int git_commit__create_buffer_internal(
|
|
|
56
56
|
GIT_ASSERT_ARG(out);
|
|
57
57
|
GIT_ASSERT_ARG(tree);
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
if (git_object__write_oid_header(out, "tree ", tree) < 0)
|
|
60
|
+
goto on_error;
|
|
60
61
|
|
|
61
62
|
for (i = 0; i < git_array_size(*parents); i++) {
|
|
62
63
|
parent = git_array_get(*parents, i);
|
|
63
|
-
|
|
64
|
+
if (git_object__write_oid_header(out, "parent ", parent) < 0)
|
|
65
|
+
goto on_error;
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
git_signature__writebuf(out, "author ", author);
|
|
67
69
|
git_signature__writebuf(out, "committer ", committer);
|
|
68
70
|
|
|
69
71
|
if (message_encoding != NULL)
|
|
70
|
-
|
|
72
|
+
git_str_printf(out, "encoding %s\n", message_encoding);
|
|
71
73
|
|
|
72
|
-
|
|
74
|
+
git_str_putc(out, '\n');
|
|
73
75
|
|
|
74
|
-
if (
|
|
76
|
+
if (git_str_puts(out, message) < 0)
|
|
75
77
|
goto on_error;
|
|
76
78
|
|
|
77
79
|
return 0;
|
|
78
80
|
|
|
79
81
|
on_error:
|
|
80
|
-
|
|
82
|
+
git_str_dispose(out);
|
|
81
83
|
return -1;
|
|
82
84
|
}
|
|
83
85
|
|
|
@@ -136,7 +138,7 @@ static int git_commit__create_internal(
|
|
|
136
138
|
int error;
|
|
137
139
|
git_odb *odb;
|
|
138
140
|
git_reference *ref = NULL;
|
|
139
|
-
|
|
141
|
+
git_str buf = GIT_STR_INIT;
|
|
140
142
|
const git_oid *current_id = NULL;
|
|
141
143
|
git_array_oid_t parents = GIT_ARRAY_INIT;
|
|
142
144
|
|
|
@@ -179,7 +181,7 @@ static int git_commit__create_internal(
|
|
|
179
181
|
cleanup:
|
|
180
182
|
git_array_clear(parents);
|
|
181
183
|
git_reference_free(ref);
|
|
182
|
-
|
|
184
|
+
git_str_dispose(&buf);
|
|
183
185
|
return error;
|
|
184
186
|
}
|
|
185
187
|
|
|
@@ -388,16 +390,22 @@ int git_commit_amend(
|
|
|
388
390
|
return error;
|
|
389
391
|
}
|
|
390
392
|
|
|
391
|
-
static int commit_parse(
|
|
393
|
+
static int commit_parse(
|
|
394
|
+
git_commit *commit,
|
|
395
|
+
const char *data,
|
|
396
|
+
size_t size,
|
|
397
|
+
git_commit__parse_options *opts)
|
|
392
398
|
{
|
|
393
399
|
const char *buffer_start = data, *buffer;
|
|
394
400
|
const char *buffer_end = buffer_start + size;
|
|
395
401
|
git_oid parent_id;
|
|
396
402
|
size_t header_len;
|
|
397
403
|
git_signature dummy_sig;
|
|
404
|
+
int error;
|
|
398
405
|
|
|
399
406
|
GIT_ASSERT_ARG(commit);
|
|
400
407
|
GIT_ASSERT_ARG(data);
|
|
408
|
+
GIT_ASSERT_ARG(opts);
|
|
401
409
|
|
|
402
410
|
buffer = buffer_start;
|
|
403
411
|
|
|
@@ -406,11 +414,14 @@ static int commit_parse(git_commit *commit, const char *data, size_t size, unsig
|
|
|
406
414
|
GIT_ERROR_CHECK_ARRAY(commit->parent_ids);
|
|
407
415
|
|
|
408
416
|
/* The tree is always the first field */
|
|
409
|
-
if (!(flags & GIT_COMMIT_PARSE_QUICK)) {
|
|
410
|
-
|
|
417
|
+
if (!(opts->flags & GIT_COMMIT_PARSE_QUICK)) {
|
|
418
|
+
if (git_object__parse_oid_header(&commit->tree_id,
|
|
419
|
+
&buffer, buffer_end, "tree ",
|
|
420
|
+
opts->oid_type) < 0)
|
|
411
421
|
goto bad_buffer;
|
|
412
422
|
} else {
|
|
413
|
-
size_t tree_len = strlen("tree ") +
|
|
423
|
+
size_t tree_len = strlen("tree ") + git_oid_hexsize(opts->oid_type) + 1;
|
|
424
|
+
|
|
414
425
|
if (buffer + tree_len > buffer_end)
|
|
415
426
|
goto bad_buffer;
|
|
416
427
|
buffer += tree_len;
|
|
@@ -420,25 +431,27 @@ static int commit_parse(git_commit *commit, const char *data, size_t size, unsig
|
|
|
420
431
|
* TODO: commit grafts!
|
|
421
432
|
*/
|
|
422
433
|
|
|
423
|
-
while (
|
|
434
|
+
while (git_object__parse_oid_header(&parent_id,
|
|
435
|
+
&buffer, buffer_end, "parent ",
|
|
436
|
+
opts->oid_type) == 0) {
|
|
424
437
|
git_oid *new_id = git_array_alloc(commit->parent_ids);
|
|
425
438
|
GIT_ERROR_CHECK_ALLOC(new_id);
|
|
426
439
|
|
|
427
440
|
git_oid_cpy(new_id, &parent_id);
|
|
428
441
|
}
|
|
429
442
|
|
|
430
|
-
if (!(flags & GIT_COMMIT_PARSE_QUICK)) {
|
|
443
|
+
if (!opts || !(opts->flags & GIT_COMMIT_PARSE_QUICK)) {
|
|
431
444
|
commit->author = git__malloc(sizeof(git_signature));
|
|
432
445
|
GIT_ERROR_CHECK_ALLOC(commit->author);
|
|
433
446
|
|
|
434
|
-
if (git_signature__parse(commit->author, &buffer, buffer_end, "author ", '\n') < 0)
|
|
435
|
-
return
|
|
447
|
+
if ((error = git_signature__parse(commit->author, &buffer, buffer_end, "author ", '\n')) < 0)
|
|
448
|
+
return error;
|
|
436
449
|
}
|
|
437
450
|
|
|
438
451
|
/* Some tools create multiple author fields, ignore the extra ones */
|
|
439
452
|
while (!git__prefixncmp(buffer, buffer_end - buffer, "author ")) {
|
|
440
|
-
if (git_signature__parse(&dummy_sig, &buffer, buffer_end, "author ", '\n') < 0)
|
|
441
|
-
return
|
|
453
|
+
if ((error = git_signature__parse(&dummy_sig, &buffer, buffer_end, "author ", '\n')) < 0)
|
|
454
|
+
return error;
|
|
442
455
|
|
|
443
456
|
git__free(dummy_sig.name);
|
|
444
457
|
git__free(dummy_sig.email);
|
|
@@ -448,10 +461,10 @@ static int commit_parse(git_commit *commit, const char *data, size_t size, unsig
|
|
|
448
461
|
commit->committer = git__malloc(sizeof(git_signature));
|
|
449
462
|
GIT_ERROR_CHECK_ALLOC(commit->committer);
|
|
450
463
|
|
|
451
|
-
if (git_signature__parse(commit->committer, &buffer, buffer_end, "committer ", '\n') < 0)
|
|
452
|
-
return
|
|
464
|
+
if ((error = git_signature__parse(commit->committer, &buffer, buffer_end, "committer ", '\n')) < 0)
|
|
465
|
+
return error;
|
|
453
466
|
|
|
454
|
-
if (flags & GIT_COMMIT_PARSE_QUICK)
|
|
467
|
+
if (opts && opts->flags & GIT_COMMIT_PARSE_QUICK)
|
|
455
468
|
return 0;
|
|
456
469
|
|
|
457
470
|
/* Parse add'l header entries */
|
|
@@ -493,22 +506,42 @@ static int commit_parse(git_commit *commit, const char *data, size_t size, unsig
|
|
|
493
506
|
|
|
494
507
|
bad_buffer:
|
|
495
508
|
git_error_set(GIT_ERROR_OBJECT, "failed to parse bad commit object");
|
|
496
|
-
return
|
|
509
|
+
return GIT_EINVALID;
|
|
497
510
|
}
|
|
498
511
|
|
|
499
|
-
int
|
|
512
|
+
int git_commit__parse(
|
|
513
|
+
void *commit,
|
|
514
|
+
git_odb_object *odb_obj,
|
|
515
|
+
git_oid_t oid_type)
|
|
500
516
|
{
|
|
501
|
-
|
|
517
|
+
git_commit__parse_options parse_options = {0};
|
|
518
|
+
parse_options.oid_type = oid_type;
|
|
519
|
+
|
|
520
|
+
return git_commit__parse_ext(commit, odb_obj, &parse_options);
|
|
502
521
|
}
|
|
503
522
|
|
|
504
|
-
int
|
|
523
|
+
int git_commit__parse_raw(
|
|
524
|
+
void *commit,
|
|
525
|
+
const char *data,
|
|
526
|
+
size_t size,
|
|
527
|
+
git_oid_t oid_type)
|
|
505
528
|
{
|
|
506
|
-
|
|
529
|
+
git_commit__parse_options parse_options = {0};
|
|
530
|
+
parse_options.oid_type = oid_type;
|
|
531
|
+
|
|
532
|
+
return commit_parse(commit, data, size, &parse_options);
|
|
507
533
|
}
|
|
508
534
|
|
|
509
|
-
int
|
|
535
|
+
int git_commit__parse_ext(
|
|
536
|
+
git_commit *commit,
|
|
537
|
+
git_odb_object *odb_obj,
|
|
538
|
+
git_commit__parse_options *parse_opts)
|
|
510
539
|
{
|
|
511
|
-
return
|
|
540
|
+
return commit_parse(
|
|
541
|
+
commit,
|
|
542
|
+
git_odb_object_data(odb_obj),
|
|
543
|
+
git_odb_object_size(odb_obj),
|
|
544
|
+
parse_opts);
|
|
512
545
|
}
|
|
513
546
|
|
|
514
547
|
#define GIT_COMMIT_GETTER(_rvalue, _name, _return, _invalid) \
|
|
@@ -545,8 +578,8 @@ const char *git_commit_message(const git_commit *commit)
|
|
|
545
578
|
|
|
546
579
|
const char *git_commit_summary(git_commit *commit)
|
|
547
580
|
{
|
|
548
|
-
|
|
549
|
-
const char *msg, *space;
|
|
581
|
+
git_str summary = GIT_STR_INIT;
|
|
582
|
+
const char *msg, *space, *next;
|
|
550
583
|
bool space_contains_newline = false;
|
|
551
584
|
|
|
552
585
|
GIT_ASSERT_ARG_WITH_RETVAL(commit, NULL);
|
|
@@ -555,10 +588,21 @@ const char *git_commit_summary(git_commit *commit)
|
|
|
555
588
|
for (msg = git_commit_message(commit), space = NULL; *msg; ++msg) {
|
|
556
589
|
char next_character = msg[0];
|
|
557
590
|
/* stop processing at the end of the first paragraph */
|
|
558
|
-
if (next_character == '\n'
|
|
559
|
-
|
|
591
|
+
if (next_character == '\n') {
|
|
592
|
+
if (!msg[1])
|
|
593
|
+
break;
|
|
594
|
+
if (msg[1] == '\n')
|
|
595
|
+
break;
|
|
596
|
+
/* stop processing if next line contains only whitespace */
|
|
597
|
+
next = msg + 1;
|
|
598
|
+
while (*next && git__isspace_nonlf(*next)) {
|
|
599
|
+
++next;
|
|
600
|
+
}
|
|
601
|
+
if (!*next || *next == '\n')
|
|
602
|
+
break;
|
|
603
|
+
}
|
|
560
604
|
/* record the beginning of contiguous whitespace runs */
|
|
561
|
-
|
|
605
|
+
if (git__isspace(next_character)) {
|
|
562
606
|
if(space == NULL) {
|
|
563
607
|
space = msg;
|
|
564
608
|
space_contains_newline = false;
|
|
@@ -570,17 +614,17 @@ const char *git_commit_summary(git_commit *commit)
|
|
|
570
614
|
/* process any recorded whitespace */
|
|
571
615
|
if (space) {
|
|
572
616
|
if(space_contains_newline)
|
|
573
|
-
|
|
617
|
+
git_str_putc(&summary, ' '); /* if the space contains a newline, collapse to ' ' */
|
|
574
618
|
else
|
|
575
|
-
|
|
619
|
+
git_str_put(&summary, space, (msg - space)); /* otherwise copy it */
|
|
576
620
|
space = NULL;
|
|
577
621
|
}
|
|
578
622
|
/* copy the next character */
|
|
579
|
-
|
|
623
|
+
git_str_putc(&summary, next_character);
|
|
580
624
|
}
|
|
581
625
|
}
|
|
582
626
|
|
|
583
|
-
commit->summary =
|
|
627
|
+
commit->summary = git_str_detach(&summary);
|
|
584
628
|
if (!commit->summary)
|
|
585
629
|
commit->summary = git__strdup("");
|
|
586
630
|
}
|
|
@@ -678,11 +722,22 @@ int git_commit_nth_gen_ancestor(
|
|
|
678
722
|
return 0;
|
|
679
723
|
}
|
|
680
724
|
|
|
681
|
-
int git_commit_header_field(
|
|
725
|
+
int git_commit_header_field(
|
|
726
|
+
git_buf *out,
|
|
727
|
+
const git_commit *commit,
|
|
728
|
+
const char *field)
|
|
729
|
+
{
|
|
730
|
+
GIT_BUF_WRAP_PRIVATE(out, git_commit__header_field, commit, field);
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
int git_commit__header_field(
|
|
734
|
+
git_str *out,
|
|
735
|
+
const git_commit *commit,
|
|
736
|
+
const char *field)
|
|
682
737
|
{
|
|
683
738
|
const char *eol, *buf = commit->raw_header;
|
|
684
739
|
|
|
685
|
-
|
|
740
|
+
git_str_clear(out);
|
|
686
741
|
|
|
687
742
|
while ((eol = strchr(buf, '\n'))) {
|
|
688
743
|
/* We can skip continuations here */
|
|
@@ -706,22 +761,22 @@ int git_commit_header_field(git_buf *out, const git_commit *commit, const char *
|
|
|
706
761
|
|
|
707
762
|
buf++; /* skip the SP */
|
|
708
763
|
|
|
709
|
-
|
|
710
|
-
if (
|
|
764
|
+
git_str_put(out, buf, eol - buf);
|
|
765
|
+
if (git_str_oom(out))
|
|
711
766
|
goto oom;
|
|
712
767
|
|
|
713
768
|
/* If the next line starts with SP, it's multi-line, we must continue */
|
|
714
769
|
while (eol[1] == ' ') {
|
|
715
|
-
|
|
770
|
+
git_str_putc(out, '\n');
|
|
716
771
|
buf = eol + 2;
|
|
717
772
|
eol = strchr(buf, '\n');
|
|
718
773
|
if (!eol)
|
|
719
774
|
goto malformed;
|
|
720
775
|
|
|
721
|
-
|
|
776
|
+
git_str_put(out, buf, eol - buf);
|
|
722
777
|
}
|
|
723
778
|
|
|
724
|
-
if (
|
|
779
|
+
if (git_str_oom(out))
|
|
725
780
|
goto oom;
|
|
726
781
|
|
|
727
782
|
return 0;
|
|
@@ -738,7 +793,35 @@ oom:
|
|
|
738
793
|
return -1;
|
|
739
794
|
}
|
|
740
795
|
|
|
741
|
-
int git_commit_extract_signature(
|
|
796
|
+
int git_commit_extract_signature(
|
|
797
|
+
git_buf *signature_out,
|
|
798
|
+
git_buf *signed_data_out,
|
|
799
|
+
git_repository *repo,
|
|
800
|
+
git_oid *commit_id,
|
|
801
|
+
const char *field)
|
|
802
|
+
{
|
|
803
|
+
git_str signature = GIT_STR_INIT, signed_data = GIT_STR_INIT;
|
|
804
|
+
int error;
|
|
805
|
+
|
|
806
|
+
if ((error = git_buf_tostr(&signature, signature_out)) < 0 ||
|
|
807
|
+
(error = git_buf_tostr(&signed_data, signed_data_out)) < 0 ||
|
|
808
|
+
(error = git_commit__extract_signature(&signature, &signed_data, repo, commit_id, field)) < 0 ||
|
|
809
|
+
(error = git_buf_fromstr(signature_out, &signature)) < 0 ||
|
|
810
|
+
(error = git_buf_fromstr(signed_data_out, &signed_data)) < 0)
|
|
811
|
+
goto done;
|
|
812
|
+
|
|
813
|
+
done:
|
|
814
|
+
git_str_dispose(&signature);
|
|
815
|
+
git_str_dispose(&signed_data);
|
|
816
|
+
return error;
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
int git_commit__extract_signature(
|
|
820
|
+
git_str *signature,
|
|
821
|
+
git_str *signed_data,
|
|
822
|
+
git_repository *repo,
|
|
823
|
+
git_oid *commit_id,
|
|
824
|
+
const char *field)
|
|
742
825
|
{
|
|
743
826
|
git_odb_object *obj;
|
|
744
827
|
git_odb *odb;
|
|
@@ -746,8 +829,8 @@ int git_commit_extract_signature(git_buf *signature, git_buf *signed_data, git_r
|
|
|
746
829
|
const char *h, *eol;
|
|
747
830
|
int error;
|
|
748
831
|
|
|
749
|
-
|
|
750
|
-
|
|
832
|
+
git_str_clear(signature);
|
|
833
|
+
git_str_clear(signed_data);
|
|
751
834
|
|
|
752
835
|
if (!field)
|
|
753
836
|
field = "gpgsig";
|
|
@@ -769,7 +852,7 @@ int git_commit_extract_signature(git_buf *signature, git_buf *signed_data, git_r
|
|
|
769
852
|
while ((h = strchr(buf, '\n')) && h[1] != '\0') {
|
|
770
853
|
h++;
|
|
771
854
|
if (git__prefixcmp(buf, field)) {
|
|
772
|
-
if (
|
|
855
|
+
if (git_str_put(signed_data, buf, h - buf) < 0)
|
|
773
856
|
return -1;
|
|
774
857
|
|
|
775
858
|
buf = h;
|
|
@@ -788,25 +871,25 @@ int git_commit_extract_signature(git_buf *signature, git_buf *signed_data, git_r
|
|
|
788
871
|
|
|
789
872
|
h++; /* skip the SP */
|
|
790
873
|
|
|
791
|
-
|
|
792
|
-
if (
|
|
874
|
+
git_str_put(signature, h, eol - h);
|
|
875
|
+
if (git_str_oom(signature))
|
|
793
876
|
goto oom;
|
|
794
877
|
|
|
795
878
|
/* If the next line starts with SP, it's multi-line, we must continue */
|
|
796
879
|
while (eol[1] == ' ') {
|
|
797
|
-
|
|
880
|
+
git_str_putc(signature, '\n');
|
|
798
881
|
h = eol + 2;
|
|
799
882
|
eol = strchr(h, '\n');
|
|
800
883
|
if (!eol)
|
|
801
884
|
goto malformed;
|
|
802
885
|
|
|
803
|
-
|
|
886
|
+
git_str_put(signature, h, eol - h);
|
|
804
887
|
}
|
|
805
888
|
|
|
806
|
-
if (
|
|
889
|
+
if (git_str_oom(signature))
|
|
807
890
|
goto oom;
|
|
808
891
|
|
|
809
|
-
error =
|
|
892
|
+
error = git_str_puts(signed_data, eol+1);
|
|
810
893
|
git_odb_object_free(obj);
|
|
811
894
|
return error;
|
|
812
895
|
}
|
|
@@ -826,12 +909,29 @@ oom:
|
|
|
826
909
|
|
|
827
910
|
cleanup:
|
|
828
911
|
git_odb_object_free(obj);
|
|
829
|
-
|
|
830
|
-
|
|
912
|
+
git_str_clear(signature);
|
|
913
|
+
git_str_clear(signed_data);
|
|
831
914
|
return error;
|
|
832
915
|
}
|
|
833
916
|
|
|
834
|
-
int git_commit_create_buffer(
|
|
917
|
+
int git_commit_create_buffer(
|
|
918
|
+
git_buf *out,
|
|
919
|
+
git_repository *repo,
|
|
920
|
+
const git_signature *author,
|
|
921
|
+
const git_signature *committer,
|
|
922
|
+
const char *message_encoding,
|
|
923
|
+
const char *message,
|
|
924
|
+
const git_tree *tree,
|
|
925
|
+
size_t parent_count,
|
|
926
|
+
const git_commit *parents[])
|
|
927
|
+
{
|
|
928
|
+
GIT_BUF_WRAP_PRIVATE(out, git_commit__create_buffer, repo,
|
|
929
|
+
author, committer, message_encoding, message,
|
|
930
|
+
tree, parent_count, parents);
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
int git_commit__create_buffer(
|
|
934
|
+
git_str *out,
|
|
835
935
|
git_repository *repo,
|
|
836
936
|
const git_signature *author,
|
|
837
937
|
const git_signature *committer,
|
|
@@ -866,7 +966,7 @@ int git_commit_create_buffer(git_buf *out,
|
|
|
866
966
|
/**
|
|
867
967
|
* Append to 'out' properly marking continuations when there's a newline in 'content'
|
|
868
968
|
*/
|
|
869
|
-
static int format_header_field(
|
|
969
|
+
static int format_header_field(git_str *out, const char *field, const char *content)
|
|
870
970
|
{
|
|
871
971
|
const char *lf;
|
|
872
972
|
|
|
@@ -874,19 +974,19 @@ static int format_header_field(git_buf *out, const char *field, const char *cont
|
|
|
874
974
|
GIT_ASSERT_ARG(field);
|
|
875
975
|
GIT_ASSERT_ARG(content);
|
|
876
976
|
|
|
877
|
-
|
|
878
|
-
|
|
977
|
+
git_str_puts(out, field);
|
|
978
|
+
git_str_putc(out, ' ');
|
|
879
979
|
|
|
880
980
|
while ((lf = strchr(content, '\n')) != NULL) {
|
|
881
|
-
|
|
882
|
-
|
|
981
|
+
git_str_put(out, content, lf - content);
|
|
982
|
+
git_str_puts(out, "\n ");
|
|
883
983
|
content = lf + 1;
|
|
884
984
|
}
|
|
885
985
|
|
|
886
|
-
|
|
887
|
-
|
|
986
|
+
git_str_puts(out, content);
|
|
987
|
+
git_str_putc(out, '\n');
|
|
888
988
|
|
|
889
|
-
return
|
|
989
|
+
return git_str_oom(out) ? -1 : 0;
|
|
890
990
|
}
|
|
891
991
|
|
|
892
992
|
static const git_oid *commit_parent_from_commit(size_t n, void *payload)
|
|
@@ -908,15 +1008,20 @@ int git_commit_create_with_signature(
|
|
|
908
1008
|
int error = 0;
|
|
909
1009
|
const char *field;
|
|
910
1010
|
const char *header_end;
|
|
911
|
-
|
|
1011
|
+
git_str commit = GIT_STR_INIT;
|
|
912
1012
|
git_commit *parsed;
|
|
913
1013
|
git_array_oid_t parents = GIT_ARRAY_INIT;
|
|
1014
|
+
git_commit__parse_options parse_opts = {0};
|
|
1015
|
+
|
|
1016
|
+
parse_opts.oid_type = repo->oid_type;
|
|
914
1017
|
|
|
915
1018
|
/* The first step is to verify that all the tree and parents exist */
|
|
916
1019
|
parsed = git__calloc(1, sizeof(git_commit));
|
|
917
1020
|
GIT_ERROR_CHECK_ALLOC(parsed);
|
|
918
|
-
if (
|
|
1021
|
+
if (commit_parse(parsed, commit_content, strlen(commit_content), &parse_opts) < 0) {
|
|
1022
|
+
error = -1;
|
|
919
1023
|
goto cleanup;
|
|
1024
|
+
}
|
|
920
1025
|
|
|
921
1026
|
if ((error = validate_tree_and_parents(&parents, repo, &parsed->tree_id, commit_parent_from_commit, parsed, NULL, true)) < 0)
|
|
922
1027
|
goto cleanup;
|
|
@@ -933,7 +1038,7 @@ int git_commit_create_with_signature(
|
|
|
933
1038
|
|
|
934
1039
|
/* The header ends after the first LF */
|
|
935
1040
|
header_end++;
|
|
936
|
-
|
|
1041
|
+
git_str_put(&commit, commit_content, header_end - commit_content);
|
|
937
1042
|
|
|
938
1043
|
if (signature != NULL) {
|
|
939
1044
|
field = signature_field ? signature_field : "gpgsig";
|
|
@@ -942,9 +1047,9 @@ int git_commit_create_with_signature(
|
|
|
942
1047
|
goto cleanup;
|
|
943
1048
|
}
|
|
944
1049
|
|
|
945
|
-
|
|
1050
|
+
git_str_puts(&commit, header_end);
|
|
946
1051
|
|
|
947
|
-
if (
|
|
1052
|
+
if (git_str_oom(&commit))
|
|
948
1053
|
return -1;
|
|
949
1054
|
|
|
950
1055
|
if ((error = git_repository_odb__weakptr(&odb, repo)) < 0)
|
|
@@ -955,7 +1060,7 @@ int git_commit_create_with_signature(
|
|
|
955
1060
|
|
|
956
1061
|
cleanup:
|
|
957
1062
|
git_commit__free(parsed);
|
|
958
|
-
|
|
1063
|
+
git_str_dispose(&commit);
|
|
959
1064
|
return error;
|
|
960
1065
|
}
|
|
961
1066
|
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef INCLUDE_commit_h__
|
|
8
|
+
#define INCLUDE_commit_h__
|
|
9
|
+
|
|
10
|
+
#include "common.h"
|
|
11
|
+
|
|
12
|
+
#include "git2/commit.h"
|
|
13
|
+
#include "tree.h"
|
|
14
|
+
#include "repository.h"
|
|
15
|
+
#include "array.h"
|
|
16
|
+
|
|
17
|
+
#include <time.h>
|
|
18
|
+
|
|
19
|
+
struct git_commit {
|
|
20
|
+
git_object object;
|
|
21
|
+
|
|
22
|
+
git_array_t(git_oid) parent_ids;
|
|
23
|
+
git_oid tree_id;
|
|
24
|
+
|
|
25
|
+
git_signature *author;
|
|
26
|
+
git_signature *committer;
|
|
27
|
+
|
|
28
|
+
char *message_encoding;
|
|
29
|
+
char *raw_message;
|
|
30
|
+
char *raw_header;
|
|
31
|
+
|
|
32
|
+
char *summary;
|
|
33
|
+
char *body;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
typedef struct {
|
|
37
|
+
git_oid_t oid_type;
|
|
38
|
+
unsigned int flags;
|
|
39
|
+
} git_commit__parse_options;
|
|
40
|
+
|
|
41
|
+
typedef enum {
|
|
42
|
+
/** Only parse parents and committer info */
|
|
43
|
+
GIT_COMMIT_PARSE_QUICK = (1 << 0)
|
|
44
|
+
} git_commit__parse_flags;
|
|
45
|
+
|
|
46
|
+
int git_commit__header_field(
|
|
47
|
+
git_str *out,
|
|
48
|
+
const git_commit *commit,
|
|
49
|
+
const char *field);
|
|
50
|
+
|
|
51
|
+
int git_commit__extract_signature(
|
|
52
|
+
git_str *signature,
|
|
53
|
+
git_str *signed_data,
|
|
54
|
+
git_repository *repo,
|
|
55
|
+
git_oid *commit_id,
|
|
56
|
+
const char *field);
|
|
57
|
+
|
|
58
|
+
int git_commit__create_buffer(
|
|
59
|
+
git_str *out,
|
|
60
|
+
git_repository *repo,
|
|
61
|
+
const git_signature *author,
|
|
62
|
+
const git_signature *committer,
|
|
63
|
+
const char *message_encoding,
|
|
64
|
+
const char *message,
|
|
65
|
+
const git_tree *tree,
|
|
66
|
+
size_t parent_count,
|
|
67
|
+
const git_commit *parents[]);
|
|
68
|
+
|
|
69
|
+
int git_commit__parse(
|
|
70
|
+
void *commit,
|
|
71
|
+
git_odb_object *obj,
|
|
72
|
+
git_oid_t oid_type);
|
|
73
|
+
|
|
74
|
+
int git_commit__parse_raw(
|
|
75
|
+
void *commit,
|
|
76
|
+
const char *data,
|
|
77
|
+
size_t size,
|
|
78
|
+
git_oid_t oid_type);
|
|
79
|
+
|
|
80
|
+
int git_commit__parse_ext(
|
|
81
|
+
git_commit *commit,
|
|
82
|
+
git_odb_object *odb_obj,
|
|
83
|
+
git_commit__parse_options *parse_opts);
|
|
84
|
+
|
|
85
|
+
void git_commit__free(void *commit);
|
|
86
|
+
|
|
87
|
+
#endif
|