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
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef INCLUDE_path_h__
|
|
8
|
+
#define INCLUDE_path_h__
|
|
9
|
+
|
|
10
|
+
#include "common.h"
|
|
11
|
+
|
|
12
|
+
#include "fs_path.h"
|
|
13
|
+
#include <git2/sys/path.h>
|
|
14
|
+
|
|
15
|
+
#define GIT_PATH_REJECT_DOT_GIT (GIT_FS_PATH_REJECT_MAX << 1)
|
|
16
|
+
#define GIT_PATH_REJECT_DOT_GIT_LITERAL (GIT_FS_PATH_REJECT_MAX << 2)
|
|
17
|
+
#define GIT_PATH_REJECT_DOT_GIT_HFS (GIT_FS_PATH_REJECT_MAX << 3)
|
|
18
|
+
#define GIT_PATH_REJECT_DOT_GIT_NTFS (GIT_FS_PATH_REJECT_MAX << 4)
|
|
19
|
+
|
|
20
|
+
/* Paths that should never be written into the working directory. */
|
|
21
|
+
#define GIT_PATH_REJECT_WORKDIR_DEFAULTS \
|
|
22
|
+
GIT_FS_PATH_REJECT_FILESYSTEM_DEFAULTS | GIT_PATH_REJECT_DOT_GIT
|
|
23
|
+
|
|
24
|
+
/* Paths that should never be written to the index. */
|
|
25
|
+
#define GIT_PATH_REJECT_INDEX_DEFAULTS \
|
|
26
|
+
GIT_FS_PATH_REJECT_TRAVERSAL | GIT_PATH_REJECT_DOT_GIT
|
|
27
|
+
|
|
28
|
+
extern bool git_path_str_is_valid(
|
|
29
|
+
git_repository *repo,
|
|
30
|
+
const git_str *path,
|
|
31
|
+
uint16_t file_mode,
|
|
32
|
+
unsigned int flags);
|
|
33
|
+
|
|
34
|
+
GIT_INLINE(bool) git_path_is_valid(
|
|
35
|
+
git_repository *repo,
|
|
36
|
+
const char *path,
|
|
37
|
+
uint16_t file_mode,
|
|
38
|
+
unsigned int flags)
|
|
39
|
+
{
|
|
40
|
+
git_str str = GIT_STR_INIT_CONST(path, SIZE_MAX);
|
|
41
|
+
return git_path_str_is_valid(repo, &str, file_mode, flags);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
GIT_INLINE(int) git_path_validate_str_length(
|
|
45
|
+
git_repository *repo,
|
|
46
|
+
const git_str *path)
|
|
47
|
+
{
|
|
48
|
+
if (!git_path_str_is_valid(repo, path, 0, GIT_FS_PATH_REJECT_LONG_PATHS)) {
|
|
49
|
+
if (path->size == SIZE_MAX)
|
|
50
|
+
git_error_set(GIT_ERROR_FILESYSTEM, "path too long: '%s'", path->ptr);
|
|
51
|
+
else
|
|
52
|
+
git_error_set(GIT_ERROR_FILESYSTEM, "path too long: '%.*s'", (int)path->size, path->ptr);
|
|
53
|
+
|
|
54
|
+
return -1;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
GIT_INLINE(int) git_path_validate_length(
|
|
61
|
+
git_repository *repo,
|
|
62
|
+
const char *path)
|
|
63
|
+
{
|
|
64
|
+
git_str str = GIT_STR_INIT_CONST(path, SIZE_MAX);
|
|
65
|
+
return git_path_validate_str_length(repo, &str);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
#endif
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
/* what is the common non-wildcard prefix for all items in the pathspec */
|
|
21
21
|
char *git_pathspec_prefix(const git_strarray *pathspec)
|
|
22
22
|
{
|
|
23
|
-
|
|
23
|
+
git_str prefix = GIT_STR_INIT;
|
|
24
24
|
const char *scan;
|
|
25
25
|
|
|
26
26
|
if (!pathspec || !pathspec->count ||
|
|
27
|
-
|
|
27
|
+
git_str_common_prefix(&prefix, pathspec->strings, pathspec->count) < 0)
|
|
28
28
|
return NULL;
|
|
29
29
|
|
|
30
30
|
/* diff prefix will only be leading non-wildcards */
|
|
@@ -33,16 +33,16 @@ char *git_pathspec_prefix(const git_strarray *pathspec)
|
|
|
33
33
|
(scan == prefix.ptr || (*(scan - 1) != '\\')))
|
|
34
34
|
break;
|
|
35
35
|
}
|
|
36
|
-
|
|
36
|
+
git_str_truncate(&prefix, scan - prefix.ptr);
|
|
37
37
|
|
|
38
38
|
if (prefix.size <= 0) {
|
|
39
|
-
|
|
39
|
+
git_str_dispose(&prefix);
|
|
40
40
|
return NULL;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
git_str_unescape(&prefix);
|
|
44
44
|
|
|
45
|
-
return
|
|
45
|
+
return git_str_detach(&prefix);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
/* is there anything in the spec that needs to be filtered on */
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
#include "common.h"
|
|
11
11
|
|
|
12
12
|
#include "git2/pathspec.h"
|
|
13
|
-
#include "
|
|
13
|
+
#include "str.h"
|
|
14
14
|
#include "vector.h"
|
|
15
15
|
#include "pool.h"
|
|
16
16
|
#include "array.h"
|
|
@@ -25,7 +25,7 @@ struct git_pathspec {
|
|
|
25
25
|
|
|
26
26
|
enum {
|
|
27
27
|
PATHSPEC_DATATYPE_STRINGS = 0,
|
|
28
|
-
PATHSPEC_DATATYPE_DIFF = 1
|
|
28
|
+
PATHSPEC_DATATYPE_DIFF = 1
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
typedef git_array_t(char *) git_pathspec_string_array_t;
|
|
@@ -39,8 +39,11 @@ int git_proxy_options_dup(git_proxy_options *tgt, const git_proxy_options *src)
|
|
|
39
39
|
return 0;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
void
|
|
42
|
+
void git_proxy_options_dispose(git_proxy_options *opts)
|
|
43
43
|
{
|
|
44
|
+
if (!opts)
|
|
45
|
+
return;
|
|
46
|
+
|
|
44
47
|
git__free((char *) opts->url);
|
|
45
48
|
opts->url = NULL;
|
|
46
49
|
}
|
|
@@ -12,6 +12,6 @@
|
|
|
12
12
|
#include "git2/proxy.h"
|
|
13
13
|
|
|
14
14
|
extern int git_proxy_options_dup(git_proxy_options *tgt, const git_proxy_options *src);
|
|
15
|
-
extern void
|
|
15
|
+
extern void git_proxy_options_dispose(git_proxy_options *opts);
|
|
16
16
|
|
|
17
17
|
#endif
|
|
@@ -29,19 +29,26 @@ static int push_status_ref_cmp(const void *a, const void *b)
|
|
|
29
29
|
return strcmp(push_status_a->ref, push_status_b->ref);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
int git_push_new(git_push **out, git_remote *remote)
|
|
32
|
+
int git_push_new(git_push **out, git_remote *remote, const git_push_options *opts)
|
|
33
33
|
{
|
|
34
34
|
git_push *p;
|
|
35
35
|
|
|
36
36
|
*out = NULL;
|
|
37
37
|
|
|
38
|
+
GIT_ERROR_CHECK_VERSION(opts, GIT_PUSH_OPTIONS_VERSION, "git_push_options");
|
|
39
|
+
|
|
38
40
|
p = git__calloc(1, sizeof(*p));
|
|
39
41
|
GIT_ERROR_CHECK_ALLOC(p);
|
|
40
42
|
|
|
41
43
|
p->repo = remote->repo;
|
|
42
44
|
p->remote = remote;
|
|
43
45
|
p->report_status = 1;
|
|
44
|
-
p->pb_parallelism = 1;
|
|
46
|
+
p->pb_parallelism = opts ? opts->pb_parallelism : 1;
|
|
47
|
+
|
|
48
|
+
if (opts) {
|
|
49
|
+
GIT_ERROR_CHECK_VERSION(&opts->callbacks, GIT_REMOTE_CALLBACKS_VERSION, "git_remote_callbacks");
|
|
50
|
+
memcpy(&p->callbacks, &opts->callbacks, sizeof(git_remote_callbacks));
|
|
51
|
+
}
|
|
45
52
|
|
|
46
53
|
if (git_vector_init(&p->specs, 0, push_spec_rref_cmp) < 0) {
|
|
47
54
|
git__free(p);
|
|
@@ -65,20 +72,6 @@ int git_push_new(git_push **out, git_remote *remote)
|
|
|
65
72
|
return 0;
|
|
66
73
|
}
|
|
67
74
|
|
|
68
|
-
int git_push_set_options(git_push *push, const git_push_options *opts)
|
|
69
|
-
{
|
|
70
|
-
if (!push || !opts)
|
|
71
|
-
return -1;
|
|
72
|
-
|
|
73
|
-
GIT_ERROR_CHECK_VERSION(opts, GIT_PUSH_OPTIONS_VERSION, "git_push_options");
|
|
74
|
-
|
|
75
|
-
push->pb_parallelism = opts->pb_parallelism;
|
|
76
|
-
push->connection.custom_headers = &opts->custom_headers;
|
|
77
|
-
push->connection.proxy = &opts->proxy_opts;
|
|
78
|
-
|
|
79
|
-
return 0;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
75
|
static void free_refspec(push_spec *spec)
|
|
83
76
|
{
|
|
84
77
|
if (spec == NULL)
|
|
@@ -125,6 +118,9 @@ static int parse_refspec(git_push *push, push_spec **spec, const char *str)
|
|
|
125
118
|
s = git__calloc(1, sizeof(*s));
|
|
126
119
|
GIT_ERROR_CHECK_ALLOC(s);
|
|
127
120
|
|
|
121
|
+
git_oid_clear(&s->loid, GIT_OID_SHA1);
|
|
122
|
+
git_oid_clear(&s->roid, GIT_OID_SHA1);
|
|
123
|
+
|
|
128
124
|
if (git_refspec__parse(&s->refspec, str, false) < 0) {
|
|
129
125
|
git_error_set(GIT_ERROR_INVALID, "invalid refspec %s", str);
|
|
130
126
|
goto on_error;
|
|
@@ -159,7 +155,7 @@ int git_push_add_refspec(git_push *push, const char *refspec)
|
|
|
159
155
|
|
|
160
156
|
int git_push_update_tips(git_push *push, const git_remote_callbacks *callbacks)
|
|
161
157
|
{
|
|
162
|
-
|
|
158
|
+
git_str remote_ref_name = GIT_STR_INIT;
|
|
163
159
|
size_t i, j;
|
|
164
160
|
git_refspec *fetch_spec;
|
|
165
161
|
push_spec *push_spec = NULL;
|
|
@@ -180,9 +176,9 @@ int git_push_update_tips(git_push *push, const git_remote_callbacks *callbacks)
|
|
|
180
176
|
continue;
|
|
181
177
|
|
|
182
178
|
/* Clear the buffer which can be dirty from previous iteration */
|
|
183
|
-
|
|
179
|
+
git_str_clear(&remote_ref_name);
|
|
184
180
|
|
|
185
|
-
if ((error =
|
|
181
|
+
if ((error = git_refspec__transform(&remote_ref_name, fetch_spec, status->ref)) < 0)
|
|
186
182
|
goto on_error;
|
|
187
183
|
|
|
188
184
|
/* Find matching push ref spec */
|
|
@@ -197,7 +193,7 @@ int git_push_update_tips(git_push *push, const git_remote_callbacks *callbacks)
|
|
|
197
193
|
|
|
198
194
|
/* Update the remote ref */
|
|
199
195
|
if (git_oid_is_zero(&push_spec->loid)) {
|
|
200
|
-
error = git_reference_lookup(&remote_ref, push->remote->repo,
|
|
196
|
+
error = git_reference_lookup(&remote_ref, push->remote->repo, git_str_cstr(&remote_ref_name));
|
|
201
197
|
|
|
202
198
|
if (error >= 0) {
|
|
203
199
|
error = git_reference_delete(remote_ref);
|
|
@@ -205,7 +201,7 @@ int git_push_update_tips(git_push *push, const git_remote_callbacks *callbacks)
|
|
|
205
201
|
}
|
|
206
202
|
} else {
|
|
207
203
|
error = git_reference_create(NULL, push->remote->repo,
|
|
208
|
-
|
|
204
|
+
git_str_cstr(&remote_ref_name), &push_spec->loid, 1,
|
|
209
205
|
"update by push");
|
|
210
206
|
}
|
|
211
207
|
|
|
@@ -218,7 +214,7 @@ int git_push_update_tips(git_push *push, const git_remote_callbacks *callbacks)
|
|
|
218
214
|
}
|
|
219
215
|
|
|
220
216
|
if (fire_callback && callbacks && callbacks->update_tips) {
|
|
221
|
-
error = callbacks->update_tips(
|
|
217
|
+
error = callbacks->update_tips(git_str_cstr(&remote_ref_name),
|
|
222
218
|
&push_spec->roid, &push_spec->loid, callbacks->payload);
|
|
223
219
|
|
|
224
220
|
if (error < 0)
|
|
@@ -229,7 +225,7 @@ int git_push_update_tips(git_push *push, const git_remote_callbacks *callbacks)
|
|
|
229
225
|
error = 0;
|
|
230
226
|
|
|
231
227
|
on_error:
|
|
232
|
-
|
|
228
|
+
git_str_dispose(&remote_ref_name);
|
|
233
229
|
return error;
|
|
234
230
|
}
|
|
235
231
|
|
|
@@ -291,7 +287,7 @@ static int queue_objects(git_push *push)
|
|
|
291
287
|
if (git_oid_equal(&spec->loid, &spec->roid))
|
|
292
288
|
continue; /* up-to-date */
|
|
293
289
|
|
|
294
|
-
if (git_odb_read_header(&size, &type, push->repo->_odb, &spec->loid) < 0)
|
|
290
|
+
if ((error = git_odb_read_header(&size, &type, push->repo->_odb, &spec->loid)) < 0)
|
|
295
291
|
goto on_error;
|
|
296
292
|
|
|
297
293
|
if (type == GIT_OBJECT_TAG) {
|
|
@@ -301,19 +297,19 @@ static int queue_objects(git_push *push)
|
|
|
301
297
|
goto on_error;
|
|
302
298
|
|
|
303
299
|
if (git_object_type(target) == GIT_OBJECT_COMMIT) {
|
|
304
|
-
if (git_revwalk_push(rw, git_object_id(target)) < 0) {
|
|
300
|
+
if ((error = git_revwalk_push(rw, git_object_id(target))) < 0) {
|
|
305
301
|
git_object_free(target);
|
|
306
302
|
goto on_error;
|
|
307
303
|
}
|
|
308
304
|
} else {
|
|
309
|
-
if (git_packbuilder_insert(
|
|
310
|
-
push->pb, git_object_id(target), NULL) < 0) {
|
|
305
|
+
if ((error = git_packbuilder_insert(
|
|
306
|
+
push->pb, git_object_id(target), NULL)) < 0) {
|
|
311
307
|
git_object_free(target);
|
|
312
308
|
goto on_error;
|
|
313
309
|
}
|
|
314
310
|
}
|
|
315
311
|
git_object_free(target);
|
|
316
|
-
} else if (git_revwalk_push(rw, &spec->loid) < 0)
|
|
312
|
+
} else if ((error = git_revwalk_push(rw, &spec->loid)) < 0)
|
|
317
313
|
goto on_error;
|
|
318
314
|
|
|
319
315
|
if (!spec->refspec.force) {
|
|
@@ -389,11 +385,18 @@ static int calculate_work(git_push *push)
|
|
|
389
385
|
git_vector_foreach(&push->specs, i, spec) {
|
|
390
386
|
if (spec->refspec.src && spec->refspec.src[0]!= '\0') {
|
|
391
387
|
/* This is a create or update. Local ref must exist. */
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
388
|
+
|
|
389
|
+
git_object *obj;
|
|
390
|
+
int error = git_revparse_single(&obj, push->repo, spec->refspec.src);
|
|
391
|
+
|
|
392
|
+
if (error < 0) {
|
|
393
|
+
git_object_free(obj);
|
|
394
|
+
git_error_set(GIT_ERROR_REFERENCE, "src refspec %s does not match any", spec->refspec.src);
|
|
395
395
|
return -1;
|
|
396
396
|
}
|
|
397
|
+
|
|
398
|
+
git_oid_cpy(&spec->loid, git_object_id(obj));
|
|
399
|
+
git_object_free(obj);
|
|
397
400
|
}
|
|
398
401
|
|
|
399
402
|
/* Remote ref may or may not (e.g. during create) already exist. */
|
|
@@ -411,10 +414,11 @@ static int calculate_work(git_push *push)
|
|
|
411
414
|
return 0;
|
|
412
415
|
}
|
|
413
416
|
|
|
414
|
-
static int do_push(git_push *push
|
|
417
|
+
static int do_push(git_push *push)
|
|
415
418
|
{
|
|
416
419
|
int error = 0;
|
|
417
420
|
git_transport *transport = push->remote->transport;
|
|
421
|
+
git_remote_callbacks *callbacks = &push->callbacks;
|
|
418
422
|
|
|
419
423
|
if (!transport->push) {
|
|
420
424
|
git_error_set(GIT_ERROR_NET, "remote transport doesn't support push");
|
|
@@ -446,7 +450,7 @@ static int do_push(git_push *push, const git_remote_callbacks *callbacks)
|
|
|
446
450
|
goto on_error;
|
|
447
451
|
|
|
448
452
|
if ((error = queue_objects(push)) < 0 ||
|
|
449
|
-
(error = transport->push(transport, push
|
|
453
|
+
(error = transport->push(transport, push)) < 0)
|
|
450
454
|
goto on_error;
|
|
451
455
|
|
|
452
456
|
on_error:
|
|
@@ -472,16 +476,17 @@ static int filter_refs(git_remote *remote)
|
|
|
472
476
|
return 0;
|
|
473
477
|
}
|
|
474
478
|
|
|
475
|
-
int git_push_finish(git_push *push
|
|
479
|
+
int git_push_finish(git_push *push)
|
|
476
480
|
{
|
|
477
481
|
int error;
|
|
478
482
|
|
|
479
|
-
if (!git_remote_connected(push->remote)
|
|
480
|
-
|
|
481
|
-
return
|
|
483
|
+
if (!git_remote_connected(push->remote)) {
|
|
484
|
+
git_error_set(GIT_ERROR_NET, "remote is disconnected");
|
|
485
|
+
return -1;
|
|
486
|
+
}
|
|
482
487
|
|
|
483
488
|
if ((error = filter_refs(push->remote)) < 0 ||
|
|
484
|
-
(error = do_push(push
|
|
489
|
+
(error = do_push(push)) < 0)
|
|
485
490
|
return error;
|
|
486
491
|
|
|
487
492
|
if (!push->unpack_ok) {
|
|
@@ -41,7 +41,7 @@ struct git_push {
|
|
|
41
41
|
|
|
42
42
|
/* options */
|
|
43
43
|
unsigned pb_parallelism;
|
|
44
|
-
|
|
44
|
+
git_remote_callbacks callbacks;
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
/**
|
|
@@ -56,22 +56,11 @@ void git_push_status_free(push_status *status);
|
|
|
56
56
|
*
|
|
57
57
|
* @param out New push object
|
|
58
58
|
* @param remote Remote instance
|
|
59
|
+
* @param opts Push options or NULL
|
|
59
60
|
*
|
|
60
61
|
* @return 0 or an error code
|
|
61
62
|
*/
|
|
62
|
-
int git_push_new(git_push **out, git_remote *remote);
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Set options on a push object
|
|
66
|
-
*
|
|
67
|
-
* @param push The push object
|
|
68
|
-
* @param opts The options to set on the push object
|
|
69
|
-
*
|
|
70
|
-
* @return 0 or an error code
|
|
71
|
-
*/
|
|
72
|
-
int git_push_set_options(
|
|
73
|
-
git_push *push,
|
|
74
|
-
const git_push_options *opts);
|
|
63
|
+
int git_push_new(git_push **out, git_remote *remote, const git_push_options *opts);
|
|
75
64
|
|
|
76
65
|
/**
|
|
77
66
|
* Add a refspec to be pushed
|
|
@@ -104,11 +93,10 @@ int git_push_update_tips(git_push *push, const git_remote_callbacks *callbacks);
|
|
|
104
93
|
* order to find out which updates were accepted or rejected.
|
|
105
94
|
*
|
|
106
95
|
* @param push The push object
|
|
107
|
-
* @param callbacks the callbacks to use for this connection
|
|
108
96
|
*
|
|
109
97
|
* @return 0 or an error code
|
|
110
98
|
*/
|
|
111
|
-
int git_push_finish(git_push *push
|
|
99
|
+
int git_push_finish(git_push *push);
|
|
112
100
|
|
|
113
101
|
/**
|
|
114
102
|
* Invoke callback `cb' on each status entry
|
|
@@ -23,7 +23,7 @@ typedef struct {
|
|
|
23
23
|
} tree_reader;
|
|
24
24
|
|
|
25
25
|
static int tree_reader_read(
|
|
26
|
-
|
|
26
|
+
git_str *out,
|
|
27
27
|
git_oid *out_id,
|
|
28
28
|
git_filemode_t *out_filemode,
|
|
29
29
|
git_reader *_reader,
|
|
@@ -42,7 +42,7 @@ static int tree_reader_read(
|
|
|
42
42
|
blobsize = git_blob_rawsize(blob);
|
|
43
43
|
GIT_ERROR_CHECK_BLOBSIZE(blobsize);
|
|
44
44
|
|
|
45
|
-
if ((error =
|
|
45
|
+
if ((error = git_str_set(out, git_blob_rawcontent(blob), (size_t)blobsize)) < 0)
|
|
46
46
|
goto done;
|
|
47
47
|
|
|
48
48
|
if (out_id)
|
|
@@ -83,14 +83,14 @@ typedef struct {
|
|
|
83
83
|
} workdir_reader;
|
|
84
84
|
|
|
85
85
|
static int workdir_reader_read(
|
|
86
|
-
|
|
86
|
+
git_str *out,
|
|
87
87
|
git_oid *out_id,
|
|
88
88
|
git_filemode_t *out_filemode,
|
|
89
89
|
git_reader *_reader,
|
|
90
90
|
const char *filename)
|
|
91
91
|
{
|
|
92
92
|
workdir_reader *reader = (workdir_reader *)_reader;
|
|
93
|
-
|
|
93
|
+
git_str path = GIT_STR_INIT;
|
|
94
94
|
struct stat st;
|
|
95
95
|
git_filemode_t filemode;
|
|
96
96
|
git_filter_list *filters = NULL;
|
|
@@ -120,12 +120,12 @@ static int workdir_reader_read(
|
|
|
120
120
|
GIT_FILTER_TO_ODB, GIT_FILTER_DEFAULT)) < 0)
|
|
121
121
|
goto done;
|
|
122
122
|
|
|
123
|
-
if ((error =
|
|
123
|
+
if ((error = git_filter_list__apply_to_file(out,
|
|
124
124
|
filters, reader->repo, path.ptr)) < 0)
|
|
125
125
|
goto done;
|
|
126
126
|
|
|
127
127
|
if (out_id || reader->index) {
|
|
128
|
-
if ((error =
|
|
128
|
+
if ((error = git_odb__hash(&id, out->ptr, out->size, GIT_OBJECT_BLOB, GIT_OID_SHA1)) < 0)
|
|
129
129
|
goto done;
|
|
130
130
|
}
|
|
131
131
|
|
|
@@ -146,7 +146,7 @@ static int workdir_reader_read(
|
|
|
146
146
|
|
|
147
147
|
done:
|
|
148
148
|
git_filter_list_free(filters);
|
|
149
|
-
|
|
149
|
+
git_str_dispose(&path);
|
|
150
150
|
return error;
|
|
151
151
|
}
|
|
152
152
|
|
|
@@ -186,7 +186,7 @@ typedef struct {
|
|
|
186
186
|
} index_reader;
|
|
187
187
|
|
|
188
188
|
static int index_reader_read(
|
|
189
|
-
|
|
189
|
+
git_str *out,
|
|
190
190
|
git_oid *out_id,
|
|
191
191
|
git_filemode_t *out_filemode,
|
|
192
192
|
git_reader *_reader,
|
|
@@ -247,7 +247,7 @@ int git_reader_for_index(
|
|
|
247
247
|
/* generic */
|
|
248
248
|
|
|
249
249
|
int git_reader_read(
|
|
250
|
-
|
|
250
|
+
git_str *out,
|
|
251
251
|
git_oid *out_id,
|
|
252
252
|
git_filemode_t *out_filemode,
|
|
253
253
|
git_reader *reader,
|
|
@@ -25,7 +25,7 @@ typedef struct git_reader git_reader;
|
|
|
25
25
|
* reader after disposing the underlying object that it reads.
|
|
26
26
|
*/
|
|
27
27
|
struct git_reader {
|
|
28
|
-
int (*read)(
|
|
28
|
+
int (*read)(git_str *out, git_oid *out_oid, git_filemode_t *mode, git_reader *reader, const char *filename);
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
/**
|
|
@@ -91,7 +91,7 @@ extern int git_reader_for_workdir(
|
|
|
91
91
|
* @param filename The filename to read from the reader
|
|
92
92
|
*/
|
|
93
93
|
extern int git_reader_read(
|
|
94
|
-
|
|
94
|
+
git_str *out,
|
|
95
95
|
git_oid *out_id,
|
|
96
96
|
git_filemode_t *out_filemode,
|
|
97
97
|
git_reader *reader,
|