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
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
#include "
|
|
8
|
+
#include "diff_stats.h"
|
|
9
9
|
|
|
10
|
+
#include "buf.h"
|
|
11
|
+
#include "common.h"
|
|
10
12
|
#include "vector.h"
|
|
11
13
|
#include "diff.h"
|
|
12
14
|
#include "patch_generate.h"
|
|
@@ -47,7 +49,7 @@ static int digits_for_value(size_t val)
|
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
static int diff_file_stats_full_to_buf(
|
|
50
|
-
|
|
52
|
+
git_str *out,
|
|
51
53
|
const git_diff_delta *delta,
|
|
52
54
|
const diff_file_stats *filestat,
|
|
53
55
|
const git_diff_stats *stats,
|
|
@@ -68,14 +70,14 @@ static int diff_file_stats_full_to_buf(
|
|
|
68
70
|
|
|
69
71
|
padding = stats->max_name - strlen(old_path) - strlen(new_path);
|
|
70
72
|
|
|
71
|
-
if ((common_dirlen =
|
|
73
|
+
if ((common_dirlen = git_fs_path_common_dirlen(old_path, new_path)) &&
|
|
72
74
|
common_dirlen <= INT_MAX) {
|
|
73
|
-
error =
|
|
75
|
+
error = git_str_printf(out, " %.*s{%s"DIFF_RENAME_FILE_SEPARATOR"%s}",
|
|
74
76
|
(int) common_dirlen, old_path,
|
|
75
77
|
old_path + common_dirlen,
|
|
76
78
|
new_path + common_dirlen);
|
|
77
79
|
} else {
|
|
78
|
-
error =
|
|
80
|
+
error = git_str_printf(out, " %s" DIFF_RENAME_FILE_SEPARATOR "%s",
|
|
79
81
|
old_path, new_path);
|
|
80
82
|
}
|
|
81
83
|
|
|
@@ -83,7 +85,7 @@ static int diff_file_stats_full_to_buf(
|
|
|
83
85
|
goto on_error;
|
|
84
86
|
} else {
|
|
85
87
|
adddel_path = new_path ? new_path : old_path;
|
|
86
|
-
if (
|
|
88
|
+
if (git_str_printf(out, " %s", adddel_path) < 0)
|
|
87
89
|
goto on_error;
|
|
88
90
|
|
|
89
91
|
padding = stats->max_name - strlen(adddel_path);
|
|
@@ -92,28 +94,28 @@ static int diff_file_stats_full_to_buf(
|
|
|
92
94
|
padding += strlen(DIFF_RENAME_FILE_SEPARATOR);
|
|
93
95
|
}
|
|
94
96
|
|
|
95
|
-
if (
|
|
96
|
-
|
|
97
|
+
if (git_str_putcn(out, ' ', padding) < 0 ||
|
|
98
|
+
git_str_puts(out, " | ") < 0)
|
|
97
99
|
goto on_error;
|
|
98
100
|
|
|
99
101
|
if (delta->flags & GIT_DIFF_FLAG_BINARY) {
|
|
100
|
-
if (
|
|
102
|
+
if (git_str_printf(out,
|
|
101
103
|
"Bin %" PRId64 " -> %" PRId64 " bytes", old_size, new_size) < 0)
|
|
102
104
|
goto on_error;
|
|
103
105
|
}
|
|
104
106
|
else {
|
|
105
|
-
if (
|
|
107
|
+
if (git_str_printf(out,
|
|
106
108
|
"%*" PRIuZ, stats->max_digits,
|
|
107
109
|
filestat->insertions + filestat->deletions) < 0)
|
|
108
110
|
goto on_error;
|
|
109
111
|
|
|
110
112
|
if (filestat->insertions || filestat->deletions) {
|
|
111
|
-
if (
|
|
113
|
+
if (git_str_putc(out, ' ') < 0)
|
|
112
114
|
goto on_error;
|
|
113
115
|
|
|
114
116
|
if (!width) {
|
|
115
|
-
if (
|
|
116
|
-
|
|
117
|
+
if (git_str_putcn(out, '+', filestat->insertions) < 0 ||
|
|
118
|
+
git_str_putcn(out, '-', filestat->deletions) < 0)
|
|
117
119
|
goto on_error;
|
|
118
120
|
} else {
|
|
119
121
|
size_t total = filestat->insertions + filestat->deletions;
|
|
@@ -122,21 +124,21 @@ static int diff_file_stats_full_to_buf(
|
|
|
122
124
|
size_t plus = full * filestat->insertions / total;
|
|
123
125
|
size_t minus = full - plus;
|
|
124
126
|
|
|
125
|
-
if (
|
|
126
|
-
|
|
127
|
+
if (git_str_putcn(out, '+', max(plus, 1)) < 0 ||
|
|
128
|
+
git_str_putcn(out, '-', max(minus, 1)) < 0)
|
|
127
129
|
goto on_error;
|
|
128
130
|
}
|
|
129
131
|
}
|
|
130
132
|
}
|
|
131
133
|
|
|
132
|
-
|
|
134
|
+
git_str_putc(out, '\n');
|
|
133
135
|
|
|
134
136
|
on_error:
|
|
135
|
-
return (
|
|
137
|
+
return (git_str_oom(out) ? -1 : 0);
|
|
136
138
|
}
|
|
137
139
|
|
|
138
140
|
static int diff_file_stats_number_to_buf(
|
|
139
|
-
|
|
141
|
+
git_str *out,
|
|
140
142
|
const git_diff_delta *delta,
|
|
141
143
|
const diff_file_stats *filestats)
|
|
142
144
|
{
|
|
@@ -144,29 +146,29 @@ static int diff_file_stats_number_to_buf(
|
|
|
144
146
|
const char *path = delta->new_file.path;
|
|
145
147
|
|
|
146
148
|
if (delta->flags & GIT_DIFF_FLAG_BINARY)
|
|
147
|
-
error =
|
|
149
|
+
error = git_str_printf(out, "%-8c" "%-8c" "%s\n", '-', '-', path);
|
|
148
150
|
else
|
|
149
|
-
error =
|
|
151
|
+
error = git_str_printf(out, "%-8" PRIuZ "%-8" PRIuZ "%s\n",
|
|
150
152
|
filestats->insertions, filestats->deletions, path);
|
|
151
153
|
|
|
152
154
|
return error;
|
|
153
155
|
}
|
|
154
156
|
|
|
155
157
|
static int diff_file_stats_summary_to_buf(
|
|
156
|
-
|
|
158
|
+
git_str *out,
|
|
157
159
|
const git_diff_delta *delta)
|
|
158
160
|
{
|
|
159
161
|
if (delta->old_file.mode != delta->new_file.mode) {
|
|
160
162
|
if (delta->old_file.mode == 0) {
|
|
161
|
-
|
|
163
|
+
git_str_printf(out, " create mode %06o %s\n",
|
|
162
164
|
delta->new_file.mode, delta->new_file.path);
|
|
163
165
|
}
|
|
164
166
|
else if (delta->new_file.mode == 0) {
|
|
165
|
-
|
|
167
|
+
git_str_printf(out, " delete mode %06o %s\n",
|
|
166
168
|
delta->old_file.mode, delta->old_file.path);
|
|
167
169
|
}
|
|
168
170
|
else {
|
|
169
|
-
|
|
171
|
+
git_str_printf(out, " mode change %06o => %06o %s\n",
|
|
170
172
|
delta->old_file.mode, delta->new_file.mode, delta->new_file.path);
|
|
171
173
|
}
|
|
172
174
|
}
|
|
@@ -278,6 +280,15 @@ int git_diff_stats_to_buf(
|
|
|
278
280
|
const git_diff_stats *stats,
|
|
279
281
|
git_diff_stats_format_t format,
|
|
280
282
|
size_t width)
|
|
283
|
+
{
|
|
284
|
+
GIT_BUF_WRAP_PRIVATE(out, git_diff__stats_to_buf, stats, format, width);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
int git_diff__stats_to_buf(
|
|
288
|
+
git_str *out,
|
|
289
|
+
const git_diff_stats *stats,
|
|
290
|
+
git_diff_stats_format_t format,
|
|
291
|
+
size_t width)
|
|
281
292
|
{
|
|
282
293
|
int error = 0;
|
|
283
294
|
size_t i;
|
|
@@ -320,23 +331,23 @@ int git_diff_stats_to_buf(
|
|
|
320
331
|
}
|
|
321
332
|
|
|
322
333
|
if (format & GIT_DIFF_STATS_FULL || format & GIT_DIFF_STATS_SHORT) {
|
|
323
|
-
|
|
334
|
+
git_str_printf(
|
|
324
335
|
out, " %" PRIuZ " file%s changed",
|
|
325
336
|
stats->files_changed, stats->files_changed != 1 ? "s" : "");
|
|
326
337
|
|
|
327
338
|
if (stats->insertions || stats->deletions == 0)
|
|
328
|
-
|
|
339
|
+
git_str_printf(
|
|
329
340
|
out, ", %" PRIuZ " insertion%s(+)",
|
|
330
341
|
stats->insertions, stats->insertions != 1 ? "s" : "");
|
|
331
342
|
|
|
332
343
|
if (stats->deletions || stats->insertions == 0)
|
|
333
|
-
|
|
344
|
+
git_str_printf(
|
|
334
345
|
out, ", %" PRIuZ " deletion%s(-)",
|
|
335
346
|
stats->deletions, stats->deletions != 1 ? "s" : "");
|
|
336
347
|
|
|
337
|
-
|
|
348
|
+
git_str_putc(out, '\n');
|
|
338
349
|
|
|
339
|
-
if (
|
|
350
|
+
if (git_str_oom(out))
|
|
340
351
|
return -1;
|
|
341
352
|
}
|
|
342
353
|
|
|
@@ -0,0 +1,18 @@
|
|
|
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_diff_stats_h__
|
|
8
|
+
#define INCLUDE_diff_stats_h__
|
|
9
|
+
|
|
10
|
+
#include "common.h"
|
|
11
|
+
|
|
12
|
+
int git_diff__stats_to_buf(
|
|
13
|
+
git_str *out,
|
|
14
|
+
const git_diff_stats *stats,
|
|
15
|
+
git_diff_stats_format_t format,
|
|
16
|
+
size_t width);
|
|
17
|
+
|
|
18
|
+
#endif
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
#include "diff.h"
|
|
15
15
|
#include "diff_generate.h"
|
|
16
|
-
#include "
|
|
16
|
+
#include "fs_path.h"
|
|
17
17
|
#include "futils.h"
|
|
18
18
|
#include "config.h"
|
|
19
19
|
|
|
@@ -241,7 +241,7 @@ int git_diff_find_similar__calc_similarity(
|
|
|
241
241
|
|
|
242
242
|
#define DEFAULT_THRESHOLD 50
|
|
243
243
|
#define DEFAULT_BREAK_REWRITE_THRESHOLD 60
|
|
244
|
-
#define DEFAULT_RENAME_LIMIT
|
|
244
|
+
#define DEFAULT_RENAME_LIMIT 1000
|
|
245
245
|
|
|
246
246
|
static int normalize_find_opts(
|
|
247
247
|
git_diff *diff,
|
|
@@ -364,6 +364,7 @@ static int insert_delete_side_of_split(
|
|
|
364
364
|
memset(&deleted->new_file, 0, sizeof(deleted->new_file));
|
|
365
365
|
deleted->new_file.path = deleted->old_file.path;
|
|
366
366
|
deleted->new_file.flags |= GIT_DIFF_FLAG_VALID_ID;
|
|
367
|
+
git_oid_clear(&deleted->new_file.id, GIT_OID_SHA1);
|
|
367
368
|
|
|
368
369
|
return git_vector_insert(onto, deleted);
|
|
369
370
|
}
|
|
@@ -375,7 +376,7 @@ static int apply_splits_and_deletes(
|
|
|
375
376
|
size_t i;
|
|
376
377
|
git_diff_delta *delta;
|
|
377
378
|
|
|
378
|
-
if (git_vector_init(&onto, expected_size,
|
|
379
|
+
if (git_vector_init(&onto, expected_size, diff->deltas._cmp) < 0)
|
|
379
380
|
return -1;
|
|
380
381
|
|
|
381
382
|
/* build new delta list without TO_DELETE and splitting TO_SPLIT */
|
|
@@ -397,6 +398,7 @@ static int apply_splits_and_deletes(
|
|
|
397
398
|
memset(&delta->old_file, 0, sizeof(delta->old_file));
|
|
398
399
|
delta->old_file.path = delta->new_file.path;
|
|
399
400
|
delta->old_file.flags |= GIT_DIFF_FLAG_VALID_ID;
|
|
401
|
+
git_oid_clear(&delta->old_file.id, GIT_OID_SHA1);
|
|
400
402
|
}
|
|
401
403
|
|
|
402
404
|
/* clean up delta before inserting into new list */
|
|
@@ -444,7 +446,7 @@ typedef struct {
|
|
|
444
446
|
git_iterator_t src;
|
|
445
447
|
git_repository *repo;
|
|
446
448
|
git_diff_file *file;
|
|
447
|
-
|
|
449
|
+
git_str data;
|
|
448
450
|
git_odb_object *odb_obj;
|
|
449
451
|
git_blob *blob;
|
|
450
452
|
} similarity_info;
|
|
@@ -458,9 +460,10 @@ static int similarity_init(
|
|
|
458
460
|
info->file = similarity_get_file(diff, file_idx);
|
|
459
461
|
info->odb_obj = NULL;
|
|
460
462
|
info->blob = NULL;
|
|
461
|
-
|
|
463
|
+
git_str_init(&info->data, 0);
|
|
462
464
|
|
|
463
|
-
if (info->file->
|
|
465
|
+
if ((info->file->flags & GIT_DIFF_FLAG_VALID_SIZE) ||
|
|
466
|
+
info->src == GIT_ITERATOR_WORKDIR)
|
|
464
467
|
return 0;
|
|
465
468
|
|
|
466
469
|
return git_diff_file__resolve_zero_size(
|
|
@@ -481,7 +484,7 @@ static int similarity_sig(
|
|
|
481
484
|
return error;
|
|
482
485
|
|
|
483
486
|
/* if path is not a regular file, just skip this item */
|
|
484
|
-
if (!
|
|
487
|
+
if (!git_fs_path_isfile(info->data.ptr))
|
|
485
488
|
return 0;
|
|
486
489
|
|
|
487
490
|
/* TODO: apply wd-to-odb filters to file data if necessary */
|
|
@@ -529,7 +532,7 @@ static void similarity_unload(similarity_info *info)
|
|
|
529
532
|
if (info->blob)
|
|
530
533
|
git_blob_free(info->blob);
|
|
531
534
|
else
|
|
532
|
-
|
|
535
|
+
git_str_dispose(&info->data);
|
|
533
536
|
}
|
|
534
537
|
|
|
535
538
|
#define FLAG_SET(opts,flag_name) (((opts)->flags & flag_name) != 0)
|
|
@@ -994,6 +997,7 @@ find_best_matches:
|
|
|
994
997
|
memset(&src->new_file, 0, sizeof(src->new_file));
|
|
995
998
|
src->new_file.path = src->old_file.path;
|
|
996
999
|
src->new_file.flags |= GIT_DIFF_FLAG_VALID_ID;
|
|
1000
|
+
git_oid_clear(&src->new_file.id, GIT_OID_SHA1);
|
|
997
1001
|
|
|
998
1002
|
num_updates++;
|
|
999
1003
|
|
|
@@ -1019,6 +1023,7 @@ find_best_matches:
|
|
|
1019
1023
|
memset(&src->old_file, 0, sizeof(src->old_file));
|
|
1020
1024
|
src->old_file.path = src->new_file.path;
|
|
1021
1025
|
src->old_file.flags |= GIT_DIFF_FLAG_VALID_ID;
|
|
1026
|
+
git_oid_clear(&src->old_file.id, GIT_OID_SHA1);
|
|
1022
1027
|
|
|
1023
1028
|
src->flags &= ~GIT_DIFF_FLAG__TO_SPLIT;
|
|
1024
1029
|
num_rewrites--;
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
#include "diff.h"
|
|
12
12
|
#include "diff_driver.h"
|
|
13
13
|
#include "patch_generate.h"
|
|
14
|
+
#include "utf8.h"
|
|
14
15
|
|
|
15
16
|
static int git_xdiff_scan_int(const char **str, int *value)
|
|
16
17
|
{
|
|
@@ -218,14 +219,9 @@ static int git_xdiff(git_patch_generated_output *output, git_patch_generated *pa
|
|
|
218
219
|
* updates are needed to xo->params.flags
|
|
219
220
|
*/
|
|
220
221
|
|
|
221
|
-
git_patch_generated_old_data(&info.xd_old_data.ptr, &info.xd_old_data.size, patch)
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
if (info.xd_old_data.size > GIT_XDIFF_MAX_SIZE ||
|
|
225
|
-
info.xd_new_data.size > GIT_XDIFF_MAX_SIZE) {
|
|
226
|
-
git_error_set(GIT_ERROR_INVALID, "files too large for diff");
|
|
222
|
+
if (git_patch_generated_old_data(&info.xd_old_data.ptr, &info.xd_old_data.size, patch) < 0 ||
|
|
223
|
+
git_patch_generated_new_data(&info.xd_new_data.ptr, &info.xd_new_data.size, patch) < 0)
|
|
227
224
|
return -1;
|
|
228
|
-
}
|
|
229
225
|
|
|
230
226
|
xdl_diff(&info.xd_old_data, &info.xd_new_data,
|
|
231
227
|
&xo->params, &xo->config, &xo->callback);
|
|
@@ -261,5 +257,5 @@ void git_xdiff_init(git_xdiff_output *xo, const git_diff_options *opts)
|
|
|
261
257
|
if (flags & GIT_DIFF_IGNORE_BLANK_LINES)
|
|
262
258
|
xo->params.flags |= XDF_IGNORE_BLANK_LINES;
|
|
263
259
|
|
|
264
|
-
xo->callback.
|
|
260
|
+
xo->callback.out_line = git_xdiff_cb;
|
|
265
261
|
}
|
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
|
|
8
8
|
#include "email.h"
|
|
9
9
|
|
|
10
|
-
#include "buffer.h"
|
|
11
10
|
#include "common.h"
|
|
11
|
+
#include "buf.h"
|
|
12
12
|
#include "diff_generate.h"
|
|
13
|
+
#include "diff_stats.h"
|
|
14
|
+
#include "patch.h"
|
|
15
|
+
#include "date.h"
|
|
13
16
|
|
|
14
17
|
#include "git2/email.h"
|
|
15
18
|
#include "git2/patch.h"
|
|
@@ -32,7 +35,7 @@ GIT_INLINE(int) include_prefix(
|
|
|
32
35
|
}
|
|
33
36
|
|
|
34
37
|
static int append_prefix(
|
|
35
|
-
|
|
38
|
+
git_str *out,
|
|
36
39
|
size_t patch_idx,
|
|
37
40
|
size_t patch_count,
|
|
38
41
|
git_email_create_options *opts)
|
|
@@ -40,16 +43,16 @@ static int append_prefix(
|
|
|
40
43
|
const char *subject_prefix = opts->subject_prefix ?
|
|
41
44
|
opts->subject_prefix : "PATCH";
|
|
42
45
|
|
|
43
|
-
|
|
46
|
+
git_str_putc(out, '[');
|
|
44
47
|
|
|
45
48
|
if (*subject_prefix)
|
|
46
|
-
|
|
49
|
+
git_str_puts(out, subject_prefix);
|
|
47
50
|
|
|
48
51
|
if (opts->reroll_number) {
|
|
49
52
|
if (*subject_prefix)
|
|
50
|
-
|
|
53
|
+
git_str_putc(out, ' ');
|
|
51
54
|
|
|
52
|
-
|
|
55
|
+
git_str_printf(out, "v%" PRIuZ, opts->reroll_number);
|
|
53
56
|
}
|
|
54
57
|
|
|
55
58
|
if ((opts->flags & GIT_EMAIL_CREATE_ALWAYS_NUMBER) != 0 ||
|
|
@@ -58,20 +61,33 @@ static int append_prefix(
|
|
|
58
61
|
opts->start_number : 1;
|
|
59
62
|
|
|
60
63
|
if (*subject_prefix || opts->reroll_number)
|
|
61
|
-
|
|
64
|
+
git_str_putc(out, ' ');
|
|
62
65
|
|
|
63
|
-
|
|
66
|
+
git_str_printf(out, "%" PRIuZ "/%" PRIuZ,
|
|
64
67
|
patch_idx + (start_number - 1),
|
|
65
68
|
patch_count + (start_number - 1));
|
|
66
69
|
}
|
|
67
70
|
|
|
68
|
-
|
|
71
|
+
git_str_puts(out, "]");
|
|
69
72
|
|
|
70
|
-
return
|
|
73
|
+
return git_str_oom(out) ? -1 : 0;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
static int append_date(
|
|
77
|
+
git_str *out,
|
|
78
|
+
const git_time *date)
|
|
79
|
+
{
|
|
80
|
+
int error;
|
|
81
|
+
|
|
82
|
+
if ((error = git_str_printf(out, "Date: ")) == 0 &&
|
|
83
|
+
(error = git_date_rfc2822_fmt(out, date->time, date->offset)) == 0)
|
|
84
|
+
error = git_str_putc(out, '\n');
|
|
85
|
+
|
|
86
|
+
return error;
|
|
71
87
|
}
|
|
72
88
|
|
|
73
89
|
static int append_subject(
|
|
74
|
-
|
|
90
|
+
git_str *out,
|
|
75
91
|
size_t patch_idx,
|
|
76
92
|
size_t patch_count,
|
|
77
93
|
const char *summary,
|
|
@@ -88,25 +104,25 @@ static int append_subject(
|
|
|
88
104
|
summary_len = (nl - summary);
|
|
89
105
|
}
|
|
90
106
|
|
|
91
|
-
if ((error =
|
|
107
|
+
if ((error = git_str_puts(out, "Subject: ")) < 0)
|
|
92
108
|
return error;
|
|
93
109
|
|
|
94
110
|
if (prefix &&
|
|
95
111
|
(error = append_prefix(out, patch_idx, patch_count, opts)) < 0)
|
|
96
112
|
return error;
|
|
97
113
|
|
|
98
|
-
if (prefix && summary_len && (error =
|
|
114
|
+
if (prefix && summary_len && (error = git_str_putc(out, ' ')) < 0)
|
|
99
115
|
return error;
|
|
100
116
|
|
|
101
117
|
if (summary_len &&
|
|
102
|
-
(error =
|
|
118
|
+
(error = git_str_put(out, summary, summary_len)) < 0)
|
|
103
119
|
return error;
|
|
104
120
|
|
|
105
|
-
return
|
|
121
|
+
return git_str_putc(out, '\n');
|
|
106
122
|
}
|
|
107
123
|
|
|
108
124
|
static int append_header(
|
|
109
|
-
|
|
125
|
+
git_str *out,
|
|
110
126
|
size_t patch_idx,
|
|
111
127
|
size_t patch_count,
|
|
112
128
|
const git_oid *commit_id,
|
|
@@ -114,25 +130,23 @@ static int append_header(
|
|
|
114
130
|
const git_signature *author,
|
|
115
131
|
git_email_create_options *opts)
|
|
116
132
|
{
|
|
117
|
-
char id[
|
|
118
|
-
char date[GIT_DATE_RFC2822_SZ];
|
|
133
|
+
char id[GIT_OID_SHA1_HEXSIZE];
|
|
119
134
|
int error;
|
|
120
135
|
|
|
121
136
|
if ((error = git_oid_fmt(id, commit_id)) < 0 ||
|
|
122
|
-
(error =
|
|
123
|
-
(error =
|
|
124
|
-
(error =
|
|
125
|
-
(error = git_buf_printf(out, "Date: %s\n", date)) < 0 ||
|
|
137
|
+
(error = git_str_printf(out, "From %.*s %s\n", GIT_OID_SHA1_HEXSIZE, id, EMAIL_TIMESTAMP)) < 0 ||
|
|
138
|
+
(error = git_str_printf(out, "From: %s <%s>\n", author->name, author->email)) < 0 ||
|
|
139
|
+
(error = append_date(out, &author->when)) < 0 ||
|
|
126
140
|
(error = append_subject(out, patch_idx, patch_count, summary, opts)) < 0)
|
|
127
141
|
return error;
|
|
128
142
|
|
|
129
|
-
if ((error =
|
|
143
|
+
if ((error = git_str_putc(out, '\n')) < 0)
|
|
130
144
|
return error;
|
|
131
145
|
|
|
132
146
|
return 0;
|
|
133
147
|
}
|
|
134
148
|
|
|
135
|
-
static int append_body(
|
|
149
|
+
static int append_body(git_str *out, const char *body)
|
|
136
150
|
{
|
|
137
151
|
size_t body_len;
|
|
138
152
|
int error;
|
|
@@ -142,16 +156,16 @@ static int append_body(git_buf *out, const char *body)
|
|
|
142
156
|
|
|
143
157
|
body_len = strlen(body);
|
|
144
158
|
|
|
145
|
-
if ((error =
|
|
159
|
+
if ((error = git_str_puts(out, body)) < 0)
|
|
146
160
|
return error;
|
|
147
161
|
|
|
148
162
|
if (body_len && body[body_len - 1] != '\n')
|
|
149
|
-
error =
|
|
163
|
+
error = git_str_putc(out, '\n');
|
|
150
164
|
|
|
151
165
|
return error;
|
|
152
166
|
}
|
|
153
167
|
|
|
154
|
-
static int append_diffstat(
|
|
168
|
+
static int append_diffstat(git_str *out, git_diff *diff)
|
|
155
169
|
{
|
|
156
170
|
git_diff_stats *stats = NULL;
|
|
157
171
|
unsigned int format_flags;
|
|
@@ -160,14 +174,14 @@ static int append_diffstat(git_buf *out, git_diff *diff)
|
|
|
160
174
|
format_flags = GIT_DIFF_STATS_FULL | GIT_DIFF_STATS_INCLUDE_SUMMARY;
|
|
161
175
|
|
|
162
176
|
if ((error = git_diff_get_stats(&stats, diff)) == 0 &&
|
|
163
|
-
(error =
|
|
164
|
-
error =
|
|
177
|
+
(error = git_diff__stats_to_buf(out, stats, format_flags, 0)) == 0)
|
|
178
|
+
error = git_str_putc(out, '\n');
|
|
165
179
|
|
|
166
180
|
git_diff_stats_free(stats);
|
|
167
181
|
return error;
|
|
168
182
|
}
|
|
169
183
|
|
|
170
|
-
static int append_patches(
|
|
184
|
+
static int append_patches(git_str *out, git_diff *diff)
|
|
171
185
|
{
|
|
172
186
|
size_t i, deltas;
|
|
173
187
|
int error = 0;
|
|
@@ -178,7 +192,7 @@ static int append_patches(git_buf *out, git_diff *diff)
|
|
|
178
192
|
git_patch *patch = NULL;
|
|
179
193
|
|
|
180
194
|
if ((error = git_patch_from_diff(&patch, diff, i)) >= 0)
|
|
181
|
-
error =
|
|
195
|
+
error = git_patch__to_buf(out, patch);
|
|
182
196
|
|
|
183
197
|
git_patch_free(patch);
|
|
184
198
|
|
|
@@ -190,7 +204,7 @@ static int append_patches(git_buf *out, git_diff *diff)
|
|
|
190
204
|
}
|
|
191
205
|
|
|
192
206
|
int git_email__append_from_diff(
|
|
193
|
-
|
|
207
|
+
git_str *out,
|
|
194
208
|
git_diff *diff,
|
|
195
209
|
size_t patch_idx,
|
|
196
210
|
size_t patch_count,
|
|
@@ -216,14 +230,12 @@ int git_email__append_from_diff(
|
|
|
216
230
|
if (given_opts)
|
|
217
231
|
memcpy(&opts, given_opts, sizeof(git_email_create_options));
|
|
218
232
|
|
|
219
|
-
git_buf_sanitize(out);
|
|
220
|
-
|
|
221
233
|
if ((error = append_header(out, patch_idx, patch_count, commit_id, summary, author, &opts)) == 0 &&
|
|
222
234
|
(error = append_body(out, body)) == 0 &&
|
|
223
|
-
(error =
|
|
235
|
+
(error = git_str_puts(out, "---\n")) == 0 &&
|
|
224
236
|
(error = append_diffstat(out, diff)) == 0 &&
|
|
225
237
|
(error = append_patches(out, diff)) == 0)
|
|
226
|
-
error =
|
|
238
|
+
error = git_str_puts(out, "--\nlibgit2 " LIBGIT2_VERSION "\n\n");
|
|
227
239
|
|
|
228
240
|
return error;
|
|
229
241
|
}
|
|
@@ -239,15 +251,19 @@ int git_email_create_from_diff(
|
|
|
239
251
|
const git_signature *author,
|
|
240
252
|
const git_email_create_options *given_opts)
|
|
241
253
|
{
|
|
254
|
+
git_str email = GIT_STR_INIT;
|
|
242
255
|
int error;
|
|
243
256
|
|
|
244
|
-
|
|
245
|
-
git_buf_clear(out);
|
|
257
|
+
git_buf_tostr(&email, out);
|
|
246
258
|
|
|
247
|
-
error = git_email__append_from_diff(
|
|
259
|
+
error = git_email__append_from_diff(&email, diff, patch_idx,
|
|
248
260
|
patch_count, commit_id, summary, body, author,
|
|
249
261
|
given_opts);
|
|
250
262
|
|
|
263
|
+
if (error == 0)
|
|
264
|
+
error = git_buf_fromstr(out, &email);
|
|
265
|
+
|
|
266
|
+
git_str_dispose(&email);
|
|
251
267
|
return error;
|
|
252
268
|
}
|
|
253
269
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
#include "threadstate.h"
|
|
11
11
|
#include "posix.h"
|
|
12
|
-
#include "
|
|
12
|
+
#include "str.h"
|
|
13
13
|
#include "libgit2.h"
|
|
14
14
|
|
|
15
15
|
/********************************************
|
|
@@ -29,7 +29,7 @@ static git_error g_git_uninitialized_error = {
|
|
|
29
29
|
static void set_error_from_buffer(int error_class)
|
|
30
30
|
{
|
|
31
31
|
git_error *error = &GIT_THREADSTATE->error_t;
|
|
32
|
-
|
|
32
|
+
git_str *buf = &GIT_THREADSTATE->error_buf;
|
|
33
33
|
|
|
34
34
|
error->message = buf->ptr;
|
|
35
35
|
error->klass = error_class;
|
|
@@ -39,11 +39,11 @@ static void set_error_from_buffer(int error_class)
|
|
|
39
39
|
|
|
40
40
|
static void set_error(int error_class, char *string)
|
|
41
41
|
{
|
|
42
|
-
|
|
42
|
+
git_str *buf = &GIT_THREADSTATE->error_buf;
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
git_str_clear(buf);
|
|
45
45
|
if (string) {
|
|
46
|
-
|
|
46
|
+
git_str_puts(buf, string);
|
|
47
47
|
git__free(string);
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -70,20 +70,20 @@ void git_error_vset(int error_class, const char *fmt, va_list ap)
|
|
|
70
70
|
DWORD win32_error_code = (error_class == GIT_ERROR_OS) ? GetLastError() : 0;
|
|
71
71
|
#endif
|
|
72
72
|
int error_code = (error_class == GIT_ERROR_OS) ? errno : 0;
|
|
73
|
-
|
|
73
|
+
git_str *buf = &GIT_THREADSTATE->error_buf;
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
git_str_clear(buf);
|
|
76
76
|
if (fmt) {
|
|
77
|
-
|
|
77
|
+
git_str_vprintf(buf, fmt, ap);
|
|
78
78
|
if (error_class == GIT_ERROR_OS)
|
|
79
|
-
|
|
79
|
+
git_str_PUTS(buf, ": ");
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
if (error_class == GIT_ERROR_OS) {
|
|
83
83
|
#ifdef GIT_WIN32
|
|
84
84
|
char * win32_error = git_win32_get_error_message(win32_error_code);
|
|
85
85
|
if (win32_error) {
|
|
86
|
-
|
|
86
|
+
git_str_puts(buf, win32_error);
|
|
87
87
|
git__free(win32_error);
|
|
88
88
|
|
|
89
89
|
SetLastError(0);
|
|
@@ -91,26 +91,26 @@ void git_error_vset(int error_class, const char *fmt, va_list ap)
|
|
|
91
91
|
else
|
|
92
92
|
#endif
|
|
93
93
|
if (error_code)
|
|
94
|
-
|
|
94
|
+
git_str_puts(buf, strerror(error_code));
|
|
95
95
|
|
|
96
96
|
if (error_code)
|
|
97
97
|
errno = 0;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
if (!
|
|
100
|
+
if (!git_str_oom(buf))
|
|
101
101
|
set_error_from_buffer(error_class);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
int git_error_set_str(int error_class, const char *string)
|
|
105
105
|
{
|
|
106
|
-
|
|
106
|
+
git_str *buf = &GIT_THREADSTATE->error_buf;
|
|
107
107
|
|
|
108
108
|
GIT_ASSERT_ARG(string);
|
|
109
109
|
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
git_str_clear(buf);
|
|
111
|
+
git_str_puts(buf, string);
|
|
112
112
|
|
|
113
|
-
if (
|
|
113
|
+
if (git_str_oom(buf))
|
|
114
114
|
return -1;
|
|
115
115
|
|
|
116
116
|
set_error_from_buffer(error_class);
|
|
@@ -142,7 +142,7 @@ const git_error *git_error_last(void)
|
|
|
142
142
|
int git_error_state_capture(git_error_state *state, int error_code)
|
|
143
143
|
{
|
|
144
144
|
git_error *error = GIT_THREADSTATE->last_error;
|
|
145
|
-
|
|
145
|
+
git_str *error_buf = &GIT_THREADSTATE->error_buf;
|
|
146
146
|
|
|
147
147
|
memset(state, 0, sizeof(git_error_state));
|
|
148
148
|
|
|
@@ -158,7 +158,7 @@ int git_error_state_capture(git_error_state *state, int error_code)
|
|
|
158
158
|
if (state->oom)
|
|
159
159
|
state->error_msg.message = g_git_oom_error.message;
|
|
160
160
|
else
|
|
161
|
-
state->error_msg.message =
|
|
161
|
+
state->error_msg.message = git_str_detach(error_buf);
|
|
162
162
|
}
|
|
163
163
|
|
|
164
164
|
git_error_clear();
|