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
|
@@ -22,11 +22,41 @@
|
|
|
22
22
|
*/
|
|
23
23
|
GIT_BEGIN_DECL
|
|
24
24
|
|
|
25
|
+
/** Flags controlling the behavior of ODB lookup operations */
|
|
26
|
+
typedef enum {
|
|
27
|
+
/**
|
|
28
|
+
* Don't call `git_odb_refresh` if the lookup fails. Useful when doing
|
|
29
|
+
* a batch of lookup operations for objects that may legitimately not
|
|
30
|
+
* exist. When using this flag, you may wish to manually call
|
|
31
|
+
* `git_odb_refresh` before processing a batch of objects.
|
|
32
|
+
*/
|
|
33
|
+
GIT_ODB_LOOKUP_NO_REFRESH = (1 << 0)
|
|
34
|
+
} git_odb_lookup_flags_t;
|
|
35
|
+
|
|
25
36
|
/**
|
|
26
37
|
* Function type for callbacks from git_odb_foreach.
|
|
27
38
|
*/
|
|
28
39
|
typedef int GIT_CALLBACK(git_odb_foreach_cb)(const git_oid *id, void *payload);
|
|
29
40
|
|
|
41
|
+
/** Options for configuring a loose object backend. */
|
|
42
|
+
typedef struct {
|
|
43
|
+
unsigned int version; /**< version for the struct */
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Type of object IDs to use for this object database, or
|
|
47
|
+
* 0 for default (currently SHA1).
|
|
48
|
+
*/
|
|
49
|
+
git_oid_t oid_type;
|
|
50
|
+
} git_odb_options;
|
|
51
|
+
|
|
52
|
+
/* The current version of the diff options structure */
|
|
53
|
+
#define GIT_ODB_OPTIONS_VERSION 1
|
|
54
|
+
|
|
55
|
+
/* Stack initializer for odb options. Alternatively use
|
|
56
|
+
* `git_odb_options_init` programmatic initialization.
|
|
57
|
+
*/
|
|
58
|
+
#define GIT_ODB_OPTIONS_INIT { GIT_ODB_OPTIONS_VERSION }
|
|
59
|
+
|
|
30
60
|
/**
|
|
31
61
|
* Create a new object database with no backends.
|
|
32
62
|
*
|
|
@@ -35,9 +65,14 @@ typedef int GIT_CALLBACK(git_odb_foreach_cb)(const git_oid *id, void *payload);
|
|
|
35
65
|
*
|
|
36
66
|
* @param out location to store the database pointer, if opened.
|
|
37
67
|
* Set to NULL if the open failed.
|
|
68
|
+
* @param opts the options for this object database or NULL for defaults
|
|
38
69
|
* @return 0 or an error code
|
|
39
70
|
*/
|
|
71
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
72
|
+
GIT_EXTERN(int) git_odb_new(git_odb **out, const git_odb_options *opts);
|
|
73
|
+
#else
|
|
40
74
|
GIT_EXTERN(int) git_odb_new(git_odb **out);
|
|
75
|
+
#endif
|
|
41
76
|
|
|
42
77
|
/**
|
|
43
78
|
* Create a new object database and automatically add
|
|
@@ -53,9 +88,17 @@ GIT_EXTERN(int) git_odb_new(git_odb **out);
|
|
|
53
88
|
* @param out location to store the database pointer, if opened.
|
|
54
89
|
* Set to NULL if the open failed.
|
|
55
90
|
* @param objects_dir path of the backends' "objects" directory.
|
|
91
|
+
* @param opts the options for this object database or NULL for defaults
|
|
56
92
|
* @return 0 or an error code
|
|
57
93
|
*/
|
|
94
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
95
|
+
GIT_EXTERN(int) git_odb_open(
|
|
96
|
+
git_odb **out,
|
|
97
|
+
const char *objects_dir,
|
|
98
|
+
const git_odb_options *opts);
|
|
99
|
+
#else
|
|
58
100
|
GIT_EXTERN(int) git_odb_open(git_odb **out, const char *objects_dir);
|
|
101
|
+
#endif
|
|
59
102
|
|
|
60
103
|
/**
|
|
61
104
|
* Add an on-disk alternate to an existing Object DB.
|
|
@@ -106,7 +149,7 @@ GIT_EXTERN(int) git_odb_read(git_odb_object **out, git_odb *db, const git_oid *i
|
|
|
106
149
|
* This method queries all available ODB backends
|
|
107
150
|
* trying to match the 'len' first hexadecimal
|
|
108
151
|
* characters of the 'short_id'.
|
|
109
|
-
* The remaining (
|
|
152
|
+
* The remaining (GIT_OID_SHA1_HEXSIZE-len)*4 bits of
|
|
110
153
|
* 'short_id' must be 0s.
|
|
111
154
|
* 'len' must be at least GIT_OID_MINPREFIXLEN,
|
|
112
155
|
* and the prefix must be long enough to identify
|
|
@@ -155,6 +198,17 @@ GIT_EXTERN(int) git_odb_read_header(size_t *len_out, git_object_t *type_out, git
|
|
|
155
198
|
*/
|
|
156
199
|
GIT_EXTERN(int) git_odb_exists(git_odb *db, const git_oid *id);
|
|
157
200
|
|
|
201
|
+
/**
|
|
202
|
+
* Determine if the given object can be found in the object database, with
|
|
203
|
+
* extended options.
|
|
204
|
+
*
|
|
205
|
+
* @param db database to be searched for the given object.
|
|
206
|
+
* @param id the object to search for.
|
|
207
|
+
* @param flags flags affecting the lookup (see `git_odb_lookup_flags_t`)
|
|
208
|
+
* @return 1 if the object was found, 0 otherwise
|
|
209
|
+
*/
|
|
210
|
+
GIT_EXTERN(int) git_odb_exists_ext(git_odb *db, const git_oid *id, unsigned int flags);
|
|
211
|
+
|
|
158
212
|
/**
|
|
159
213
|
* Determine if an object can be found in the object database by an
|
|
160
214
|
* abbreviated object ID.
|
|
@@ -192,12 +246,13 @@ typedef struct git_odb_expand_id {
|
|
|
192
246
|
|
|
193
247
|
/**
|
|
194
248
|
* Determine if one or more objects can be found in the object database
|
|
195
|
-
* by their abbreviated object ID and type.
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
* the
|
|
200
|
-
* array
|
|
249
|
+
* by their abbreviated object ID and type.
|
|
250
|
+
*
|
|
251
|
+
* The given array will be updated in place: for each abbreviated ID that is
|
|
252
|
+
* unique in the database, and of the given type (if specified),
|
|
253
|
+
* the full object ID, object ID length (`GIT_OID_SHA1_HEXSIZE`) and type will be
|
|
254
|
+
* written back to the array. For IDs that are not found (or are ambiguous),
|
|
255
|
+
* the array entry will be zeroed.
|
|
201
256
|
*
|
|
202
257
|
* Note that since this function operates on multiple objects, the
|
|
203
258
|
* underlying database will not be asked to be reloaded if an object is
|
|
@@ -323,6 +378,11 @@ GIT_EXTERN(int) git_odb_stream_finalize_write(git_oid *out, git_odb_stream *stre
|
|
|
323
378
|
* Read from an odb stream
|
|
324
379
|
*
|
|
325
380
|
* Most backends don't implement streaming reads
|
|
381
|
+
*
|
|
382
|
+
* @param stream the stream
|
|
383
|
+
* @param buffer a user-allocated buffer to store the data in.
|
|
384
|
+
* @param len the buffer's length
|
|
385
|
+
* @return 0 if the read succeeded, error code otherwise
|
|
326
386
|
*/
|
|
327
387
|
GIT_EXTERN(int) git_odb_stream_read(git_odb_stream *stream, char *buffer, size_t len);
|
|
328
388
|
|
|
@@ -383,6 +443,7 @@ GIT_EXTERN(int) git_odb_open_rstream(
|
|
|
383
443
|
* Be aware that this is called inline with network and indexing operations,
|
|
384
444
|
* so performance may be affected.
|
|
385
445
|
* @param progress_payload payload for the progress callback
|
|
446
|
+
* @return 0 or an error code.
|
|
386
447
|
*/
|
|
387
448
|
GIT_EXTERN(int) git_odb_write_pack(
|
|
388
449
|
git_odb_writepack **out,
|
|
@@ -400,23 +461,34 @@ GIT_EXTERN(int) git_odb_write_pack(
|
|
|
400
461
|
* exist).
|
|
401
462
|
*
|
|
402
463
|
* @param db object database where the `multi-pack-index` file will be written.
|
|
464
|
+
* @return 0 or an error code.
|
|
403
465
|
*/
|
|
404
466
|
GIT_EXTERN(int) git_odb_write_multi_pack_index(
|
|
405
467
|
git_odb *db);
|
|
406
468
|
|
|
407
469
|
/**
|
|
408
|
-
* Determine the object-ID (sha1 hash) of a data buffer
|
|
470
|
+
* Determine the object-ID (sha1 or sha256 hash) of a data buffer
|
|
409
471
|
*
|
|
410
|
-
* The resulting
|
|
411
|
-
*
|
|
472
|
+
* The resulting OID will be the identifier for the data buffer as if
|
|
473
|
+
* the data buffer it were to written to the ODB.
|
|
412
474
|
*
|
|
413
475
|
* @param out the resulting object-ID.
|
|
414
476
|
* @param data data to hash
|
|
415
477
|
* @param len size of the data
|
|
416
|
-
* @param
|
|
478
|
+
* @param object_type of the data to hash
|
|
479
|
+
* @param oid_type the oid type to hash to
|
|
417
480
|
* @return 0 or an error code
|
|
418
481
|
*/
|
|
482
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
483
|
+
GIT_EXTERN(int) git_odb_hash(
|
|
484
|
+
git_oid *out,
|
|
485
|
+
const void *data,
|
|
486
|
+
size_t len,
|
|
487
|
+
git_object_t object_type,
|
|
488
|
+
git_oid_t oid_type);
|
|
489
|
+
#else
|
|
419
490
|
GIT_EXTERN(int) git_odb_hash(git_oid *out, const void *data, size_t len, git_object_t type);
|
|
491
|
+
#endif
|
|
420
492
|
|
|
421
493
|
/**
|
|
422
494
|
* Read a file from disk and fill a git_oid with the object id
|
|
@@ -428,10 +500,19 @@ GIT_EXTERN(int) git_odb_hash(git_oid *out, const void *data, size_t len, git_obj
|
|
|
428
500
|
*
|
|
429
501
|
* @param out oid structure the result is written into.
|
|
430
502
|
* @param path file to read and determine object id for
|
|
431
|
-
* @param
|
|
503
|
+
* @param object_type of the data to hash
|
|
504
|
+
* @param oid_type the oid type to hash to
|
|
432
505
|
* @return 0 or an error code
|
|
433
506
|
*/
|
|
507
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
508
|
+
GIT_EXTERN(int) git_odb_hashfile(
|
|
509
|
+
git_oid *out,
|
|
510
|
+
const char *path,
|
|
511
|
+
git_object_t object_type,
|
|
512
|
+
git_oid_t oid_type);
|
|
513
|
+
#else
|
|
434
514
|
GIT_EXTERN(int) git_odb_hashfile(git_oid *out, const char *path, git_object_t type);
|
|
515
|
+
#endif
|
|
435
516
|
|
|
436
517
|
/**
|
|
437
518
|
* Create a copy of an odb_object
|
|
@@ -556,7 +637,7 @@ GIT_EXTERN(int) git_odb_get_backend(git_odb_backend **out, git_odb *odb, size_t
|
|
|
556
637
|
/**
|
|
557
638
|
* Set the git commit-graph for the ODB.
|
|
558
639
|
*
|
|
559
|
-
* After a
|
|
640
|
+
* After a successful call, the ownership of the cgraph parameter will be
|
|
560
641
|
* transferred to libgit2, and the caller should not free it.
|
|
561
642
|
*
|
|
562
643
|
* The commit-graph can also be unset by explicitly passing NULL as the cgraph
|
|
@@ -24,6 +24,26 @@ GIT_BEGIN_DECL
|
|
|
24
24
|
* Constructors for in-box ODB backends.
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
|
+
/** Options for configuring a packfile object backend. */
|
|
28
|
+
typedef struct {
|
|
29
|
+
unsigned int version; /**< version for the struct */
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Type of object IDs to use for this object database, or
|
|
33
|
+
* 0 for default (currently SHA1).
|
|
34
|
+
*/
|
|
35
|
+
git_oid_t oid_type;
|
|
36
|
+
} git_odb_backend_pack_options;
|
|
37
|
+
|
|
38
|
+
/* The current version of the diff options structure */
|
|
39
|
+
#define GIT_ODB_BACKEND_PACK_OPTIONS_VERSION 1
|
|
40
|
+
|
|
41
|
+
/* Stack initializer for odb pack backend options. Alternatively use
|
|
42
|
+
* `git_odb_backend_pack_options_init` programmatic initialization.
|
|
43
|
+
*/
|
|
44
|
+
#define GIT_ODB_BACKEND_PACK_OPTIONS_INIT \
|
|
45
|
+
{ GIT_ODB_BACKEND_PACK_OPTIONS_VERSION }
|
|
46
|
+
|
|
27
47
|
/**
|
|
28
48
|
* Create a backend for the packfiles.
|
|
29
49
|
*
|
|
@@ -32,20 +52,96 @@ GIT_BEGIN_DECL
|
|
|
32
52
|
*
|
|
33
53
|
* @return 0 or an error code
|
|
34
54
|
*/
|
|
35
|
-
|
|
55
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
56
|
+
GIT_EXTERN(int) git_odb_backend_pack(
|
|
57
|
+
git_odb_backend **out,
|
|
58
|
+
const char *objects_dir,
|
|
59
|
+
const git_odb_backend_pack_options *opts);
|
|
60
|
+
#else
|
|
61
|
+
GIT_EXTERN(int) git_odb_backend_pack(
|
|
62
|
+
git_odb_backend **out,
|
|
63
|
+
const char *objects_dir);
|
|
64
|
+
#endif
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Create a backend out of a single packfile
|
|
68
|
+
*
|
|
69
|
+
* This can be useful for inspecting the contents of a single
|
|
70
|
+
* packfile.
|
|
71
|
+
*
|
|
72
|
+
* @param out location to store the odb backend pointer
|
|
73
|
+
* @param index_file path to the packfile's .idx file
|
|
74
|
+
*
|
|
75
|
+
* @return 0 or an error code
|
|
76
|
+
*/
|
|
77
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
78
|
+
GIT_EXTERN(int) git_odb_backend_one_pack(
|
|
79
|
+
git_odb_backend **out,
|
|
80
|
+
const char *index_file,
|
|
81
|
+
const git_odb_backend_pack_options *opts);
|
|
82
|
+
#else
|
|
83
|
+
GIT_EXTERN(int) git_odb_backend_one_pack(
|
|
84
|
+
git_odb_backend **out,
|
|
85
|
+
const char *index_file);
|
|
86
|
+
#endif
|
|
87
|
+
|
|
88
|
+
typedef enum {
|
|
89
|
+
GIT_ODB_BACKEND_LOOSE_FSYNC = (1 << 0)
|
|
90
|
+
} git_odb_backend_loose_flag_t;
|
|
91
|
+
|
|
92
|
+
/** Options for configuring a loose object backend. */
|
|
93
|
+
typedef struct {
|
|
94
|
+
unsigned int version; /**< version for the struct */
|
|
95
|
+
|
|
96
|
+
/** A combination of the `git_odb_backend_loose_flag_t` types. */
|
|
97
|
+
uint32_t flags;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* zlib compression level to use (0-9), where 1 is the fastest
|
|
101
|
+
* at the expense of larger files, and 9 produces the best
|
|
102
|
+
* compression at the expense of speed. 0 indicates that no
|
|
103
|
+
* compression should be performed. -1 is the default (currently
|
|
104
|
+
* optimizing for speed).
|
|
105
|
+
*/
|
|
106
|
+
int compression_level;
|
|
107
|
+
|
|
108
|
+
/** Permissions to use creating a directory or 0 for defaults */
|
|
109
|
+
unsigned int dir_mode;
|
|
110
|
+
|
|
111
|
+
/** Permissions to use creating a file or 0 for defaults */
|
|
112
|
+
unsigned int file_mode;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Type of object IDs to use for this object database, or
|
|
116
|
+
* 0 for default (currently SHA1).
|
|
117
|
+
*/
|
|
118
|
+
git_oid_t oid_type;
|
|
119
|
+
} git_odb_backend_loose_options;
|
|
120
|
+
|
|
121
|
+
/* The current version of the diff options structure */
|
|
122
|
+
#define GIT_ODB_BACKEND_LOOSE_OPTIONS_VERSION 1
|
|
123
|
+
|
|
124
|
+
/* Stack initializer for odb loose backend options. Alternatively use
|
|
125
|
+
* `git_odb_backend_loose_options_init` programmatic initialization.
|
|
126
|
+
*/
|
|
127
|
+
#define GIT_ODB_BACKEND_LOOSE_OPTIONS_INIT \
|
|
128
|
+
{ GIT_ODB_BACKEND_LOOSE_OPTIONS_VERSION, 0, -1 }
|
|
36
129
|
|
|
37
130
|
/**
|
|
38
131
|
* Create a backend for loose objects
|
|
39
132
|
*
|
|
40
133
|
* @param out location to store the odb backend pointer
|
|
41
134
|
* @param objects_dir the Git repository's objects directory
|
|
42
|
-
* @param
|
|
43
|
-
* @param do_fsync whether to do an fsync() after writing
|
|
44
|
-
* @param dir_mode permissions to use creating a directory or 0 for defaults
|
|
45
|
-
* @param file_mode permissions to use creating a file or 0 for defaults
|
|
135
|
+
* @param opts options for the loose object backend or NULL
|
|
46
136
|
*
|
|
47
137
|
* @return 0 or an error code
|
|
48
138
|
*/
|
|
139
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
140
|
+
GIT_EXTERN(int) git_odb_backend_loose(
|
|
141
|
+
git_odb_backend **out,
|
|
142
|
+
const char *objects_dir,
|
|
143
|
+
git_odb_backend_loose_options *opts);
|
|
144
|
+
#else
|
|
49
145
|
GIT_EXTERN(int) git_odb_backend_loose(
|
|
50
146
|
git_odb_backend **out,
|
|
51
147
|
const char *objects_dir,
|
|
@@ -53,25 +149,13 @@ GIT_EXTERN(int) git_odb_backend_loose(
|
|
|
53
149
|
int do_fsync,
|
|
54
150
|
unsigned int dir_mode,
|
|
55
151
|
unsigned int file_mode);
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Create a backend out of a single packfile
|
|
59
|
-
*
|
|
60
|
-
* This can be useful for inspecting the contents of a single
|
|
61
|
-
* packfile.
|
|
62
|
-
*
|
|
63
|
-
* @param out location to store the odb backend pointer
|
|
64
|
-
* @param index_file path to the packfile's .idx file
|
|
65
|
-
*
|
|
66
|
-
* @return 0 or an error code
|
|
67
|
-
*/
|
|
68
|
-
GIT_EXTERN(int) git_odb_backend_one_pack(git_odb_backend **out, const char *index_file);
|
|
152
|
+
#endif
|
|
69
153
|
|
|
70
154
|
/** Streaming mode */
|
|
71
155
|
typedef enum {
|
|
72
156
|
GIT_STREAM_RDONLY = (1 << 1),
|
|
73
157
|
GIT_STREAM_WRONLY = (1 << 2),
|
|
74
|
-
GIT_STREAM_RW = (GIT_STREAM_RDONLY | GIT_STREAM_WRONLY)
|
|
158
|
+
GIT_STREAM_RW = (GIT_STREAM_RDONLY | GIT_STREAM_WRONLY)
|
|
75
159
|
} git_odb_stream_t;
|
|
76
160
|
|
|
77
161
|
/**
|
|
@@ -87,6 +171,10 @@ struct git_odb_stream {
|
|
|
87
171
|
unsigned int mode;
|
|
88
172
|
void *hash_ctx;
|
|
89
173
|
|
|
174
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
175
|
+
git_oid_t oid_type;
|
|
176
|
+
#endif
|
|
177
|
+
|
|
90
178
|
git_object_size_t declared_size;
|
|
91
179
|
git_object_size_t received_bytes;
|
|
92
180
|
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
#include "common.h"
|
|
11
11
|
#include "types.h"
|
|
12
|
+
#include "experimental.h"
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* @file git2/oid.h
|
|
@@ -19,11 +20,76 @@
|
|
|
19
20
|
*/
|
|
20
21
|
GIT_BEGIN_DECL
|
|
21
22
|
|
|
22
|
-
/**
|
|
23
|
-
|
|
23
|
+
/** The type of object id. */
|
|
24
|
+
typedef enum {
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
27
|
+
GIT_OID_SHA1 = 1, /**< SHA1 */
|
|
28
|
+
GIT_OID_SHA256 = 2 /**< SHA256 */
|
|
29
|
+
#else
|
|
30
|
+
GIT_OID_SHA1 = 1 /**< SHA1 */
|
|
31
|
+
#endif
|
|
32
|
+
|
|
33
|
+
} git_oid_t;
|
|
34
|
+
|
|
35
|
+
/*
|
|
36
|
+
* SHA1 is currently the only supported object ID type.
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
/** SHA1 is currently libgit2's default oid type. */
|
|
40
|
+
#define GIT_OID_DEFAULT GIT_OID_SHA1
|
|
41
|
+
|
|
42
|
+
/** Size (in bytes) of a raw/binary sha1 oid */
|
|
43
|
+
#define GIT_OID_SHA1_SIZE 20
|
|
44
|
+
/** Size (in bytes) of a hex formatted sha1 oid */
|
|
45
|
+
#define GIT_OID_SHA1_HEXSIZE (GIT_OID_SHA1_SIZE * 2)
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The binary representation of the null sha1 object ID.
|
|
49
|
+
*/
|
|
50
|
+
#ifndef GIT_EXPERIMENTAL_SHA256
|
|
51
|
+
# define GIT_OID_SHA1_ZERO { { 0 } }
|
|
52
|
+
#else
|
|
53
|
+
# define GIT_OID_SHA1_ZERO { GIT_OID_SHA1, { 0 } }
|
|
54
|
+
#endif
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The string representation of the null sha1 object ID.
|
|
58
|
+
*/
|
|
59
|
+
#define GIT_OID_SHA1_HEXZERO "0000000000000000000000000000000000000000"
|
|
60
|
+
|
|
61
|
+
/*
|
|
62
|
+
* Experimental SHA256 support is a breaking change to the API.
|
|
63
|
+
* This exists for application compatibility testing.
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
67
|
+
|
|
68
|
+
/** Size (in bytes) of a raw/binary sha256 oid */
|
|
69
|
+
# define GIT_OID_SHA256_SIZE 32
|
|
70
|
+
/** Size (in bytes) of a hex formatted sha256 oid */
|
|
71
|
+
# define GIT_OID_SHA256_HEXSIZE (GIT_OID_SHA256_SIZE * 2)
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* The binary representation of the null sha256 object ID.
|
|
75
|
+
*/
|
|
76
|
+
# define GIT_OID_SHA256_ZERO { GIT_OID_SHA256, { 0 } }
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* The string representation of the null sha256 object ID.
|
|
80
|
+
*/
|
|
81
|
+
# define GIT_OID_SHA256_HEXZERO "0000000000000000000000000000000000000000000000000000000000000000"
|
|
82
|
+
|
|
83
|
+
#endif
|
|
84
|
+
|
|
85
|
+
/* Maximum possible object ID size in raw / hex string format. */
|
|
86
|
+
#ifndef GIT_EXPERIMENTAL_SHA256
|
|
87
|
+
# define GIT_OID_MAX_SIZE GIT_OID_SHA1_SIZE
|
|
88
|
+
# define GIT_OID_MAX_HEXSIZE GIT_OID_SHA1_HEXSIZE
|
|
89
|
+
#else
|
|
90
|
+
# define GIT_OID_MAX_SIZE GIT_OID_SHA256_SIZE
|
|
91
|
+
# define GIT_OID_MAX_HEXSIZE GIT_OID_SHA256_HEXSIZE
|
|
92
|
+
#endif
|
|
27
93
|
|
|
28
94
|
/** Minimum length (in number of hex characters,
|
|
29
95
|
* i.e. packets of 4 bits) of an oid prefix */
|
|
@@ -31,29 +97,50 @@ GIT_BEGIN_DECL
|
|
|
31
97
|
|
|
32
98
|
/** Unique identity of any object (commit, tree, blob, tag). */
|
|
33
99
|
typedef struct git_oid {
|
|
100
|
+
|
|
101
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
102
|
+
/** type of object id */
|
|
103
|
+
unsigned char type;
|
|
104
|
+
#endif
|
|
105
|
+
|
|
34
106
|
/** raw binary formatted id */
|
|
35
|
-
unsigned char id[
|
|
107
|
+
unsigned char id[GIT_OID_MAX_SIZE];
|
|
36
108
|
} git_oid;
|
|
37
109
|
|
|
38
110
|
/**
|
|
39
111
|
* Parse a hex formatted object id into a git_oid.
|
|
40
112
|
*
|
|
113
|
+
* The appropriate number of bytes for the given object ID type will
|
|
114
|
+
* be read from the string - 40 bytes for SHA1, 64 bytes for SHA256.
|
|
115
|
+
* The given string need not be NUL terminated.
|
|
116
|
+
*
|
|
41
117
|
* @param out oid structure the result is written into.
|
|
42
118
|
* @param str input hex string; must be pointing at the start of
|
|
43
119
|
* the hex sequence and have at least the number of bytes
|
|
44
|
-
* needed for an oid encoded in hex (40 bytes
|
|
120
|
+
* needed for an oid encoded in hex (40 bytes for sha1,
|
|
121
|
+
* 256 bytes for sha256).
|
|
122
|
+
* @param type the type of object id
|
|
45
123
|
* @return 0 or an error code
|
|
46
124
|
*/
|
|
125
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
126
|
+
GIT_EXTERN(int) git_oid_fromstr(git_oid *out, const char *str, git_oid_t type);
|
|
127
|
+
#else
|
|
47
128
|
GIT_EXTERN(int) git_oid_fromstr(git_oid *out, const char *str);
|
|
129
|
+
#endif
|
|
48
130
|
|
|
49
131
|
/**
|
|
50
|
-
* Parse a hex formatted
|
|
132
|
+
* Parse a hex formatted NUL-terminated string into a git_oid.
|
|
51
133
|
*
|
|
52
134
|
* @param out oid structure the result is written into.
|
|
53
135
|
* @param str input hex string; must be null-terminated.
|
|
136
|
+
* @param type the type of object id
|
|
54
137
|
* @return 0 or an error code
|
|
55
138
|
*/
|
|
139
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
140
|
+
GIT_EXTERN(int) git_oid_fromstrp(git_oid *out, const char *str, git_oid_t type);
|
|
141
|
+
#else
|
|
56
142
|
GIT_EXTERN(int) git_oid_fromstrp(git_oid *out, const char *str);
|
|
143
|
+
#endif
|
|
57
144
|
|
|
58
145
|
/**
|
|
59
146
|
* Parse N characters of a hex formatted object id into a git_oid.
|
|
@@ -64,9 +151,14 @@ GIT_EXTERN(int) git_oid_fromstrp(git_oid *out, const char *str);
|
|
|
64
151
|
* @param out oid structure the result is written into.
|
|
65
152
|
* @param str input hex string of at least size `length`
|
|
66
153
|
* @param length length of the input string
|
|
154
|
+
* @param type the type of object id
|
|
67
155
|
* @return 0 or an error code
|
|
68
156
|
*/
|
|
157
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
158
|
+
GIT_EXTERN(int) git_oid_fromstrn(git_oid *out, const char *str, size_t length, git_oid_t type);
|
|
159
|
+
#else
|
|
69
160
|
GIT_EXTERN(int) git_oid_fromstrn(git_oid *out, const char *str, size_t length);
|
|
161
|
+
#endif
|
|
70
162
|
|
|
71
163
|
/**
|
|
72
164
|
* Copy an already raw oid into a git_oid structure.
|
|
@@ -75,16 +167,21 @@ GIT_EXTERN(int) git_oid_fromstrn(git_oid *out, const char *str, size_t length);
|
|
|
75
167
|
* @param raw the raw input bytes to be copied.
|
|
76
168
|
* @return 0 on success or error code
|
|
77
169
|
*/
|
|
170
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
|
171
|
+
GIT_EXTERN(int) git_oid_fromraw(git_oid *out, const unsigned char *raw, git_oid_t type);
|
|
172
|
+
#else
|
|
78
173
|
GIT_EXTERN(int) git_oid_fromraw(git_oid *out, const unsigned char *raw);
|
|
174
|
+
#endif
|
|
79
175
|
|
|
80
176
|
/**
|
|
81
177
|
* Format a git_oid into a hex string.
|
|
82
178
|
*
|
|
83
179
|
* @param out output hex string; must be pointing at the start of
|
|
84
180
|
* the hex sequence and have at least the number of bytes
|
|
85
|
-
* needed for an oid encoded in hex (40 bytes
|
|
86
|
-
*
|
|
87
|
-
* by the caller if it is
|
|
181
|
+
* needed for an oid encoded in hex (40 bytes for SHA1,
|
|
182
|
+
* 64 bytes for SHA256). Only the oid digits are written;
|
|
183
|
+
* a '\\0' terminator must be added by the caller if it is
|
|
184
|
+
* required.
|
|
88
185
|
* @param id oid structure to format.
|
|
89
186
|
* @return 0 on success or error code
|
|
90
187
|
*/
|
|
@@ -94,7 +191,7 @@ GIT_EXTERN(int) git_oid_fmt(char *out, const git_oid *id);
|
|
|
94
191
|
* Format a git_oid into a partial hex string.
|
|
95
192
|
*
|
|
96
193
|
* @param out output hex string; you say how many bytes to write.
|
|
97
|
-
* If the number of bytes is >
|
|
194
|
+
* If the number of bytes is > GIT_OID_SHA1_HEXSIZE, extra bytes
|
|
98
195
|
* will be zeroed; if not, a '\0' terminator is NOT added.
|
|
99
196
|
* @param n number of characters to write into out string
|
|
100
197
|
* @param id oid structure to format.
|
|
@@ -110,9 +207,10 @@ GIT_EXTERN(int) git_oid_nfmt(char *out, size_t n, const git_oid *id);
|
|
|
110
207
|
*
|
|
111
208
|
* @param out output hex string; must be pointing at the start of
|
|
112
209
|
* the hex sequence and have at least the number of bytes
|
|
113
|
-
* needed for an oid encoded in hex (41 bytes
|
|
114
|
-
*
|
|
115
|
-
* by the caller if it
|
|
210
|
+
* needed for an oid encoded in hex (41 bytes for SHA1,
|
|
211
|
+
* 65 bytes for SHA256). Only the oid digits are written;
|
|
212
|
+
* a '\\0' terminator must be added by the caller if it
|
|
213
|
+
* is required.
|
|
116
214
|
* @param id oid structure to format.
|
|
117
215
|
* @return 0 on success, non-zero callback return value, or error code
|
|
118
216
|
*/
|
|
@@ -134,7 +232,9 @@ GIT_EXTERN(char *) git_oid_tostr_s(const git_oid *oid);
|
|
|
134
232
|
/**
|
|
135
233
|
* Format a git_oid into a buffer as a hex format c-string.
|
|
136
234
|
*
|
|
137
|
-
* If the buffer is smaller than
|
|
235
|
+
* If the buffer is smaller than the size of a hex-formatted oid string
|
|
236
|
+
* plus an additional byte (GIT_OID_SHA_HEXSIZE + 1 for SHA1 or
|
|
237
|
+
* GIT_OID_SHA256_HEXSIZE + 1 for SHA256), then the resulting
|
|
138
238
|
* oid c-string will be truncated to n-1 characters (but will still be
|
|
139
239
|
* NUL-byte terminated).
|
|
140
240
|
*
|
|
@@ -51,7 +51,7 @@ GIT_BEGIN_DECL
|
|
|
51
51
|
*/
|
|
52
52
|
typedef enum {
|
|
53
53
|
GIT_PACKBUILDER_ADDING_OBJECTS = 0,
|
|
54
|
-
GIT_PACKBUILDER_DELTAFICATION = 1
|
|
54
|
+
GIT_PACKBUILDER_DELTAFICATION = 1
|
|
55
55
|
} git_packbuilder_stage_t;
|
|
56
56
|
|
|
57
57
|
/**
|
|
@@ -148,6 +148,7 @@ GIT_EXTERN(int) git_packbuilder_insert_recur(git_packbuilder *pb, const git_oid
|
|
|
148
148
|
*
|
|
149
149
|
* @param buf Buffer where to write the packfile
|
|
150
150
|
* @param pb The packbuilder
|
|
151
|
+
* @return 0 or an error code
|
|
151
152
|
*/
|
|
152
153
|
GIT_EXTERN(int) git_packbuilder_write_buf(git_buf *buf, git_packbuilder *pb);
|
|
153
154
|
|
|
@@ -169,15 +170,30 @@ GIT_EXTERN(int) git_packbuilder_write(
|
|
|
169
170
|
git_indexer_progress_cb progress_cb,
|
|
170
171
|
void *progress_cb_payload);
|
|
171
172
|
|
|
173
|
+
#ifndef GIT_DEPRECATE_HARD
|
|
172
174
|
/**
|
|
173
|
-
* Get the packfile's hash
|
|
174
|
-
*
|
|
175
|
-
* A packfile's name is derived from the sorted hashing of all object
|
|
176
|
-
* names. This is only correct after the packfile has been written.
|
|
177
|
-
*
|
|
178
|
-
* @
|
|
179
|
-
|
|
175
|
+
* Get the packfile's hash
|
|
176
|
+
*
|
|
177
|
+
* A packfile's name is derived from the sorted hashing of all object
|
|
178
|
+
* names. This is only correct after the packfile has been written.
|
|
179
|
+
*
|
|
180
|
+
* @deprecated use git_packbuilder_name
|
|
181
|
+
* @param pb The packbuilder object
|
|
182
|
+
* @return 0 or an error code
|
|
183
|
+
*/
|
|
180
184
|
GIT_EXTERN(const git_oid *) git_packbuilder_hash(git_packbuilder *pb);
|
|
185
|
+
#endif
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Get the unique name for the resulting packfile.
|
|
189
|
+
*
|
|
190
|
+
* The packfile's name is derived from the packfile's content.
|
|
191
|
+
* This is only correct after the packfile has been written.
|
|
192
|
+
*
|
|
193
|
+
* @param pb the packbuilder instance
|
|
194
|
+
* @return a NUL terminated string for the packfile name
|
|
195
|
+
*/
|
|
196
|
+
GIT_EXTERN(const char *) git_packbuilder_name(git_packbuilder *pb);
|
|
181
197
|
|
|
182
198
|
/**
|
|
183
199
|
* Callback used to iterate over packed objects
|
|
@@ -139,17 +139,25 @@ GIT_EXTERN(int) git_patch_from_buffers(
|
|
|
139
139
|
|
|
140
140
|
/**
|
|
141
141
|
* Free a git_patch object.
|
|
142
|
+
*
|
|
143
|
+
* @param patch The patch to free.
|
|
142
144
|
*/
|
|
143
145
|
GIT_EXTERN(void) git_patch_free(git_patch *patch);
|
|
144
146
|
|
|
145
147
|
/**
|
|
146
148
|
* Get the delta associated with a patch. This delta points to internal
|
|
147
149
|
* data and you do not have to release it when you are done with it.
|
|
150
|
+
*
|
|
151
|
+
* @param patch The patch in which to get the delta.
|
|
152
|
+
* @return The delta associated with the patch.
|
|
148
153
|
*/
|
|
149
154
|
GIT_EXTERN(const git_diff_delta *) git_patch_get_delta(const git_patch *patch);
|
|
150
155
|
|
|
151
156
|
/**
|
|
152
157
|
* Get the number of hunks in a patch
|
|
158
|
+
*
|
|
159
|
+
* @param patch The patch in which to get the number of hunks.
|
|
160
|
+
* @return The number of hunks of the patch.
|
|
153
161
|
*/
|
|
154
162
|
GIT_EXTERN(size_t) git_patch_num_hunks(const git_patch *patch);
|
|
155
163
|
|
|
@@ -69,7 +69,7 @@ typedef enum {
|
|
|
69
69
|
* just test if there were any matches at all or in combination with
|
|
70
70
|
* GIT_PATHSPEC_FIND_FAILURES to validate a pathspec.
|
|
71
71
|
*/
|
|
72
|
-
GIT_PATHSPEC_FAILURES_ONLY = (1u << 5)
|
|
72
|
+
GIT_PATHSPEC_FAILURES_ONLY = (1u << 5)
|
|
73
73
|
} git_pathspec_flag_t;
|
|
74
74
|
|
|
75
75
|
/**
|