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
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
#ifndef INCLUDE_net_h__
|
|
8
8
|
#define INCLUDE_net_h__
|
|
9
9
|
|
|
10
|
-
#include "
|
|
10
|
+
#include "git2_util.h"
|
|
11
11
|
|
|
12
12
|
typedef struct git_net_url {
|
|
13
13
|
char *scheme;
|
|
@@ -15,18 +15,31 @@ typedef struct git_net_url {
|
|
|
15
15
|
char *port;
|
|
16
16
|
char *path;
|
|
17
17
|
char *query;
|
|
18
|
+
char *fragment;
|
|
18
19
|
char *username;
|
|
19
20
|
char *password;
|
|
20
21
|
} git_net_url;
|
|
21
22
|
|
|
22
23
|
#define GIT_NET_URL_INIT { NULL }
|
|
23
24
|
|
|
25
|
+
/** Is a given string a url? */
|
|
26
|
+
extern bool git_net_str_is_url(const char *str);
|
|
27
|
+
|
|
24
28
|
/** Duplicate a URL */
|
|
25
29
|
extern int git_net_url_dup(git_net_url *out, git_net_url *in);
|
|
26
30
|
|
|
27
|
-
/** Parses a string containing a URL into a structure.
|
|
31
|
+
/** Parses a string containing a URL into a structure. */
|
|
28
32
|
extern int git_net_url_parse(git_net_url *url, const char *str);
|
|
29
33
|
|
|
34
|
+
/** Parses a string containing an SCP style path into a URL structure. */
|
|
35
|
+
extern int git_net_url_parse_scp(git_net_url *url, const char *str);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Parses a string containing a standard URL or an SCP style path into
|
|
39
|
+
* a URL structure.
|
|
40
|
+
*/
|
|
41
|
+
extern int git_net_url_parse_standard_or_scp(git_net_url *url, const char *str);
|
|
42
|
+
|
|
30
43
|
/** Appends a path and/or query string to the given URL */
|
|
31
44
|
extern int git_net_url_joinpath(
|
|
32
45
|
git_net_url *out,
|
|
@@ -46,16 +59,17 @@ extern bool git_net_url_is_ipv6(git_net_url *url);
|
|
|
46
59
|
extern int git_net_url_apply_redirect(
|
|
47
60
|
git_net_url *url,
|
|
48
61
|
const char *redirect_location,
|
|
62
|
+
bool allow_offsite,
|
|
49
63
|
const char *service_suffix);
|
|
50
64
|
|
|
51
65
|
/** Swaps the contents of one URL for another. */
|
|
52
66
|
extern void git_net_url_swap(git_net_url *a, git_net_url *b);
|
|
53
67
|
|
|
54
68
|
/** Places the URL into the given buffer. */
|
|
55
|
-
extern int git_net_url_fmt(
|
|
69
|
+
extern int git_net_url_fmt(git_str *out, git_net_url *url);
|
|
56
70
|
|
|
57
71
|
/** Place the path and query string into the given buffer. */
|
|
58
|
-
extern int git_net_url_fmt_path(
|
|
72
|
+
extern int git_net_url_fmt_path(git_str *buf, git_net_url *url);
|
|
59
73
|
|
|
60
74
|
/** Determines if the url matches given pattern or pattern list */
|
|
61
75
|
extern bool git_net_url_matches_pattern(
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
#include "posix.h"
|
|
9
9
|
|
|
10
|
-
#include "
|
|
10
|
+
#include "fs_path.h"
|
|
11
11
|
#include <stdio.h>
|
|
12
12
|
#include <ctype.h>
|
|
13
13
|
|
|
@@ -144,8 +144,8 @@ int p_getcwd(char *buffer_out, size_t size)
|
|
|
144
144
|
if (cwd_buffer == NULL)
|
|
145
145
|
return -1;
|
|
146
146
|
|
|
147
|
-
|
|
148
|
-
|
|
147
|
+
git_fs_path_mkposix(buffer_out);
|
|
148
|
+
git_fs_path_string_to_dir(buffer_out, size); /* append trailing slash */
|
|
149
149
|
|
|
150
150
|
return 0;
|
|
151
151
|
}
|
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
#ifndef INCLUDE_posix_h__
|
|
8
8
|
#define INCLUDE_posix_h__
|
|
9
9
|
|
|
10
|
-
#include "
|
|
10
|
+
#include "git2_util.h"
|
|
11
11
|
|
|
12
|
+
#include <stdlib.h>
|
|
12
13
|
#include <fcntl.h>
|
|
13
14
|
#include <time.h>
|
|
14
15
|
|
|
@@ -103,6 +104,8 @@ typedef __int64 off64_t;
|
|
|
103
104
|
typedef __haiku_std_int64 off64_t;
|
|
104
105
|
#elif defined(__APPLE__)
|
|
105
106
|
typedef __int64_t off64_t;
|
|
107
|
+
#elif defined(_AIX)
|
|
108
|
+
typedef long long off64_t;
|
|
106
109
|
#else
|
|
107
110
|
typedef int64_t off64_t;
|
|
108
111
|
#endif
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
#ifndef INCLUDE_pqueue_h__
|
|
8
8
|
#define INCLUDE_pqueue_h__
|
|
9
9
|
|
|
10
|
-
#include "
|
|
10
|
+
#include "git2_util.h"
|
|
11
11
|
|
|
12
12
|
#include "vector.h"
|
|
13
13
|
|
|
@@ -15,7 +15,7 @@ typedef git_vector git_pqueue;
|
|
|
15
15
|
|
|
16
16
|
enum {
|
|
17
17
|
/* flag meaning: don't grow heap, keep highest values only */
|
|
18
|
-
GIT_PQUEUE_FIXED_SIZE = (GIT_VECTOR_FLAG_MAX << 1)
|
|
18
|
+
GIT_PQUEUE_FIXED_SIZE = (GIT_VECTOR_FLAG_MAX << 1)
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
/**
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/* Written in 2018 by David Blackman and Sebastiano Vigna (vigna@acm.org)
|
|
2
|
+
|
|
3
|
+
To the extent possible under law, the author has dedicated all copyright
|
|
4
|
+
and related and neighboring rights to this software to the public domain
|
|
5
|
+
worldwide. This software is distributed without any warranty.
|
|
6
|
+
|
|
7
|
+
See <http://creativecommons.org/publicdomain/zero/1.0/>. */
|
|
8
|
+
|
|
9
|
+
#include "git2_util.h"
|
|
10
|
+
#include "rand.h"
|
|
11
|
+
#include "runtime.h"
|
|
12
|
+
|
|
13
|
+
#if defined(GIT_RAND_GETENTROPY)
|
|
14
|
+
# include <sys/random.h>
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
#if defined(GIT_WIN32)
|
|
18
|
+
# include <wincrypt.h>
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
static uint64_t state[4];
|
|
22
|
+
static git_mutex state_lock;
|
|
23
|
+
|
|
24
|
+
typedef union {
|
|
25
|
+
double f;
|
|
26
|
+
uint64_t d;
|
|
27
|
+
} bits;
|
|
28
|
+
|
|
29
|
+
#if defined(GIT_WIN32)
|
|
30
|
+
GIT_INLINE(int) getseed(uint64_t *seed)
|
|
31
|
+
{
|
|
32
|
+
HCRYPTPROV provider;
|
|
33
|
+
SYSTEMTIME systemtime;
|
|
34
|
+
FILETIME filetime, idletime, kerneltime, usertime;
|
|
35
|
+
bits convert;
|
|
36
|
+
|
|
37
|
+
if (CryptAcquireContext(&provider, 0, 0, PROV_RSA_FULL,
|
|
38
|
+
CRYPT_VERIFYCONTEXT|CRYPT_SILENT)) {
|
|
39
|
+
BOOL success = CryptGenRandom(provider, sizeof(uint64_t), (void *)seed);
|
|
40
|
+
CryptReleaseContext(provider, 0);
|
|
41
|
+
|
|
42
|
+
if (success)
|
|
43
|
+
return 0;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
GetSystemTime(&systemtime);
|
|
47
|
+
if (!SystemTimeToFileTime(&systemtime, &filetime)) {
|
|
48
|
+
git_error_set(GIT_ERROR_OS, "could not get time for random seed");
|
|
49
|
+
return -1;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Fall-through: generate a seed from the time and system state */
|
|
53
|
+
*seed = 0;
|
|
54
|
+
*seed |= ((uint64_t)filetime.dwLowDateTime << 32);
|
|
55
|
+
*seed |= ((uint64_t)filetime.dwHighDateTime);
|
|
56
|
+
|
|
57
|
+
GetSystemTimes(&idletime, &kerneltime, &usertime);
|
|
58
|
+
|
|
59
|
+
*seed ^= ((uint64_t)idletime.dwLowDateTime << 32);
|
|
60
|
+
*seed ^= ((uint64_t)kerneltime.dwLowDateTime);
|
|
61
|
+
*seed ^= ((uint64_t)usertime.dwLowDateTime << 32);
|
|
62
|
+
|
|
63
|
+
*seed ^= ((uint64_t)idletime.dwHighDateTime);
|
|
64
|
+
*seed ^= ((uint64_t)kerneltime.dwHighDateTime << 12);
|
|
65
|
+
*seed ^= ((uint64_t)usertime.dwHighDateTime << 24);
|
|
66
|
+
|
|
67
|
+
*seed ^= ((uint64_t)GetCurrentProcessId() << 32);
|
|
68
|
+
*seed ^= ((uint64_t)GetCurrentThreadId() << 48);
|
|
69
|
+
|
|
70
|
+
convert.f = git__timer(); *seed ^= (convert.d);
|
|
71
|
+
|
|
72
|
+
/* Mix in the addresses of some functions and variables */
|
|
73
|
+
*seed ^= (((uint64_t)((uintptr_t)seed) << 32));
|
|
74
|
+
*seed ^= (((uint64_t)((uintptr_t)&errno)));
|
|
75
|
+
|
|
76
|
+
return 0;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
#else
|
|
80
|
+
|
|
81
|
+
GIT_INLINE(int) getseed(uint64_t *seed)
|
|
82
|
+
{
|
|
83
|
+
struct timeval tv;
|
|
84
|
+
double loadavg[3];
|
|
85
|
+
bits convert;
|
|
86
|
+
int fd;
|
|
87
|
+
|
|
88
|
+
# if defined(GIT_RAND_GETENTROPY)
|
|
89
|
+
GIT_UNUSED((fd = 0));
|
|
90
|
+
|
|
91
|
+
if (getentropy(seed, sizeof(uint64_t)) == 0)
|
|
92
|
+
return 0;
|
|
93
|
+
# else
|
|
94
|
+
/*
|
|
95
|
+
* Try to read from /dev/urandom; most modern systems will have
|
|
96
|
+
* this, but we may be chrooted, etc, so it's not a fatal error
|
|
97
|
+
*/
|
|
98
|
+
if ((fd = open("/dev/urandom", O_RDONLY)) >= 0) {
|
|
99
|
+
ssize_t ret = read(fd, seed, sizeof(uint64_t));
|
|
100
|
+
close(fd);
|
|
101
|
+
|
|
102
|
+
if (ret == (ssize_t)sizeof(uint64_t))
|
|
103
|
+
return 0;
|
|
104
|
+
}
|
|
105
|
+
# endif
|
|
106
|
+
|
|
107
|
+
/* Fall-through: generate a seed from the time and system state */
|
|
108
|
+
if (gettimeofday(&tv, NULL) < 0) {
|
|
109
|
+
git_error_set(GIT_ERROR_OS, "could get time for random seed");
|
|
110
|
+
return -1;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
*seed = 0;
|
|
114
|
+
*seed |= ((uint64_t)tv.tv_usec << 40);
|
|
115
|
+
*seed |= ((uint64_t)tv.tv_sec);
|
|
116
|
+
|
|
117
|
+
*seed ^= ((uint64_t)getpid() << 48);
|
|
118
|
+
*seed ^= ((uint64_t)getppid() << 32);
|
|
119
|
+
*seed ^= ((uint64_t)getpgid(0) << 28);
|
|
120
|
+
*seed ^= ((uint64_t)getsid(0) << 16);
|
|
121
|
+
*seed ^= ((uint64_t)getuid() << 8);
|
|
122
|
+
*seed ^= ((uint64_t)getgid());
|
|
123
|
+
|
|
124
|
+
# if defined(GIT_RAND_GETLOADAVG)
|
|
125
|
+
getloadavg(loadavg, 3);
|
|
126
|
+
|
|
127
|
+
convert.f = loadavg[0]; *seed ^= (convert.d >> 36);
|
|
128
|
+
convert.f = loadavg[1]; *seed ^= (convert.d);
|
|
129
|
+
convert.f = loadavg[2]; *seed ^= (convert.d >> 16);
|
|
130
|
+
# else
|
|
131
|
+
GIT_UNUSED(loadavg[0]);
|
|
132
|
+
# endif
|
|
133
|
+
|
|
134
|
+
convert.f = git__timer(); *seed ^= (convert.d);
|
|
135
|
+
|
|
136
|
+
/* Mix in the addresses of some variables */
|
|
137
|
+
*seed ^= ((uint64_t)((size_t)((void *)seed)) << 32);
|
|
138
|
+
*seed ^= ((uint64_t)((size_t)((void *)&errno)));
|
|
139
|
+
|
|
140
|
+
return 0;
|
|
141
|
+
}
|
|
142
|
+
#endif
|
|
143
|
+
|
|
144
|
+
static void git_rand_global_shutdown(void)
|
|
145
|
+
{
|
|
146
|
+
git_mutex_free(&state_lock);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
int git_rand_global_init(void)
|
|
150
|
+
{
|
|
151
|
+
uint64_t seed = 0;
|
|
152
|
+
|
|
153
|
+
if (git_mutex_init(&state_lock) < 0 || getseed(&seed) < 0)
|
|
154
|
+
return -1;
|
|
155
|
+
|
|
156
|
+
if (!seed) {
|
|
157
|
+
git_error_set(GIT_ERROR_INTERNAL, "failed to generate random seed");
|
|
158
|
+
return -1;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
git_rand_seed(seed);
|
|
162
|
+
git_runtime_shutdown_register(git_rand_global_shutdown);
|
|
163
|
+
|
|
164
|
+
return 0;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/*
|
|
168
|
+
* This is splitmix64. xoroshiro256** uses 256 bit seed; this is used
|
|
169
|
+
* to generate 256 bits of seed from the given 64, per the author's
|
|
170
|
+
* recommendation.
|
|
171
|
+
*/
|
|
172
|
+
GIT_INLINE(uint64_t) splitmix64(uint64_t *in)
|
|
173
|
+
{
|
|
174
|
+
uint64_t z;
|
|
175
|
+
|
|
176
|
+
*in += 0x9e3779b97f4a7c15;
|
|
177
|
+
|
|
178
|
+
z = *in;
|
|
179
|
+
z = (z ^ (z >> 30)) * 0xbf58476d1ce4e5b9;
|
|
180
|
+
z = (z ^ (z >> 27)) * 0x94d049bb133111eb;
|
|
181
|
+
return z ^ (z >> 31);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
void git_rand_seed(uint64_t seed)
|
|
185
|
+
{
|
|
186
|
+
uint64_t mixer;
|
|
187
|
+
|
|
188
|
+
mixer = seed;
|
|
189
|
+
|
|
190
|
+
git_mutex_lock(&state_lock);
|
|
191
|
+
state[0] = splitmix64(&mixer);
|
|
192
|
+
state[1] = splitmix64(&mixer);
|
|
193
|
+
state[2] = splitmix64(&mixer);
|
|
194
|
+
state[3] = splitmix64(&mixer);
|
|
195
|
+
git_mutex_unlock(&state_lock);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/* This is xoshiro256** 1.0, one of our all-purpose, rock-solid
|
|
199
|
+
generators. It has excellent (sub-ns) speed, a state (256 bits) that is
|
|
200
|
+
large enough for any parallel application, and it passes all tests we
|
|
201
|
+
are aware of.
|
|
202
|
+
|
|
203
|
+
For generating just floating-point numbers, xoshiro256+ is even faster.
|
|
204
|
+
|
|
205
|
+
The state must be seeded so that it is not everywhere zero. If you have
|
|
206
|
+
a 64-bit seed, we suggest to seed a splitmix64 generator and use its
|
|
207
|
+
output to fill s. */
|
|
208
|
+
|
|
209
|
+
GIT_INLINE(uint64_t) rotl(const uint64_t x, int k) {
|
|
210
|
+
return (x << k) | (x >> (64 - k));
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
uint64_t git_rand_next(void) {
|
|
214
|
+
uint64_t t, result;
|
|
215
|
+
|
|
216
|
+
git_mutex_lock(&state_lock);
|
|
217
|
+
|
|
218
|
+
result = rotl(state[1] * 5, 7) * 9;
|
|
219
|
+
|
|
220
|
+
t = state[1] << 17;
|
|
221
|
+
|
|
222
|
+
state[2] ^= state[0];
|
|
223
|
+
state[3] ^= state[1];
|
|
224
|
+
state[1] ^= state[2];
|
|
225
|
+
state[0] ^= state[3];
|
|
226
|
+
|
|
227
|
+
state[2] ^= t;
|
|
228
|
+
|
|
229
|
+
state[3] = rotl(state[3], 45);
|
|
230
|
+
|
|
231
|
+
git_mutex_unlock(&state_lock);
|
|
232
|
+
|
|
233
|
+
return result;
|
|
234
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
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_rand_h__
|
|
8
|
+
#define INCLUDE_rand_h__
|
|
9
|
+
|
|
10
|
+
#include "git2_util.h"
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Initialize the random number generation subsystem. This will
|
|
14
|
+
* seed the random number generator with the system's entropy pool,
|
|
15
|
+
* if available, and will fall back to the current time and
|
|
16
|
+
* system information if not.
|
|
17
|
+
*/
|
|
18
|
+
int git_rand_global_init(void);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Seed the pseudo-random number generator. This is not needed to be
|
|
22
|
+
* called; the PRNG is seeded by `git_rand_global_init`, but it may
|
|
23
|
+
* be useful for testing. When the same seed is specified, the same
|
|
24
|
+
* sequence of random numbers from `git_rand_next` is emitted.
|
|
25
|
+
*
|
|
26
|
+
* @param seed the seed to use
|
|
27
|
+
*/
|
|
28
|
+
void git_rand_seed(uint64_t seed);
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Get the next pseudo-random number in the sequence.
|
|
32
|
+
*
|
|
33
|
+
* @return a 64-bit pseudo-random number
|
|
34
|
+
*/
|
|
35
|
+
uint64_t git_rand_next(void);
|
|
36
|
+
|
|
37
|
+
#endif
|
|
@@ -45,7 +45,7 @@ int git_regexp_search(const git_regexp *r, const char *string, size_t nmatches,
|
|
|
45
45
|
int error;
|
|
46
46
|
size_t i;
|
|
47
47
|
|
|
48
|
-
/* The ovec array always needs to be a
|
|
48
|
+
/* The ovec array always needs to be a multiple of three */
|
|
49
49
|
if (nmatches <= ARRAY_SIZE(static_ovec) / 3)
|
|
50
50
|
ovec = static_ovec;
|
|
51
51
|
else
|
|
@@ -108,11 +108,11 @@ int git_regexp_match(const git_regexp *r, const char *string)
|
|
|
108
108
|
data = pcre2_match_data_create(1, NULL);
|
|
109
109
|
GIT_ERROR_CHECK_ALLOC(data);
|
|
110
110
|
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
error = pcre2_match(*r, (const unsigned char *) string, strlen(string), 0, 0, data, NULL);
|
|
112
|
+
pcre2_match_data_free(data);
|
|
113
|
+
if (error < 0)
|
|
113
114
|
return (error == PCRE2_ERROR_NOMATCH) ? GIT_ENOTFOUND : GIT_EINVALIDSPEC;
|
|
114
115
|
|
|
115
|
-
pcre2_match_data_free(data);
|
|
116
116
|
return 0;
|
|
117
117
|
}
|
|
118
118
|
|
|
@@ -201,7 +201,7 @@ void git_sortedcache_runlock(git_sortedcache *sc)
|
|
|
201
201
|
/* if the file has changed, lock cache and load file contents into buf;
|
|
202
202
|
* returns <0 on error, >0 if file has not changed
|
|
203
203
|
*/
|
|
204
|
-
int git_sortedcache_lockandload(git_sortedcache *sc,
|
|
204
|
+
int git_sortedcache_lockandload(git_sortedcache *sc, git_str *buf)
|
|
205
205
|
{
|
|
206
206
|
int error, fd;
|
|
207
207
|
struct stat st;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
#ifndef INCLUDE_sorted_cache_h__
|
|
8
8
|
#define INCLUDE_sorted_cache_h__
|
|
9
9
|
|
|
10
|
-
#include "
|
|
10
|
+
#include "git2_util.h"
|
|
11
11
|
|
|
12
12
|
#include "util.h"
|
|
13
13
|
#include "futils.h"
|
|
@@ -121,7 +121,7 @@ void git_sortedcache_wunlock(git_sortedcache *sc);
|
|
|
121
121
|
* @return 0 if up-to-date, 1 if out-of-date, <0 on error
|
|
122
122
|
*/
|
|
123
123
|
GIT_WARN_UNUSED_RESULT int git_sortedcache_lockandload(
|
|
124
|
-
git_sortedcache *sc,
|
|
124
|
+
git_sortedcache *sc, git_str *buf);
|
|
125
125
|
|
|
126
126
|
/* Refresh file timestamp after write completes
|
|
127
127
|
* You should already be holding the write lock when you call this.
|