rugged 1.3.2.3 → 1.4.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/ext/rugged/extconf.rb +1 -1
- data/ext/rugged/rugged_config.c +7 -2
- data/ext/rugged/rugged_remote.c +17 -0
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +103 -276
- data/vendor/libgit2/COPYING +36 -19
- data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
- data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
- data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
- 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 +13 -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 +39 -49
- 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 +31 -31
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +1 -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 +0 -7
- data/vendor/libgit2/deps/zlib/crc32.c +288 -975
- data/vendor/libgit2/deps/zlib/crc32.h +436 -9441
- data/vendor/libgit2/deps/zlib/deflate.c +31 -83
- data/vendor/libgit2/deps/zlib/deflate.h +15 -12
- data/vendor/libgit2/deps/zlib/gzguts.h +2 -3
- data/vendor/libgit2/deps/zlib/infback.c +1 -2
- data/vendor/libgit2/deps/zlib/inffast.c +14 -14
- data/vendor/libgit2/deps/zlib/inflate.c +8 -39
- data/vendor/libgit2/deps/zlib/inflate.h +2 -3
- data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
- data/vendor/libgit2/deps/zlib/trees.c +48 -27
- data/vendor/libgit2/deps/zlib/zlib.h +100 -126
- data/vendor/libgit2/deps/zlib/zutil.c +2 -2
- data/vendor/libgit2/deps/zlib/zutil.h +9 -12
- 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 +2 -0
- 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 +5 -12
- data/vendor/libgit2/include/git2/config.h +19 -3
- 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 +1 -1
- data/vendor/libgit2/include/git2/describe.h +7 -2
- data/vendor/libgit2/include/git2/diff.h +17 -9
- data/vendor/libgit2/include/git2/email.h +1 -1
- data/vendor/libgit2/include/git2/errors.h +1 -2
- 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 +19 -0
- data/vendor/libgit2/include/git2/merge.h +23 -3
- data/vendor/libgit2/include/git2/message.h +2 -0
- data/vendor/libgit2/include/git2/object.h +23 -0
- data/vendor/libgit2/include/git2/odb.h +37 -7
- data/vendor/libgit2/include/git2/odb_backend.h +1 -1
- 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 +14 -9
- 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 +3 -3
- data/vendor/libgit2/include/git2/status.h +9 -3
- 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 +2 -5
- data/vendor/libgit2/include/git2/sys/remote.h +31 -0
- data/vendor/libgit2/include/git2/sys/stream.h +1 -1
- data/vendor/libgit2/include/git2/sys/transport.h +25 -34
- 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 +3 -3
- data/vendor/libgit2/include/git2/worktree.h +12 -2
- data/vendor/libgit2/src/CMakeLists.txt +189 -315
- data/vendor/libgit2/src/annotated_commit.h +1 -1
- data/vendor/libgit2/src/apply.c +18 -18
- data/vendor/libgit2/src/apply.h +2 -2
- data/vendor/libgit2/src/attr.c +18 -18
- data/vendor/libgit2/src/attr_file.c +17 -17
- data/vendor/libgit2/src/attr_file.h +4 -4
- data/vendor/libgit2/src/attrcache.c +17 -12
- data/vendor/libgit2/src/blame_git.c +1 -1
- data/vendor/libgit2/src/blob.c +33 -26
- data/vendor/libgit2/src/blob.h +1 -1
- data/vendor/libgit2/src/branch.c +150 -109
- data/vendor/libgit2/src/branch.h +15 -3
- data/vendor/libgit2/src/buf.c +126 -0
- data/vendor/libgit2/src/buf.h +50 -0
- data/vendor/libgit2/src/cc-compat.h +1 -1
- data/vendor/libgit2/src/checkout.c +74 -68
- data/vendor/libgit2/src/cherrypick.c +10 -10
- data/vendor/libgit2/src/clone.c +66 -66
- data/vendor/libgit2/src/commit.c +128 -58
- data/vendor/libgit2/src/commit.h +24 -1
- data/vendor/libgit2/src/commit_graph.c +68 -53
- data/vendor/libgit2/src/commit_graph.h +10 -3
- data/vendor/libgit2/src/commit_list.c +2 -3
- data/vendor/libgit2/src/common.h +10 -3
- data/vendor/libgit2/src/config.c +99 -77
- data/vendor/libgit2/src/config.h +15 -2
- data/vendor/libgit2/src/config_file.c +103 -91
- data/vendor/libgit2/src/config_mem.c +9 -9
- data/vendor/libgit2/src/config_parse.c +27 -23
- data/vendor/libgit2/src/crlf.c +24 -21
- data/vendor/libgit2/src/date.c +10 -17
- data/vendor/libgit2/src/date.h +33 -0
- data/vendor/libgit2/src/describe.c +27 -19
- data/vendor/libgit2/src/diff.c +25 -8
- data/vendor/libgit2/src/diff.h +2 -4
- data/vendor/libgit2/src/diff_driver.c +34 -36
- data/vendor/libgit2/src/diff_driver.h +3 -3
- data/vendor/libgit2/src/diff_file.c +29 -20
- data/vendor/libgit2/src/diff_generate.c +30 -6
- data/vendor/libgit2/src/diff_generate.h +5 -3
- data/vendor/libgit2/src/diff_print.c +102 -95
- data/vendor/libgit2/src/diff_stats.c +40 -29
- data/vendor/libgit2/src/{message.h → diff_stats.h} +7 -6
- data/vendor/libgit2/src/diff_tform.c +9 -8
- data/vendor/libgit2/src/diff_xdiff.c +3 -8
- data/vendor/libgit2/src/email.c +54 -38
- data/vendor/libgit2/src/email.h +1 -1
- data/vendor/libgit2/src/errors.c +18 -18
- data/vendor/libgit2/src/features.h.in +6 -1
- data/vendor/libgit2/src/fetch.c +69 -24
- data/vendor/libgit2/src/fetch.h +1 -1
- data/vendor/libgit2/src/fetchhead.c +19 -19
- data/vendor/libgit2/src/filebuf.c +28 -28
- data/vendor/libgit2/src/filebuf.h +1 -1
- data/vendor/libgit2/src/filter.c +96 -52
- data/vendor/libgit2/src/filter.h +26 -5
- data/vendor/libgit2/src/fs_path.c +1912 -0
- data/vendor/libgit2/src/fs_path.h +752 -0
- data/vendor/libgit2/src/futils.c +91 -85
- data/vendor/libgit2/src/futils.h +26 -14
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +2 -2
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +2 -2
- data/vendor/libgit2/src/hash/sha1/generic.c +2 -2
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +2 -2
- data/vendor/libgit2/src/hash/sha1/openssl.c +2 -2
- data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +1 -1
- data/vendor/libgit2/src/hash/sha1/win32.c +6 -6
- data/vendor/libgit2/src/hash/sha1.h +3 -1
- data/vendor/libgit2/src/hash.c +67 -35
- data/vendor/libgit2/src/hash.h +12 -12
- data/vendor/libgit2/src/ident.c +18 -18
- data/vendor/libgit2/src/ignore.c +35 -34
- data/vendor/libgit2/src/ignore.h +2 -2
- data/vendor/libgit2/src/index.c +79 -80
- data/vendor/libgit2/src/index.h +6 -3
- data/vendor/libgit2/src/indexer.c +75 -57
- data/vendor/libgit2/src/iterator.c +64 -56
- data/vendor/libgit2/src/iterator.h +5 -5
- data/vendor/libgit2/src/khash.h +1 -1
- data/vendor/libgit2/src/libgit2.c +22 -19
- data/vendor/libgit2/src/mailmap.c +38 -36
- data/vendor/libgit2/src/merge.c +27 -27
- data/vendor/libgit2/src/merge.h +1 -14
- data/vendor/libgit2/src/merge_driver.c +2 -2
- data/vendor/libgit2/src/merge_file.c +13 -3
- data/vendor/libgit2/src/message.c +21 -10
- data/vendor/libgit2/src/midx.c +83 -66
- data/vendor/libgit2/src/midx.h +3 -3
- data/vendor/libgit2/src/mwindow.c +1 -1
- data/vendor/libgit2/src/net.c +278 -68
- data/vendor/libgit2/src/net.h +10 -3
- data/vendor/libgit2/src/netops.c +1 -1
- data/vendor/libgit2/src/netops.h +1 -1
- data/vendor/libgit2/src/notes.c +20 -29
- data/vendor/libgit2/src/object.c +49 -9
- data/vendor/libgit2/src/object.h +1 -1
- data/vendor/libgit2/src/odb.c +35 -32
- data/vendor/libgit2/src/odb.h +1 -1
- data/vendor/libgit2/src/odb_loose.c +68 -68
- data/vendor/libgit2/src/odb_mempack.c +18 -5
- data/vendor/libgit2/src/odb_pack.c +43 -43
- data/vendor/libgit2/src/oid.c +11 -4
- data/vendor/libgit2/src/oid.h +15 -0
- data/vendor/libgit2/src/pack-objects.c +41 -26
- data/vendor/libgit2/src/pack-objects.h +11 -6
- data/vendor/libgit2/src/pack.c +10 -10
- data/vendor/libgit2/src/patch.c +3 -3
- data/vendor/libgit2/src/patch.h +1 -0
- data/vendor/libgit2/src/patch_generate.c +27 -11
- data/vendor/libgit2/src/patch_generate.h +5 -5
- data/vendor/libgit2/src/patch_parse.c +24 -24
- data/vendor/libgit2/src/path.c +76 -1951
- data/vendor/libgit2/src/path.h +34 -741
- data/vendor/libgit2/src/pathspec.c +6 -6
- data/vendor/libgit2/src/pathspec.h +2 -2
- data/vendor/libgit2/src/posix.c +3 -3
- data/vendor/libgit2/src/posix.h +1 -0
- data/vendor/libgit2/src/pqueue.h +1 -1
- data/vendor/libgit2/src/proxy.c +4 -1
- data/vendor/libgit2/src/proxy.h +1 -1
- data/vendor/libgit2/src/push.c +30 -35
- data/vendor/libgit2/src/push.h +4 -16
- data/vendor/libgit2/src/rand.c +226 -0
- data/vendor/libgit2/src/rand.h +37 -0
- data/vendor/libgit2/src/reader.c +8 -8
- data/vendor/libgit2/src/reader.h +2 -2
- data/vendor/libgit2/src/rebase.c +89 -88
- data/vendor/libgit2/src/refdb_fs.c +447 -173
- data/vendor/libgit2/src/refs.c +32 -32
- data/vendor/libgit2/src/refs.h +2 -2
- data/vendor/libgit2/src/refspec.c +32 -37
- data/vendor/libgit2/src/refspec.h +5 -2
- data/vendor/libgit2/src/regexp.c +1 -1
- data/vendor/libgit2/src/remote.c +713 -419
- data/vendor/libgit2/src/remote.h +15 -10
- data/vendor/libgit2/src/repository.c +350 -467
- data/vendor/libgit2/src/repository.h +11 -10
- data/vendor/libgit2/src/reset.c +8 -5
- data/vendor/libgit2/src/revert.c +10 -10
- data/vendor/libgit2/src/revparse.c +48 -35
- data/vendor/libgit2/src/revwalk.c +7 -7
- data/vendor/libgit2/src/signature.c +12 -6
- data/vendor/libgit2/src/signature.h +1 -1
- data/vendor/libgit2/src/sortedcache.c +1 -1
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +36 -37
- data/vendor/libgit2/src/status.c +4 -1
- data/vendor/libgit2/src/{buffer.c → str.c} +157 -151
- data/vendor/libgit2/src/str.h +357 -0
- data/vendor/libgit2/src/streams/mbedtls.c +8 -6
- data/vendor/libgit2/src/streams/openssl_dynamic.h +3 -3
- data/vendor/libgit2/src/submodule.c +171 -159
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +68 -52
- data/vendor/libgit2/src/sysdir.h +15 -10
- data/vendor/libgit2/src/tag.c +29 -27
- data/vendor/libgit2/src/thread.h +3 -3
- data/vendor/libgit2/src/threadstate.c +3 -3
- data/vendor/libgit2/src/threadstate.h +1 -1
- data/vendor/libgit2/src/trace.c +1 -14
- data/vendor/libgit2/src/trace.h +5 -22
- data/vendor/libgit2/src/trailer.c +1 -1
- data/vendor/libgit2/src/transaction.c +1 -1
- data/vendor/libgit2/src/transport.c +10 -10
- data/vendor/libgit2/src/transports/auth.c +7 -9
- data/vendor/libgit2/src/transports/auth.h +2 -3
- data/vendor/libgit2/src/transports/auth_negotiate.c +12 -13
- data/vendor/libgit2/src/transports/auth_ntlm.c +10 -10
- data/vendor/libgit2/src/transports/auth_ntlm.h +0 -1
- data/vendor/libgit2/src/transports/git.c +9 -11
- data/vendor/libgit2/src/transports/http.c +37 -17
- data/vendor/libgit2/src/transports/http.h +2 -3
- data/vendor/libgit2/src/transports/httpclient.c +65 -65
- data/vendor/libgit2/src/transports/local.c +124 -116
- data/vendor/libgit2/src/transports/smart.c +51 -139
- data/vendor/libgit2/src/transports/smart.h +25 -31
- data/vendor/libgit2/src/transports/smart_pkt.c +33 -33
- data/vendor/libgit2/src/transports/smart_protocol.c +57 -39
- data/vendor/libgit2/src/transports/ssh.c +47 -112
- data/vendor/libgit2/src/transports/winhttp.c +50 -56
- data/vendor/libgit2/src/tree-cache.c +5 -5
- data/vendor/libgit2/src/tree-cache.h +2 -2
- data/vendor/libgit2/src/tree.c +59 -48
- data/vendor/libgit2/src/tree.h +1 -1
- data/vendor/libgit2/src/unix/map.c +0 -2
- data/vendor/libgit2/src/unix/posix.h +1 -4
- data/vendor/libgit2/src/unix/realpath.c +0 -2
- data/vendor/libgit2/src/util.c +14 -14
- data/vendor/libgit2/src/util.h +2 -28
- data/vendor/libgit2/src/vector.h +1 -1
- data/vendor/libgit2/src/win32/findfile.c +172 -116
- data/vendor/libgit2/src/win32/findfile.h +7 -4
- data/vendor/libgit2/src/win32/path_w32.c +140 -9
- data/vendor/libgit2/src/win32/path_w32.h +2 -0
- data/vendor/libgit2/src/win32/posix.h +0 -1
- data/vendor/libgit2/src/win32/posix_w32.c +11 -27
- data/vendor/libgit2/src/win32/w32_buffer.c +2 -3
- data/vendor/libgit2/src/win32/w32_buffer.h +2 -3
- data/vendor/libgit2/src/win32/w32_leakcheck.c +1 -1
- data/vendor/libgit2/src/worktree.c +116 -94
- data/vendor/libgit2/src/worktree.h +1 -1
- data/vendor/libgit2/src/xdiff/git-xdiff.h +53 -0
- data/vendor/libgit2/src/xdiff/xdiff.h +15 -15
- data/vendor/libgit2/src/xdiff/xdiffi.c +134 -108
- data/vendor/libgit2/src/xdiff/xemit.c +23 -7
- data/vendor/libgit2/src/xdiff/xhistogram.c +87 -78
- data/vendor/libgit2/src/xdiff/xinclude.h +1 -12
- data/vendor/libgit2/src/xdiff/xmerge.c +104 -117
- data/vendor/libgit2/src/xdiff/xpatience.c +6 -17
- data/vendor/libgit2/src/xdiff/xprepare.c +15 -20
- data/vendor/libgit2/src/xdiff/xutils.c +18 -7
- data/vendor/libgit2/src/zstream.c +5 -5
- data/vendor/libgit2/src/zstream.h +4 -4
- metadata +25 -10
- data/vendor/libgit2/src/buffer.h +0 -374
data/vendor/libgit2/src/refs.c
CHANGED
|
@@ -247,7 +247,7 @@ int git_reference_dwim(git_reference **out, git_repository *repo, const char *re
|
|
|
247
247
|
int error = 0, i, valid;
|
|
248
248
|
bool fallbackmode = true, foundvalid = false;
|
|
249
249
|
git_reference *ref;
|
|
250
|
-
|
|
250
|
+
git_str refnamebuf = GIT_STR_INIT, name = GIT_STR_INIT;
|
|
251
251
|
|
|
252
252
|
static const char *formatters[] = {
|
|
253
253
|
"%s",
|
|
@@ -260,18 +260,18 @@ int git_reference_dwim(git_reference **out, git_repository *repo, const char *re
|
|
|
260
260
|
};
|
|
261
261
|
|
|
262
262
|
if (*refname)
|
|
263
|
-
|
|
263
|
+
git_str_puts(&name, refname);
|
|
264
264
|
else {
|
|
265
|
-
|
|
265
|
+
git_str_puts(&name, GIT_HEAD_FILE);
|
|
266
266
|
fallbackmode = false;
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
for (i = 0; formatters[i] && (fallbackmode || i == 0); i++) {
|
|
270
270
|
|
|
271
|
-
|
|
271
|
+
git_str_clear(&refnamebuf);
|
|
272
272
|
|
|
273
|
-
if ((error =
|
|
274
|
-
(error = git_reference_name_is_valid(&valid,
|
|
273
|
+
if ((error = git_str_printf(&refnamebuf, formatters[i], git_str_cstr(&name))) < 0 ||
|
|
274
|
+
(error = git_reference_name_is_valid(&valid, git_str_cstr(&refnamebuf))) < 0)
|
|
275
275
|
goto cleanup;
|
|
276
276
|
|
|
277
277
|
if (!valid) {
|
|
@@ -280,7 +280,7 @@ int git_reference_dwim(git_reference **out, git_repository *repo, const char *re
|
|
|
280
280
|
}
|
|
281
281
|
foundvalid = true;
|
|
282
282
|
|
|
283
|
-
error = git_reference_lookup_resolved(&ref, repo,
|
|
283
|
+
error = git_reference_lookup_resolved(&ref, repo, git_str_cstr(&refnamebuf), -1);
|
|
284
284
|
|
|
285
285
|
if (!error) {
|
|
286
286
|
*out = ref;
|
|
@@ -296,14 +296,14 @@ cleanup:
|
|
|
296
296
|
if (error && !foundvalid) {
|
|
297
297
|
/* never found a valid reference name */
|
|
298
298
|
git_error_set(GIT_ERROR_REFERENCE,
|
|
299
|
-
"could not use '%s' as valid reference name",
|
|
299
|
+
"could not use '%s' as valid reference name", git_str_cstr(&name));
|
|
300
300
|
}
|
|
301
301
|
|
|
302
302
|
if (error == GIT_ENOTFOUND)
|
|
303
303
|
git_error_set(GIT_ERROR_REFERENCE, "no reference found for shorthand '%s'", refname);
|
|
304
304
|
|
|
305
|
-
|
|
306
|
-
|
|
305
|
+
git_str_dispose(&name);
|
|
306
|
+
git_str_dispose(&refnamebuf);
|
|
307
307
|
return error;
|
|
308
308
|
}
|
|
309
309
|
|
|
@@ -891,7 +891,7 @@ static bool is_all_caps_and_underscore(const char *name, size_t len)
|
|
|
891
891
|
|
|
892
892
|
/* Inspired from https://github.com/git/git/blob/f06d47e7e0d9db709ee204ed13a8a7486149f494/refs.c#L36-100 */
|
|
893
893
|
int git_reference__normalize_name(
|
|
894
|
-
|
|
894
|
+
git_str *buf,
|
|
895
895
|
const char *name,
|
|
896
896
|
unsigned int flags)
|
|
897
897
|
{
|
|
@@ -902,7 +902,7 @@ int git_reference__normalize_name(
|
|
|
902
902
|
bool validate = (flags & GIT_REFERENCE_FORMAT__VALIDATION_DISABLE) == 0;
|
|
903
903
|
|
|
904
904
|
#ifdef GIT_USE_ICONV
|
|
905
|
-
|
|
905
|
+
git_fs_path_iconv_t ic = GIT_PATH_ICONV_INIT;
|
|
906
906
|
#endif
|
|
907
907
|
|
|
908
908
|
GIT_ASSERT_ARG(name);
|
|
@@ -914,22 +914,22 @@ int git_reference__normalize_name(
|
|
|
914
914
|
goto cleanup;
|
|
915
915
|
|
|
916
916
|
if (normalize)
|
|
917
|
-
|
|
917
|
+
git_str_clear(buf);
|
|
918
918
|
|
|
919
919
|
#ifdef GIT_USE_ICONV
|
|
920
920
|
if ((flags & GIT_REFERENCE_FORMAT__PRECOMPOSE_UNICODE) != 0) {
|
|
921
921
|
size_t namelen = strlen(current);
|
|
922
|
-
if ((error =
|
|
923
|
-
(error =
|
|
922
|
+
if ((error = git_fs_path_iconv_init_precompose(&ic)) < 0 ||
|
|
923
|
+
(error = git_fs_path_iconv(&ic, ¤t, &namelen)) < 0)
|
|
924
924
|
goto cleanup;
|
|
925
925
|
error = GIT_EINVALIDSPEC;
|
|
926
926
|
}
|
|
927
927
|
#endif
|
|
928
928
|
|
|
929
929
|
if (!validate) {
|
|
930
|
-
|
|
930
|
+
git_str_sets(buf, current);
|
|
931
931
|
|
|
932
|
-
error =
|
|
932
|
+
error = git_str_oom(buf) ? -1 : 0;
|
|
933
933
|
goto cleanup;
|
|
934
934
|
}
|
|
935
935
|
|
|
@@ -949,13 +949,13 @@ int git_reference__normalize_name(
|
|
|
949
949
|
process_flags &= ~GIT_REFERENCE_FORMAT_REFSPEC_PATTERN;
|
|
950
950
|
|
|
951
951
|
if (normalize) {
|
|
952
|
-
size_t cur_len =
|
|
952
|
+
size_t cur_len = git_str_len(buf);
|
|
953
953
|
|
|
954
|
-
|
|
955
|
-
|
|
954
|
+
git_str_joinpath(buf, git_str_cstr(buf), current);
|
|
955
|
+
git_str_truncate(buf,
|
|
956
956
|
cur_len + segment_len + (segments_count ? 1 : 0));
|
|
957
957
|
|
|
958
|
-
if (
|
|
958
|
+
if (git_str_oom(buf)) {
|
|
959
959
|
error = -1;
|
|
960
960
|
goto cleanup;
|
|
961
961
|
}
|
|
@@ -1008,10 +1008,10 @@ cleanup:
|
|
|
1008
1008
|
"the given reference name '%s' is not valid", name);
|
|
1009
1009
|
|
|
1010
1010
|
if (error && normalize)
|
|
1011
|
-
|
|
1011
|
+
git_str_dispose(buf);
|
|
1012
1012
|
|
|
1013
1013
|
#ifdef GIT_USE_ICONV
|
|
1014
|
-
|
|
1014
|
+
git_fs_path_iconv_clear(&ic);
|
|
1015
1015
|
#endif
|
|
1016
1016
|
|
|
1017
1017
|
return error;
|
|
@@ -1023,13 +1023,13 @@ int git_reference_normalize_name(
|
|
|
1023
1023
|
const char *name,
|
|
1024
1024
|
unsigned int flags)
|
|
1025
1025
|
{
|
|
1026
|
-
|
|
1026
|
+
git_str buf = GIT_STR_INIT;
|
|
1027
1027
|
int error;
|
|
1028
1028
|
|
|
1029
1029
|
if ((error = git_reference__normalize_name(&buf, name, flags)) < 0)
|
|
1030
1030
|
goto cleanup;
|
|
1031
1031
|
|
|
1032
|
-
if (
|
|
1032
|
+
if (git_str_len(&buf) > buffer_size - 1) {
|
|
1033
1033
|
git_error_set(
|
|
1034
1034
|
GIT_ERROR_REFERENCE,
|
|
1035
1035
|
"the provided buffer is too short to hold the normalization of '%s'", name);
|
|
@@ -1037,13 +1037,13 @@ int git_reference_normalize_name(
|
|
|
1037
1037
|
goto cleanup;
|
|
1038
1038
|
}
|
|
1039
1039
|
|
|
1040
|
-
if ((error =
|
|
1040
|
+
if ((error = git_str_copy_cstr(buffer_out, buffer_size, &buf)) < 0)
|
|
1041
1041
|
goto cleanup;
|
|
1042
1042
|
|
|
1043
1043
|
error = 0;
|
|
1044
1044
|
|
|
1045
1045
|
cleanup:
|
|
1046
|
-
|
|
1046
|
+
git_str_dispose(&buf);
|
|
1047
1047
|
return error;
|
|
1048
1048
|
}
|
|
1049
1049
|
|
|
@@ -1143,12 +1143,12 @@ int git_reference__update_for_commit(
|
|
|
1143
1143
|
{
|
|
1144
1144
|
git_reference *ref_new = NULL;
|
|
1145
1145
|
git_commit *commit = NULL;
|
|
1146
|
-
|
|
1146
|
+
git_str reflog_msg = GIT_STR_INIT;
|
|
1147
1147
|
const git_signature *who;
|
|
1148
1148
|
int error;
|
|
1149
1149
|
|
|
1150
1150
|
if ((error = git_commit_lookup(&commit, repo, id)) < 0 ||
|
|
1151
|
-
(error =
|
|
1151
|
+
(error = git_str_printf(&reflog_msg, "%s%s: %s",
|
|
1152
1152
|
operation ? operation : "commit",
|
|
1153
1153
|
commit_type(commit),
|
|
1154
1154
|
git_commit_summary(commit))) < 0)
|
|
@@ -1161,15 +1161,15 @@ int git_reference__update_for_commit(
|
|
|
1161
1161
|
return error;
|
|
1162
1162
|
|
|
1163
1163
|
error = reference__create(&ref_new, repo, ref->name, id, NULL, 1, who,
|
|
1164
|
-
|
|
1164
|
+
git_str_cstr(&reflog_msg), &ref->target.oid, NULL);
|
|
1165
1165
|
}
|
|
1166
1166
|
else
|
|
1167
1167
|
error = git_reference__update_terminal(
|
|
1168
|
-
repo, ref_name, id, who,
|
|
1168
|
+
repo, ref_name, id, who, git_str_cstr(&reflog_msg));
|
|
1169
1169
|
|
|
1170
1170
|
done:
|
|
1171
1171
|
git_reference_free(ref_new);
|
|
1172
|
-
|
|
1172
|
+
git_str_dispose(&reflog_msg);
|
|
1173
1173
|
git_commit_free(commit);
|
|
1174
1174
|
return error;
|
|
1175
1175
|
}
|
data/vendor/libgit2/src/refs.h
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
#include "git2/refs.h"
|
|
14
14
|
#include "git2/refdb.h"
|
|
15
15
|
#include "strmap.h"
|
|
16
|
-
#include "
|
|
16
|
+
#include "str.h"
|
|
17
17
|
#include "oid.h"
|
|
18
18
|
|
|
19
19
|
extern bool git_reference__enable_symbolic_ref_target_validation;
|
|
@@ -83,7 +83,7 @@ struct git_reference {
|
|
|
83
83
|
*/
|
|
84
84
|
git_reference *git_reference__realloc(git_reference **ptr_to_ref, const char *name);
|
|
85
85
|
|
|
86
|
-
int git_reference__normalize_name(
|
|
86
|
+
int git_reference__normalize_name(git_str *buf, const char *name, unsigned int flags);
|
|
87
87
|
int git_reference__update_terminal(git_repository *repo, const char *ref_name, const git_oid *oid, const git_signature *sig, const char *log_message);
|
|
88
88
|
int git_reference__name_is_valid(int *valid, const char *name, unsigned int flags);
|
|
89
89
|
int git_reference__is_branch(const char *ref_name);
|
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
#include "refspec.h"
|
|
9
9
|
|
|
10
|
-
#include "
|
|
11
|
-
|
|
10
|
+
#include "buf.h"
|
|
12
11
|
#include "refs.h"
|
|
13
12
|
#include "util.h"
|
|
14
13
|
#include "vector.h"
|
|
@@ -243,16 +242,12 @@ int git_refspec_dst_matches(const git_refspec *refspec, const char *refname)
|
|
|
243
242
|
}
|
|
244
243
|
|
|
245
244
|
static int refspec_transform(
|
|
246
|
-
|
|
245
|
+
git_str *out, const char *from, const char *to, const char *name)
|
|
247
246
|
{
|
|
248
247
|
const char *from_star, *to_star;
|
|
249
248
|
size_t replacement_len, star_offset;
|
|
250
|
-
int error;
|
|
251
|
-
|
|
252
|
-
if ((error = git_buf_sanitize(out)) < 0)
|
|
253
|
-
return error;
|
|
254
249
|
|
|
255
|
-
|
|
250
|
+
git_str_clear(out);
|
|
256
251
|
|
|
257
252
|
/*
|
|
258
253
|
* There are two parts to each side of a refspec, the bit
|
|
@@ -269,72 +264,72 @@ static int refspec_transform(
|
|
|
269
264
|
star_offset = from_star - from;
|
|
270
265
|
|
|
271
266
|
/* the first half is copied over */
|
|
272
|
-
|
|
267
|
+
git_str_put(out, to, to_star - to);
|
|
273
268
|
|
|
274
269
|
/*
|
|
275
270
|
* Copy over the name, but exclude the trailing part in "from" starting
|
|
276
271
|
* after the glob
|
|
277
272
|
*/
|
|
278
273
|
replacement_len = strlen(name + star_offset) - strlen(from_star + 1);
|
|
279
|
-
|
|
274
|
+
git_str_put(out, name + star_offset, replacement_len);
|
|
280
275
|
|
|
281
|
-
return
|
|
276
|
+
return git_str_puts(out, to_star + 1);
|
|
282
277
|
}
|
|
283
278
|
|
|
284
279
|
int git_refspec_transform(git_buf *out, const git_refspec *spec, const char *name)
|
|
285
280
|
{
|
|
286
|
-
|
|
281
|
+
GIT_BUF_WRAP_PRIVATE(out, git_refspec__transform, spec, name);
|
|
282
|
+
}
|
|
287
283
|
|
|
284
|
+
int git_refspec__transform(git_str *out, const git_refspec *spec, const char *name)
|
|
285
|
+
{
|
|
288
286
|
GIT_ASSERT_ARG(out);
|
|
289
287
|
GIT_ASSERT_ARG(spec);
|
|
290
288
|
GIT_ASSERT_ARG(name);
|
|
291
289
|
|
|
292
|
-
if ((error = git_buf_sanitize(out)) < 0)
|
|
293
|
-
return error;
|
|
294
|
-
|
|
295
290
|
if (!git_refspec_src_matches(spec, name)) {
|
|
296
291
|
git_error_set(GIT_ERROR_INVALID, "ref '%s' doesn't match the source", name);
|
|
297
292
|
return -1;
|
|
298
293
|
}
|
|
299
294
|
|
|
300
295
|
if (!spec->pattern)
|
|
301
|
-
return
|
|
296
|
+
return git_str_puts(out, spec->dst ? spec->dst : "");
|
|
302
297
|
|
|
303
298
|
return refspec_transform(out, spec->src, spec->dst, name);
|
|
304
299
|
}
|
|
305
300
|
|
|
306
301
|
int git_refspec_rtransform(git_buf *out, const git_refspec *spec, const char *name)
|
|
307
302
|
{
|
|
308
|
-
|
|
303
|
+
GIT_BUF_WRAP_PRIVATE(out, git_refspec__rtransform, spec, name);
|
|
304
|
+
}
|
|
309
305
|
|
|
306
|
+
int git_refspec__rtransform(git_str *out, const git_refspec *spec, const char *name)
|
|
307
|
+
{
|
|
310
308
|
GIT_ASSERT_ARG(out);
|
|
311
309
|
GIT_ASSERT_ARG(spec);
|
|
312
310
|
GIT_ASSERT_ARG(name);
|
|
313
311
|
|
|
314
|
-
if ((error = git_buf_sanitize(out)) < 0)
|
|
315
|
-
return error;
|
|
316
|
-
|
|
317
312
|
if (!git_refspec_dst_matches(spec, name)) {
|
|
318
313
|
git_error_set(GIT_ERROR_INVALID, "ref '%s' doesn't match the destination", name);
|
|
319
314
|
return -1;
|
|
320
315
|
}
|
|
321
316
|
|
|
322
317
|
if (!spec->pattern)
|
|
323
|
-
return
|
|
318
|
+
return git_str_puts(out, spec->src);
|
|
324
319
|
|
|
325
320
|
return refspec_transform(out, spec->dst, spec->src, name);
|
|
326
321
|
}
|
|
327
322
|
|
|
328
|
-
int git_refspec__serialize(
|
|
323
|
+
int git_refspec__serialize(git_str *out, const git_refspec *refspec)
|
|
329
324
|
{
|
|
330
325
|
if (refspec->force)
|
|
331
|
-
|
|
326
|
+
git_str_putc(out, '+');
|
|
332
327
|
|
|
333
|
-
|
|
328
|
+
git_str_printf(out, "%s:%s",
|
|
334
329
|
refspec->src != NULL ? refspec->src : "",
|
|
335
330
|
refspec->dst != NULL ? refspec->dst : "");
|
|
336
331
|
|
|
337
|
-
return
|
|
332
|
+
return git_str_oom(out) == false;
|
|
338
333
|
}
|
|
339
334
|
|
|
340
335
|
int git_refspec_is_wildcard(const git_refspec *spec)
|
|
@@ -354,7 +349,7 @@ git_direction git_refspec_direction(const git_refspec *spec)
|
|
|
354
349
|
|
|
355
350
|
int git_refspec__dwim_one(git_vector *out, git_refspec *spec, git_vector *refs)
|
|
356
351
|
{
|
|
357
|
-
|
|
352
|
+
git_str buf = GIT_STR_INIT;
|
|
358
353
|
size_t j, pos;
|
|
359
354
|
git_remote_head key;
|
|
360
355
|
git_refspec *cur;
|
|
@@ -382,14 +377,14 @@ int git_refspec__dwim_one(git_vector *out, git_refspec *spec, git_vector *refs)
|
|
|
382
377
|
/* shorthand on the lhs */
|
|
383
378
|
if (git__prefixcmp(spec->src, GIT_REFS_DIR)) {
|
|
384
379
|
for (j = 0; formatters[j]; j++) {
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
380
|
+
git_str_clear(&buf);
|
|
381
|
+
git_str_printf(&buf, formatters[j], spec->src);
|
|
382
|
+
GIT_ERROR_CHECK_ALLOC_STR(&buf);
|
|
388
383
|
|
|
389
|
-
key.name = (char *)
|
|
384
|
+
key.name = (char *) git_str_cstr(&buf);
|
|
390
385
|
if (!git_vector_search(&pos, refs, &key)) {
|
|
391
386
|
/* we found something to match the shorthand, set src to that */
|
|
392
|
-
cur->src =
|
|
387
|
+
cur->src = git_str_detach(&buf);
|
|
393
388
|
}
|
|
394
389
|
}
|
|
395
390
|
}
|
|
@@ -403,18 +398,18 @@ int git_refspec__dwim_one(git_vector *out, git_refspec *spec, git_vector *refs)
|
|
|
403
398
|
if (spec->dst && git__prefixcmp(spec->dst, GIT_REFS_DIR)) {
|
|
404
399
|
/* if it starts with "remotes" then we just prepend "refs/" */
|
|
405
400
|
if (!git__prefixcmp(spec->dst, "remotes/")) {
|
|
406
|
-
|
|
401
|
+
git_str_puts(&buf, GIT_REFS_DIR);
|
|
407
402
|
} else {
|
|
408
|
-
|
|
403
|
+
git_str_puts(&buf, GIT_REFS_HEADS_DIR);
|
|
409
404
|
}
|
|
410
405
|
|
|
411
|
-
|
|
412
|
-
|
|
406
|
+
git_str_puts(&buf, spec->dst);
|
|
407
|
+
GIT_ERROR_CHECK_ALLOC_STR(&buf);
|
|
413
408
|
|
|
414
|
-
cur->dst =
|
|
409
|
+
cur->dst = git_str_detach(&buf);
|
|
415
410
|
}
|
|
416
411
|
|
|
417
|
-
|
|
412
|
+
git_str_dispose(&buf);
|
|
418
413
|
|
|
419
414
|
if (cur->dst == NULL && spec->dst != NULL) {
|
|
420
415
|
cur->dst = git__strdup(spec->dst);
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
#include "common.h"
|
|
11
11
|
|
|
12
12
|
#include "git2/refspec.h"
|
|
13
|
-
#include "
|
|
13
|
+
#include "str.h"
|
|
14
14
|
#include "vector.h"
|
|
15
15
|
|
|
16
16
|
struct git_refspec {
|
|
@@ -25,6 +25,9 @@ struct git_refspec {
|
|
|
25
25
|
|
|
26
26
|
#define GIT_REFSPEC_TAGS "refs/tags/*:refs/tags/*"
|
|
27
27
|
|
|
28
|
+
int git_refspec__transform(git_str *out, const git_refspec *spec, const char *name);
|
|
29
|
+
int git_refspec__rtransform(git_str *out, const git_refspec *spec, const char *name);
|
|
30
|
+
|
|
28
31
|
int git_refspec__parse(
|
|
29
32
|
struct git_refspec *refspec,
|
|
30
33
|
const char *str,
|
|
@@ -32,7 +35,7 @@ int git_refspec__parse(
|
|
|
32
35
|
|
|
33
36
|
void git_refspec__dispose(git_refspec *refspec);
|
|
34
37
|
|
|
35
|
-
int git_refspec__serialize(
|
|
38
|
+
int git_refspec__serialize(git_str *out, const git_refspec *refspec);
|
|
36
39
|
|
|
37
40
|
/**
|
|
38
41
|
* Determines if a refspec is a wildcard refspec.
|
data/vendor/libgit2/src/regexp.c
CHANGED
|
@@ -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
|