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
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
#include "tree.h"
|
|
11
11
|
#include "index.h"
|
|
12
|
+
#include "path.h"
|
|
12
13
|
|
|
13
14
|
#define GIT_ITERATOR_FIRST_ACCESS (1 << 15)
|
|
14
15
|
#define GIT_ITERATOR_HONOR_IGNORES (1 << 16)
|
|
@@ -292,7 +293,7 @@ typedef enum {
|
|
|
292
293
|
ITERATOR_PATHLIST_IS_FILE = 1,
|
|
293
294
|
ITERATOR_PATHLIST_IS_DIR = 2,
|
|
294
295
|
ITERATOR_PATHLIST_IS_PARENT = 3,
|
|
295
|
-
ITERATOR_PATHLIST_FULL = 4
|
|
296
|
+
ITERATOR_PATHLIST_FULL = 4
|
|
296
297
|
} iterator_pathlist_search_t;
|
|
297
298
|
|
|
298
299
|
static iterator_pathlist_search_t iterator_pathlist_search(
|
|
@@ -424,7 +425,7 @@ typedef struct {
|
|
|
424
425
|
git_tree *tree;
|
|
425
426
|
|
|
426
427
|
/* path to this particular frame (folder) */
|
|
427
|
-
|
|
428
|
+
git_str path;
|
|
428
429
|
|
|
429
430
|
/* a sorted list of the entries for this frame (folder), these are
|
|
430
431
|
* actually pointers to the iterator's entry pool.
|
|
@@ -441,7 +442,7 @@ typedef struct {
|
|
|
441
442
|
* parent path.
|
|
442
443
|
*/
|
|
443
444
|
git_vector similar_trees;
|
|
444
|
-
git_array_t(
|
|
445
|
+
git_array_t(git_str) similar_paths;
|
|
445
446
|
} tree_iterator_frame;
|
|
446
447
|
|
|
447
448
|
typedef struct {
|
|
@@ -450,7 +451,7 @@ typedef struct {
|
|
|
450
451
|
git_array_t(tree_iterator_frame) frames;
|
|
451
452
|
|
|
452
453
|
git_index_entry entry;
|
|
453
|
-
|
|
454
|
+
git_str entry_path;
|
|
454
455
|
|
|
455
456
|
/* a pool of entries to reduce the number of allocations */
|
|
456
457
|
git_pool entry_pool;
|
|
@@ -472,7 +473,7 @@ GIT_INLINE(tree_iterator_frame *) tree_iterator_current_frame(
|
|
|
472
473
|
GIT_INLINE(int) tree_entry_cmp(
|
|
473
474
|
const git_tree_entry *a, const git_tree_entry *b, bool icase)
|
|
474
475
|
{
|
|
475
|
-
return
|
|
476
|
+
return git_fs_path_cmp(
|
|
476
477
|
a->filename, a->filename_len, a->attr == GIT_FILEMODE_TREE,
|
|
477
478
|
b->filename, b->filename_len, b->attr == GIT_FILEMODE_TREE,
|
|
478
479
|
icase ? git__strncasecmp : git__strncmp);
|
|
@@ -508,20 +509,20 @@ static int tree_iterator_entry_sort_icase(const void *ptr_a, const void *ptr_b)
|
|
|
508
509
|
}
|
|
509
510
|
|
|
510
511
|
static int tree_iterator_compute_path(
|
|
511
|
-
|
|
512
|
+
git_str *out,
|
|
512
513
|
tree_iterator_entry *entry)
|
|
513
514
|
{
|
|
514
|
-
|
|
515
|
+
git_str_clear(out);
|
|
515
516
|
|
|
516
517
|
if (entry->parent_path)
|
|
517
|
-
|
|
518
|
+
git_str_joinpath(out, entry->parent_path, entry->tree_entry->filename);
|
|
518
519
|
else
|
|
519
|
-
|
|
520
|
+
git_str_puts(out, entry->tree_entry->filename);
|
|
520
521
|
|
|
521
522
|
if (git_tree_entry__is_tree(entry->tree_entry))
|
|
522
|
-
|
|
523
|
+
git_str_putc(out, '/');
|
|
523
524
|
|
|
524
|
-
if (
|
|
525
|
+
if (git_str_oom(out))
|
|
525
526
|
return -1;
|
|
526
527
|
|
|
527
528
|
return 0;
|
|
@@ -601,7 +602,7 @@ GIT_INLINE(int) tree_iterator_frame_push_neighbors(
|
|
|
601
602
|
tree_iterator_entry *entry, *new_entry;
|
|
602
603
|
git_tree *tree = NULL;
|
|
603
604
|
git_tree_entry *tree_entry;
|
|
604
|
-
|
|
605
|
+
git_str *path;
|
|
605
606
|
size_t new_size, i;
|
|
606
607
|
int error = 0;
|
|
607
608
|
|
|
@@ -612,7 +613,7 @@ GIT_INLINE(int) tree_iterator_frame_push_neighbors(
|
|
|
612
613
|
break;
|
|
613
614
|
|
|
614
615
|
if ((error = git_tree_lookup(&tree,
|
|
615
|
-
iter->base.repo, entry->tree_entry->oid)) < 0)
|
|
616
|
+
iter->base.repo, &entry->tree_entry->oid)) < 0)
|
|
616
617
|
break;
|
|
617
618
|
|
|
618
619
|
if (git_vector_insert(&parent_frame->similar_trees, tree) < 0)
|
|
@@ -621,7 +622,7 @@ GIT_INLINE(int) tree_iterator_frame_push_neighbors(
|
|
|
621
622
|
path = git_array_alloc(parent_frame->similar_paths);
|
|
622
623
|
GIT_ERROR_CHECK_ALLOC(path);
|
|
623
624
|
|
|
624
|
-
memset(path, 0, sizeof(
|
|
625
|
+
memset(path, 0, sizeof(git_str));
|
|
625
626
|
|
|
626
627
|
if ((error = tree_iterator_compute_path(path, entry)) < 0)
|
|
627
628
|
break;
|
|
@@ -658,7 +659,7 @@ GIT_INLINE(int) tree_iterator_frame_push(
|
|
|
658
659
|
int error;
|
|
659
660
|
|
|
660
661
|
if ((error = git_tree_lookup(&tree,
|
|
661
|
-
iter->base.repo, entry->tree_entry->oid)) < 0 ||
|
|
662
|
+
iter->base.repo, &entry->tree_entry->oid)) < 0 ||
|
|
662
663
|
(error = tree_iterator_frame_init(iter, tree, entry)) < 0)
|
|
663
664
|
goto done;
|
|
664
665
|
|
|
@@ -681,7 +682,7 @@ done:
|
|
|
681
682
|
static int tree_iterator_frame_pop(tree_iterator *iter)
|
|
682
683
|
{
|
|
683
684
|
tree_iterator_frame *frame;
|
|
684
|
-
|
|
685
|
+
git_str *buf = NULL;
|
|
685
686
|
git_tree *tree;
|
|
686
687
|
size_t i;
|
|
687
688
|
|
|
@@ -694,7 +695,7 @@ static int tree_iterator_frame_pop(tree_iterator *iter)
|
|
|
694
695
|
|
|
695
696
|
do {
|
|
696
697
|
buf = git_array_pop(frame->similar_paths);
|
|
697
|
-
|
|
698
|
+
git_str_dispose(buf);
|
|
698
699
|
} while (buf != NULL);
|
|
699
700
|
|
|
700
701
|
git_array_clear(frame->similar_paths);
|
|
@@ -704,7 +705,7 @@ static int tree_iterator_frame_pop(tree_iterator *iter)
|
|
|
704
705
|
|
|
705
706
|
git_vector_free(&frame->similar_trees);
|
|
706
707
|
|
|
707
|
-
|
|
708
|
+
git_str_dispose(&frame->path);
|
|
708
709
|
|
|
709
710
|
return 0;
|
|
710
711
|
}
|
|
@@ -739,7 +740,7 @@ static void tree_iterator_set_current(
|
|
|
739
740
|
|
|
740
741
|
iter->entry.mode = tree_entry->attr;
|
|
741
742
|
iter->entry.path = iter->entry_path.ptr;
|
|
742
|
-
git_oid_cpy(&iter->entry.id, tree_entry->oid);
|
|
743
|
+
git_oid_cpy(&iter->entry.id, &tree_entry->oid);
|
|
743
744
|
}
|
|
744
745
|
|
|
745
746
|
static int tree_iterator_advance(const git_index_entry **out, git_iterator *i)
|
|
@@ -892,7 +893,7 @@ static void tree_iterator_clear(tree_iterator *iter)
|
|
|
892
893
|
git_array_clear(iter->frames);
|
|
893
894
|
|
|
894
895
|
git_pool_clear(&iter->entry_pool);
|
|
895
|
-
|
|
896
|
+
git_str_clear(&iter->entry_path);
|
|
896
897
|
|
|
897
898
|
iterator_clear(&iter->base);
|
|
898
899
|
}
|
|
@@ -925,7 +926,7 @@ static void tree_iterator_free(git_iterator *i)
|
|
|
925
926
|
tree_iterator_clear(iter);
|
|
926
927
|
|
|
927
928
|
git_tree_free(iter->root);
|
|
928
|
-
|
|
929
|
+
git_str_dispose(&iter->entry_path);
|
|
929
930
|
}
|
|
930
931
|
|
|
931
932
|
int git_iterator_for_tree(
|
|
@@ -1040,11 +1041,11 @@ typedef struct {
|
|
|
1040
1041
|
|
|
1041
1042
|
/* info about the current entry */
|
|
1042
1043
|
git_index_entry entry;
|
|
1043
|
-
|
|
1044
|
+
git_str current_path;
|
|
1044
1045
|
int current_is_ignored;
|
|
1045
1046
|
|
|
1046
1047
|
/* temporary buffer for advance_over */
|
|
1047
|
-
|
|
1048
|
+
git_str tmp_buf;
|
|
1048
1049
|
} filesystem_iterator;
|
|
1049
1050
|
|
|
1050
1051
|
|
|
@@ -1266,11 +1267,11 @@ static int filesystem_iterator_entry_hash(
|
|
|
1266
1267
|
filesystem_iterator *iter,
|
|
1267
1268
|
filesystem_iterator_entry *entry)
|
|
1268
1269
|
{
|
|
1269
|
-
|
|
1270
|
+
git_str fullpath = GIT_STR_INIT;
|
|
1270
1271
|
int error;
|
|
1271
1272
|
|
|
1272
1273
|
if (S_ISDIR(entry->st.st_mode)) {
|
|
1273
|
-
memset(&entry->id, 0,
|
|
1274
|
+
memset(&entry->id, 0, GIT_OID_SHA1_SIZE);
|
|
1274
1275
|
return 0;
|
|
1275
1276
|
}
|
|
1276
1277
|
|
|
@@ -1278,11 +1279,11 @@ static int filesystem_iterator_entry_hash(
|
|
|
1278
1279
|
return git_repository_hashfile(&entry->id,
|
|
1279
1280
|
iter->base.repo, entry->path, GIT_OBJECT_BLOB, NULL);
|
|
1280
1281
|
|
|
1281
|
-
if (!(error =
|
|
1282
|
-
!(error =
|
|
1283
|
-
error =
|
|
1282
|
+
if (!(error = git_str_joinpath(&fullpath, iter->root, entry->path)) &&
|
|
1283
|
+
!(error = git_path_validate_str_length(iter->base.repo, &fullpath)))
|
|
1284
|
+
error = git_odb__hashfile(&entry->id, fullpath.ptr, GIT_OBJECT_BLOB, GIT_OID_SHA1);
|
|
1284
1285
|
|
|
1285
|
-
|
|
1286
|
+
git_str_dispose(&fullpath);
|
|
1286
1287
|
return error;
|
|
1287
1288
|
}
|
|
1288
1289
|
|
|
@@ -1336,8 +1337,8 @@ static int filesystem_iterator_frame_push(
|
|
|
1336
1337
|
filesystem_iterator_entry *frame_entry)
|
|
1337
1338
|
{
|
|
1338
1339
|
filesystem_iterator_frame *new_frame = NULL;
|
|
1339
|
-
|
|
1340
|
-
|
|
1340
|
+
git_fs_path_diriter diriter = GIT_FS_PATH_DIRITER_INIT;
|
|
1341
|
+
git_str root = GIT_STR_INIT;
|
|
1341
1342
|
const char *path;
|
|
1342
1343
|
filesystem_iterator_entry *entry;
|
|
1343
1344
|
struct stat statbuf;
|
|
@@ -1356,12 +1357,12 @@ static int filesystem_iterator_frame_push(
|
|
|
1356
1357
|
memset(new_frame, 0, sizeof(filesystem_iterator_frame));
|
|
1357
1358
|
|
|
1358
1359
|
if (frame_entry)
|
|
1359
|
-
|
|
1360
|
+
git_str_joinpath(&root, iter->root, frame_entry->path);
|
|
1360
1361
|
else
|
|
1361
|
-
|
|
1362
|
+
git_str_puts(&root, iter->root);
|
|
1362
1363
|
|
|
1363
|
-
if (
|
|
1364
|
-
|
|
1364
|
+
if (git_str_oom(&root) ||
|
|
1365
|
+
git_path_validate_str_length(iter->base.repo, &root) < 0) {
|
|
1365
1366
|
error = -1;
|
|
1366
1367
|
goto done;
|
|
1367
1368
|
}
|
|
@@ -1369,7 +1370,7 @@ static int filesystem_iterator_frame_push(
|
|
|
1369
1370
|
new_frame->path_len = frame_entry ? frame_entry->path_len : 0;
|
|
1370
1371
|
|
|
1371
1372
|
/* Any error here is equivalent to the dir not existing, skip over it */
|
|
1372
|
-
if ((error =
|
|
1373
|
+
if ((error = git_fs_path_diriter_init(
|
|
1373
1374
|
&diriter, root.ptr, iter->dirload_flags)) < 0) {
|
|
1374
1375
|
error = GIT_ENOTFOUND;
|
|
1375
1376
|
goto done;
|
|
@@ -1387,12 +1388,18 @@ static int filesystem_iterator_frame_push(
|
|
|
1387
1388
|
/* check if this directory is ignored */
|
|
1388
1389
|
filesystem_iterator_frame_push_ignores(iter, frame_entry, new_frame);
|
|
1389
1390
|
|
|
1390
|
-
while ((error =
|
|
1391
|
+
while ((error = git_fs_path_diriter_next(&diriter)) == 0) {
|
|
1391
1392
|
iterator_pathlist_search_t pathlist_match = ITERATOR_PATHLIST_FULL;
|
|
1393
|
+
git_str path_str = GIT_STR_INIT;
|
|
1392
1394
|
bool dir_expected = false;
|
|
1393
1395
|
|
|
1394
|
-
if ((error =
|
|
1395
|
-
|
|
1396
|
+
if ((error = git_fs_path_diriter_fullpath(&path, &path_len, &diriter)) < 0)
|
|
1397
|
+
goto done;
|
|
1398
|
+
|
|
1399
|
+
path_str.ptr = (char *)path;
|
|
1400
|
+
path_str.size = path_len;
|
|
1401
|
+
|
|
1402
|
+
if ((error = git_path_validate_str_length(iter->base.repo, &path_str)) < 0)
|
|
1396
1403
|
goto done;
|
|
1397
1404
|
|
|
1398
1405
|
GIT_ASSERT(path_len > iter->root_len);
|
|
@@ -1414,7 +1421,7 @@ static int filesystem_iterator_frame_push(
|
|
|
1414
1421
|
* we have an index, we can just copy the data out of it.
|
|
1415
1422
|
*/
|
|
1416
1423
|
|
|
1417
|
-
if ((error =
|
|
1424
|
+
if ((error = git_fs_path_diriter_stat(&statbuf, &diriter)) < 0) {
|
|
1418
1425
|
/* file was removed between readdir and lstat */
|
|
1419
1426
|
if (error == GIT_ENOTFOUND)
|
|
1420
1427
|
continue;
|
|
@@ -1471,8 +1478,8 @@ done:
|
|
|
1471
1478
|
if (error < 0)
|
|
1472
1479
|
git_array_pop(iter->frames);
|
|
1473
1480
|
|
|
1474
|
-
|
|
1475
|
-
|
|
1481
|
+
git_str_dispose(&root);
|
|
1482
|
+
git_fs_path_diriter_free(&diriter);
|
|
1476
1483
|
return error;
|
|
1477
1484
|
}
|
|
1478
1485
|
|
|
@@ -1522,6 +1529,8 @@ static void filesystem_iterator_set_current(
|
|
|
1522
1529
|
|
|
1523
1530
|
if (iter->base.flags & GIT_ITERATOR_INCLUDE_HASH)
|
|
1524
1531
|
git_oid_cpy(&iter->entry.id, &entry->id);
|
|
1532
|
+
else
|
|
1533
|
+
git_oid_clear(&iter->entry.id, GIT_OID_SHA1);
|
|
1525
1534
|
|
|
1526
1535
|
iter->entry.path = entry->path;
|
|
1527
1536
|
|
|
@@ -1551,7 +1560,7 @@ static int filesystem_iterator_is_dir(
|
|
|
1551
1560
|
const filesystem_iterator_entry *entry)
|
|
1552
1561
|
{
|
|
1553
1562
|
struct stat st;
|
|
1554
|
-
|
|
1563
|
+
git_str fullpath = GIT_STR_INIT;
|
|
1555
1564
|
int error = 0;
|
|
1556
1565
|
|
|
1557
1566
|
if (S_ISDIR(entry->st.st_mode)) {
|
|
@@ -1564,15 +1573,15 @@ static int filesystem_iterator_is_dir(
|
|
|
1564
1573
|
goto done;
|
|
1565
1574
|
}
|
|
1566
1575
|
|
|
1567
|
-
if ((error =
|
|
1568
|
-
(error =
|
|
1576
|
+
if ((error = git_str_joinpath(&fullpath, iter->root, entry->path)) < 0 ||
|
|
1577
|
+
(error = git_path_validate_str_length(iter->base.repo, &fullpath)) < 0 ||
|
|
1569
1578
|
(error = p_stat(fullpath.ptr, &st)) < 0)
|
|
1570
1579
|
goto done;
|
|
1571
1580
|
|
|
1572
1581
|
*is_dir = S_ISDIR(st.st_mode);
|
|
1573
1582
|
|
|
1574
1583
|
done:
|
|
1575
|
-
|
|
1584
|
+
git_str_dispose(&fullpath);
|
|
1576
1585
|
return error;
|
|
1577
1586
|
}
|
|
1578
1587
|
|
|
@@ -1673,7 +1682,7 @@ static int filesystem_iterator_advance_into(
|
|
|
1673
1682
|
return filesystem_iterator_advance(out, i);
|
|
1674
1683
|
}
|
|
1675
1684
|
|
|
1676
|
-
int git_iterator_current_workdir_path(
|
|
1685
|
+
int git_iterator_current_workdir_path(git_str **out, git_iterator *i)
|
|
1677
1686
|
{
|
|
1678
1687
|
filesystem_iterator *iter = GIT_CONTAINER_OF(i, filesystem_iterator, base);
|
|
1679
1688
|
const git_index_entry *entry;
|
|
@@ -1684,10 +1693,10 @@ int git_iterator_current_workdir_path(git_buf **out, git_iterator *i)
|
|
|
1684
1693
|
return 0;
|
|
1685
1694
|
}
|
|
1686
1695
|
|
|
1687
|
-
|
|
1696
|
+
git_str_truncate(&iter->current_path, iter->root_len);
|
|
1688
1697
|
|
|
1689
1698
|
if (git_iterator_current(&entry, i) < 0 ||
|
|
1690
|
-
|
|
1699
|
+
git_str_puts(&iter->current_path, entry->path) < 0)
|
|
1691
1700
|
return -1;
|
|
1692
1701
|
|
|
1693
1702
|
*out = &iter->current_path;
|
|
@@ -1790,8 +1799,8 @@ static int filesystem_iterator_advance_over(
|
|
|
1790
1799
|
return filesystem_iterator_advance(out, i);
|
|
1791
1800
|
}
|
|
1792
1801
|
|
|
1793
|
-
|
|
1794
|
-
if ((error =
|
|
1802
|
+
git_str_clear(&iter->tmp_buf);
|
|
1803
|
+
if ((error = git_str_puts(&iter->tmp_buf, entry->path)) < 0)
|
|
1795
1804
|
return error;
|
|
1796
1805
|
|
|
1797
1806
|
base = iter->tmp_buf.ptr;
|
|
@@ -1858,7 +1867,7 @@ static void filesystem_iterator_clear(filesystem_iterator *iter)
|
|
|
1858
1867
|
git_array_clear(iter->frames);
|
|
1859
1868
|
git_ignore__free(&iter->ignores);
|
|
1860
1869
|
|
|
1861
|
-
|
|
1870
|
+
git_str_dispose(&iter->tmp_buf);
|
|
1862
1871
|
|
|
1863
1872
|
iterator_clear(&iter->base);
|
|
1864
1873
|
}
|
|
@@ -1892,7 +1901,7 @@ static void filesystem_iterator_free(git_iterator *i)
|
|
|
1892
1901
|
{
|
|
1893
1902
|
filesystem_iterator *iter = GIT_CONTAINER_OF(i, filesystem_iterator, base);
|
|
1894
1903
|
git__free(iter->root);
|
|
1895
|
-
|
|
1904
|
+
git_str_dispose(&iter->current_path);
|
|
1896
1905
|
git_tree_free(iter->tree);
|
|
1897
1906
|
if (iter->index)
|
|
1898
1907
|
git_index_snapshot_release(&iter->index_snapshot, iter->index);
|
|
@@ -1946,7 +1955,7 @@ static int iterator_for_filesystem(
|
|
|
1946
1955
|
iter->root[root_len] = '\0';
|
|
1947
1956
|
iter->root_len = root_len;
|
|
1948
1957
|
|
|
1949
|
-
if ((error =
|
|
1958
|
+
if ((error = git_str_puts(&iter->current_path, iter->root)) < 0)
|
|
1950
1959
|
goto on_error;
|
|
1951
1960
|
|
|
1952
1961
|
if ((error = iterator_init_common(&iter->base, repo, index, options)) < 0)
|
|
@@ -1961,9 +1970,10 @@ static int iterator_for_filesystem(
|
|
|
1961
1970
|
|
|
1962
1971
|
iter->index = index;
|
|
1963
1972
|
iter->dirload_flags =
|
|
1964
|
-
(iterator__ignore_case(&iter->base) ?
|
|
1973
|
+
(iterator__ignore_case(&iter->base) ?
|
|
1974
|
+
GIT_FS_PATH_DIR_IGNORE_CASE : 0) |
|
|
1965
1975
|
(iterator__flag(&iter->base, PRECOMPOSE_UNICODE) ?
|
|
1966
|
-
|
|
1976
|
+
GIT_FS_PATH_DIR_PRECOMPOSE_UNICODE : 0);
|
|
1967
1977
|
|
|
1968
1978
|
if ((error = filesystem_iterator_init(iter)) < 0)
|
|
1969
1979
|
goto on_error;
|
|
@@ -2024,7 +2034,7 @@ typedef struct {
|
|
|
2024
2034
|
|
|
2025
2035
|
/* the pseudotree entry */
|
|
2026
2036
|
git_index_entry tree_entry;
|
|
2027
|
-
|
|
2037
|
+
git_str tree_buf;
|
|
2028
2038
|
bool skip_tree;
|
|
2029
2039
|
|
|
2030
2040
|
const git_index_entry *entry;
|
|
@@ -2058,14 +2068,14 @@ static bool index_iterator_create_pseudotree(
|
|
|
2058
2068
|
prev_path = iter->entry ? iter->entry->path : "";
|
|
2059
2069
|
|
|
2060
2070
|
/* determine if the new path is in a different directory from the old */
|
|
2061
|
-
common_len =
|
|
2071
|
+
common_len = git_fs_path_common_dirlen(prev_path, path);
|
|
2062
2072
|
relative_path = path + common_len;
|
|
2063
2073
|
|
|
2064
2074
|
if ((dirsep = strchr(relative_path, '/')) == NULL)
|
|
2065
2075
|
return false;
|
|
2066
2076
|
|
|
2067
|
-
|
|
2068
|
-
|
|
2077
|
+
git_str_clear(&iter->tree_buf);
|
|
2078
|
+
git_str_put(&iter->tree_buf, path, (dirsep - path) + 1);
|
|
2069
2079
|
|
|
2070
2080
|
iter->tree_entry.mode = GIT_FILEMODE_TREE;
|
|
2071
2081
|
iter->tree_entry.path = iter->tree_buf.ptr;
|
|
@@ -2230,7 +2240,7 @@ static void index_iterator_free(git_iterator *i)
|
|
|
2230
2240
|
index_iterator *iter = GIT_CONTAINER_OF(i, index_iterator, base);
|
|
2231
2241
|
|
|
2232
2242
|
git_index_snapshot_release(&iter->entries, iter->base.index);
|
|
2233
|
-
|
|
2243
|
+
git_str_dispose(&iter->tree_buf);
|
|
2234
2244
|
}
|
|
2235
2245
|
|
|
2236
2246
|
int git_iterator_for_index(
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
#include "git2/index.h"
|
|
13
13
|
#include "vector.h"
|
|
14
|
-
#include "
|
|
14
|
+
#include "str.h"
|
|
15
15
|
#include "ignore.h"
|
|
16
16
|
|
|
17
17
|
typedef struct git_iterator git_iterator;
|
|
@@ -21,7 +21,7 @@ typedef enum {
|
|
|
21
21
|
GIT_ITERATOR_TREE = 1,
|
|
22
22
|
GIT_ITERATOR_INDEX = 2,
|
|
23
23
|
GIT_ITERATOR_WORKDIR = 3,
|
|
24
|
-
GIT_ITERATOR_FS = 4
|
|
24
|
+
GIT_ITERATOR_FS = 4
|
|
25
25
|
} git_iterator_t;
|
|
26
26
|
|
|
27
27
|
typedef enum {
|
|
@@ -42,7 +42,7 @@ typedef enum {
|
|
|
42
42
|
/** descend into symlinked directories */
|
|
43
43
|
GIT_ITERATOR_DESCEND_SYMLINKS = (1u << 7),
|
|
44
44
|
/** hash files in workdir or filesystem iterators */
|
|
45
|
-
GIT_ITERATOR_INCLUDE_HASH = (1u << 8)
|
|
45
|
+
GIT_ITERATOR_INCLUDE_HASH = (1u << 8)
|
|
46
46
|
} git_iterator_flag_t;
|
|
47
47
|
|
|
48
48
|
typedef enum {
|
|
@@ -278,11 +278,11 @@ extern bool git_iterator_current_tree_is_ignored(git_iterator *iter);
|
|
|
278
278
|
|
|
279
279
|
/**
|
|
280
280
|
* Get full path of the current item from a workdir iterator. This will
|
|
281
|
-
* return NULL for a non-workdir iterator. The
|
|
281
|
+
* return NULL for a non-workdir iterator. The git_str is still owned by
|
|
282
282
|
* the iterator; this is exposed just for efficiency.
|
|
283
283
|
*/
|
|
284
284
|
extern int git_iterator_current_workdir_path(
|
|
285
|
-
|
|
285
|
+
git_str **path, git_iterator *iter);
|
|
286
286
|
|
|
287
287
|
/**
|
|
288
288
|
* Retrieve the index stored in the iterator.
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
#include <git2.h>
|
|
11
11
|
#include "alloc.h"
|
|
12
|
+
#include "buf.h"
|
|
12
13
|
#include "cache.h"
|
|
13
14
|
#include "common.h"
|
|
14
15
|
#include "filter.h"
|
|
@@ -19,6 +20,7 @@
|
|
|
19
20
|
#include "mwindow.h"
|
|
20
21
|
#include "object.h"
|
|
21
22
|
#include "odb.h"
|
|
23
|
+
#include "rand.h"
|
|
22
24
|
#include "refs.h"
|
|
23
25
|
#include "runtime.h"
|
|
24
26
|
#include "sysdir.h"
|
|
@@ -69,6 +71,7 @@ int git_libgit2_init(void)
|
|
|
69
71
|
git_allocator_global_init,
|
|
70
72
|
git_threadstate_global_init,
|
|
71
73
|
git_threads_global_init,
|
|
74
|
+
git_rand_global_init,
|
|
72
75
|
git_hash_global_init,
|
|
73
76
|
git_sysdir_global_init,
|
|
74
77
|
git_filter_global_init,
|
|
@@ -104,6 +107,11 @@ int git_libgit2_version(int *major, int *minor, int *rev)
|
|
|
104
107
|
return 0;
|
|
105
108
|
}
|
|
106
109
|
|
|
110
|
+
const char *git_libgit2_prerelease(void)
|
|
111
|
+
{
|
|
112
|
+
return LIBGIT2_VER_PRERELEASE;
|
|
113
|
+
}
|
|
114
|
+
|
|
107
115
|
int git_libgit2_features(void)
|
|
108
116
|
{
|
|
109
117
|
return 0
|
|
@@ -192,15 +200,17 @@ int git_libgit2_opts(int key, ...)
|
|
|
192
200
|
{
|
|
193
201
|
int sysdir = va_arg(ap, int);
|
|
194
202
|
git_buf *out = va_arg(ap, git_buf *);
|
|
195
|
-
|
|
203
|
+
git_str str = GIT_STR_INIT;
|
|
204
|
+
const git_str *tmp;
|
|
196
205
|
int level;
|
|
197
206
|
|
|
198
|
-
if ((error =
|
|
199
|
-
(error =
|
|
200
|
-
(error = git_sysdir_get(&tmp, level)) < 0
|
|
207
|
+
if ((error = git_buf_tostr(&str, out)) < 0 ||
|
|
208
|
+
(error = config_level_to_sysdir(&level, sysdir)) < 0 ||
|
|
209
|
+
(error = git_sysdir_get(&tmp, level)) < 0 ||
|
|
210
|
+
(error = git_str_put(&str, tmp->ptr, tmp->size)) < 0)
|
|
201
211
|
break;
|
|
202
212
|
|
|
203
|
-
error =
|
|
213
|
+
error = git_buf_fromstr(out, &str);
|
|
204
214
|
}
|
|
205
215
|
break;
|
|
206
216
|
|
|
@@ -237,13 +247,15 @@ int git_libgit2_opts(int key, ...)
|
|
|
237
247
|
case GIT_OPT_GET_TEMPLATE_PATH:
|
|
238
248
|
{
|
|
239
249
|
git_buf *out = va_arg(ap, git_buf *);
|
|
240
|
-
|
|
250
|
+
git_str str = GIT_STR_INIT;
|
|
251
|
+
const git_str *tmp;
|
|
241
252
|
|
|
242
|
-
if ((error =
|
|
243
|
-
(error = git_sysdir_get(&tmp, GIT_SYSDIR_TEMPLATE)) < 0
|
|
253
|
+
if ((error = git_buf_tostr(&str, out)) < 0 ||
|
|
254
|
+
(error = git_sysdir_get(&tmp, GIT_SYSDIR_TEMPLATE)) < 0 ||
|
|
255
|
+
(error = git_str_put(&str, tmp->ptr, tmp->size)) < 0)
|
|
244
256
|
break;
|
|
245
257
|
|
|
246
|
-
error =
|
|
258
|
+
error = git_buf_fromstr(out, &str);
|
|
247
259
|
}
|
|
248
260
|
break;
|
|
249
261
|
|
|
@@ -306,9 +318,13 @@ int git_libgit2_opts(int key, ...)
|
|
|
306
318
|
case GIT_OPT_GET_USER_AGENT:
|
|
307
319
|
{
|
|
308
320
|
git_buf *out = va_arg(ap, git_buf *);
|
|
309
|
-
|
|
321
|
+
git_str str = GIT_STR_INIT;
|
|
322
|
+
|
|
323
|
+
if ((error = git_buf_tostr(&str, out)) < 0 ||
|
|
324
|
+
(error = git_str_puts(&str, git__user_agent)) < 0)
|
|
310
325
|
break;
|
|
311
|
-
|
|
326
|
+
|
|
327
|
+
error = git_buf_fromstr(out, &str);
|
|
312
328
|
}
|
|
313
329
|
break;
|
|
314
330
|
|
|
@@ -398,6 +414,25 @@ int git_libgit2_opts(int key, ...)
|
|
|
398
414
|
git_repository__validate_ownership = (va_arg(ap, int) != 0);
|
|
399
415
|
break;
|
|
400
416
|
|
|
417
|
+
case GIT_OPT_GET_HOMEDIR:
|
|
418
|
+
{
|
|
419
|
+
git_buf *out = va_arg(ap, git_buf *);
|
|
420
|
+
git_str str = GIT_STR_INIT;
|
|
421
|
+
const git_str *tmp;
|
|
422
|
+
|
|
423
|
+
if ((error = git_buf_tostr(&str, out)) < 0 ||
|
|
424
|
+
(error = git_sysdir_get(&tmp, GIT_SYSDIR_HOME)) < 0 ||
|
|
425
|
+
(error = git_str_put(&str, tmp->ptr, tmp->size)) < 0)
|
|
426
|
+
break;
|
|
427
|
+
|
|
428
|
+
error = git_buf_fromstr(out, &str);
|
|
429
|
+
}
|
|
430
|
+
break;
|
|
431
|
+
|
|
432
|
+
case GIT_OPT_SET_HOMEDIR:
|
|
433
|
+
error = git_sysdir_set(GIT_SYSDIR_HOME, va_arg(ap, const char *));
|
|
434
|
+
break;
|
|
435
|
+
|
|
401
436
|
default:
|
|
402
437
|
git_error_set(GIT_ERROR_INVALID, "invalid option key");
|
|
403
438
|
error = -1;
|