rugged 1.1.1 → 1.2.0
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/LICENSE +1 -0
- data/README.md +1 -1
- data/ext/rugged/rugged.c +7 -4
- data/ext/rugged/rugged_object.c +1 -1
- data/ext/rugged/rugged_repo.c +3 -3
- data/lib/rugged/repository.rb +2 -2
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +11 -6
- data/vendor/libgit2/COPYING +109 -1
- data/vendor/libgit2/cmake/Findfutimens.cmake +14 -0
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +4 -0
- data/vendor/libgit2/cmake/SelectHashes.cmake +1 -0
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +17 -5
- data/vendor/libgit2/deps/ntlmclient/crypt.h +14 -9
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +20 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +3 -3
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +37 -36
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +4 -3
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +178 -51
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +74 -5
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +150 -118
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +13 -9
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +16 -3
- data/vendor/libgit2/deps/ntlmclient/unicode.h +10 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +16 -27
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.h +20 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +28 -52
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.h +22 -0
- data/vendor/libgit2/include/git2/attr.h +89 -0
- data/vendor/libgit2/include/git2/blame.h +93 -42
- data/vendor/libgit2/include/git2/blob.h +14 -2
- data/vendor/libgit2/include/git2/branch.h +25 -0
- data/vendor/libgit2/include/git2/cert.h +42 -5
- data/vendor/libgit2/include/git2/checkout.h +28 -12
- data/vendor/libgit2/include/git2/commit.h +35 -19
- data/vendor/libgit2/include/git2/common.h +14 -4
- data/vendor/libgit2/include/git2/deprecated.h +206 -6
- data/vendor/libgit2/include/git2/diff.h +34 -19
- data/vendor/libgit2/include/git2/errors.h +6 -6
- data/vendor/libgit2/include/git2/filter.h +57 -17
- data/vendor/libgit2/include/git2/graph.h +20 -2
- data/vendor/libgit2/include/git2/index.h +2 -2
- data/vendor/libgit2/include/git2/odb.h +29 -0
- data/vendor/libgit2/include/git2/patch.h +8 -0
- data/vendor/libgit2/include/git2/rebase.h +25 -1
- data/vendor/libgit2/include/git2/refs.h +6 -2
- data/vendor/libgit2/include/git2/remote.h +59 -6
- data/vendor/libgit2/include/git2/revparse.h +5 -5
- data/vendor/libgit2/include/git2/status.h +115 -59
- data/vendor/libgit2/include/git2/submodule.h +9 -0
- data/vendor/libgit2/include/git2/sys/commit_graph.h +174 -0
- data/vendor/libgit2/include/git2/sys/filter.h +49 -28
- data/vendor/libgit2/include/git2/sys/midx.h +74 -0
- data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -0
- data/vendor/libgit2/include/git2/sys/transport.h +1 -0
- data/vendor/libgit2/include/git2/tag.h +12 -0
- data/vendor/libgit2/include/git2/tree.h +0 -14
- data/vendor/libgit2/include/git2/types.h +9 -0
- data/vendor/libgit2/include/git2/version.h +4 -4
- data/vendor/libgit2/include/git2/worktree.h +1 -0
- data/vendor/libgit2/src/CMakeLists.txt +25 -4
- data/vendor/libgit2/src/alloc.c +21 -8
- data/vendor/libgit2/src/allocators/failalloc.c +92 -0
- data/vendor/libgit2/src/allocators/failalloc.h +23 -0
- data/vendor/libgit2/src/allocators/stdalloc.c +41 -10
- data/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
- data/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
- data/vendor/libgit2/src/annotated_commit.c +21 -9
- data/vendor/libgit2/src/apply.c +16 -7
- data/vendor/libgit2/src/array.h +11 -11
- data/vendor/libgit2/src/attr.c +181 -74
- data/vendor/libgit2/src/attr_file.c +84 -39
- data/vendor/libgit2/src/attr_file.h +32 -11
- data/vendor/libgit2/src/attrcache.c +42 -37
- data/vendor/libgit2/src/attrcache.h +4 -5
- data/vendor/libgit2/src/blame.c +11 -5
- data/vendor/libgit2/src/blob.c +35 -24
- data/vendor/libgit2/src/branch.c +69 -17
- data/vendor/libgit2/src/buffer.c +334 -25
- data/vendor/libgit2/src/buffer.h +153 -2
- data/vendor/libgit2/src/cache.c +2 -2
- data/vendor/libgit2/src/cache.h +7 -7
- data/vendor/libgit2/src/cc-compat.h +10 -2
- data/vendor/libgit2/src/checkout.c +48 -26
- data/vendor/libgit2/src/cherrypick.c +6 -2
- data/vendor/libgit2/src/clone.c +41 -47
- data/vendor/libgit2/src/commit.c +41 -28
- data/vendor/libgit2/src/commit_graph.c +1209 -0
- data/vendor/libgit2/src/commit_graph.h +162 -0
- data/vendor/libgit2/src/commit_list.c +46 -0
- data/vendor/libgit2/src/commit_list.h +2 -0
- data/vendor/libgit2/src/common.h +25 -2
- data/vendor/libgit2/src/config.c +37 -15
- data/vendor/libgit2/src/config_cache.c +5 -3
- data/vendor/libgit2/src/config_file.c +16 -8
- data/vendor/libgit2/src/config_parse.c +4 -6
- data/vendor/libgit2/src/crlf.c +16 -6
- data/vendor/libgit2/src/date.c +4 -3
- data/vendor/libgit2/src/delta.c +1 -1
- data/vendor/libgit2/src/describe.c +6 -3
- data/vendor/libgit2/src/diff.c +11 -8
- data/vendor/libgit2/src/diff_driver.c +21 -17
- data/vendor/libgit2/src/diff_file.c +2 -6
- data/vendor/libgit2/src/diff_generate.c +46 -17
- data/vendor/libgit2/src/diff_print.c +19 -6
- data/vendor/libgit2/src/diff_stats.c +7 -5
- data/vendor/libgit2/src/diff_tform.c +9 -8
- data/vendor/libgit2/src/diff_xdiff.c +4 -2
- data/vendor/libgit2/src/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/errors.c +24 -19
- data/vendor/libgit2/src/features.h.in +5 -1
- data/vendor/libgit2/src/fetch.c +5 -2
- data/vendor/libgit2/src/fetchhead.c +8 -4
- data/vendor/libgit2/src/filebuf.c +9 -7
- data/vendor/libgit2/src/filter.c +206 -110
- data/vendor/libgit2/src/filter.h +24 -5
- data/vendor/libgit2/src/futils.c +5 -5
- data/vendor/libgit2/src/futils.h +1 -1
- data/vendor/libgit2/src/graph.c +64 -9
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
- data/vendor/libgit2/src/hash/sha1/generic.h +1 -1
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
- data/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
- data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +0 -2
- data/vendor/libgit2/src/hash/sha1/win32.c +15 -11
- data/vendor/libgit2/src/hash.c +16 -13
- data/vendor/libgit2/src/hash.h +1 -1
- data/vendor/libgit2/src/hashsig.c +23 -10
- data/vendor/libgit2/src/ident.c +13 -3
- data/vendor/libgit2/src/ignore.c +35 -19
- data/vendor/libgit2/src/index.c +106 -70
- data/vendor/libgit2/src/index.h +1 -1
- data/vendor/libgit2/src/indexer.c +31 -29
- data/vendor/libgit2/src/integer.h +64 -2
- data/vendor/libgit2/src/iterator.c +36 -24
- data/vendor/libgit2/src/iterator.h +1 -1
- data/vendor/libgit2/src/khash.h +2 -11
- data/vendor/libgit2/src/{settings.c → libgit2.c} +117 -50
- data/vendor/libgit2/src/libgit2.h +15 -0
- data/vendor/libgit2/src/mailmap.c +23 -10
- data/vendor/libgit2/src/map.h +3 -3
- data/vendor/libgit2/src/merge.c +70 -30
- data/vendor/libgit2/src/merge.h +2 -1
- data/vendor/libgit2/src/merge_driver.c +19 -13
- data/vendor/libgit2/src/merge_file.c +11 -3
- data/vendor/libgit2/src/message.c +3 -1
- data/vendor/libgit2/src/midx.c +471 -10
- data/vendor/libgit2/src/midx.h +28 -1
- data/vendor/libgit2/src/mwindow.c +103 -59
- data/vendor/libgit2/src/mwindow.h +3 -3
- data/vendor/libgit2/src/net.c +127 -3
- data/vendor/libgit2/src/net.h +16 -2
- data/vendor/libgit2/src/netops.c +6 -4
- data/vendor/libgit2/src/netops.h +2 -2
- data/vendor/libgit2/src/notes.c +10 -10
- data/vendor/libgit2/src/object.c +22 -14
- data/vendor/libgit2/src/odb.c +285 -48
- data/vendor/libgit2/src/odb.h +16 -2
- data/vendor/libgit2/src/odb_loose.c +28 -18
- data/vendor/libgit2/src/odb_mempack.c +1 -1
- data/vendor/libgit2/src/odb_pack.c +391 -114
- data/vendor/libgit2/src/oid.c +5 -4
- data/vendor/libgit2/src/pack-objects.c +54 -48
- data/vendor/libgit2/src/pack.c +329 -119
- data/vendor/libgit2/src/pack.h +25 -7
- data/vendor/libgit2/src/patch.c +14 -7
- data/vendor/libgit2/src/patch_generate.c +2 -2
- data/vendor/libgit2/src/patch_parse.c +2 -1
- data/vendor/libgit2/src/path.c +98 -53
- data/vendor/libgit2/src/path.h +79 -6
- data/vendor/libgit2/src/pathspec.c +8 -8
- data/vendor/libgit2/src/pool.c +13 -7
- data/vendor/libgit2/src/posix.c +11 -3
- data/vendor/libgit2/src/reader.c +10 -6
- data/vendor/libgit2/src/rebase.c +93 -49
- data/vendor/libgit2/src/refdb.c +30 -13
- data/vendor/libgit2/src/refdb_fs.c +121 -69
- data/vendor/libgit2/src/reflog.c +19 -14
- data/vendor/libgit2/src/refs.c +76 -41
- data/vendor/libgit2/src/refspec.c +32 -12
- data/vendor/libgit2/src/remote.c +272 -102
- data/vendor/libgit2/src/remote.h +2 -1
- data/vendor/libgit2/src/repository.c +176 -103
- data/vendor/libgit2/src/repository.h +12 -1
- data/vendor/libgit2/src/reset.c +7 -6
- data/vendor/libgit2/src/revert.c +6 -2
- data/vendor/libgit2/src/revparse.c +14 -9
- data/vendor/libgit2/src/revwalk.c +32 -15
- data/vendor/libgit2/src/runtime.c +162 -0
- data/vendor/libgit2/src/runtime.h +62 -0
- data/vendor/libgit2/src/settings.h +11 -0
- data/vendor/libgit2/src/signature.c +6 -5
- data/vendor/libgit2/src/sortedcache.h +10 -8
- data/vendor/libgit2/src/stash.c +3 -1
- data/vendor/libgit2/src/status.c +7 -4
- data/vendor/libgit2/src/strarray.c +2 -1
- data/vendor/libgit2/src/streams/mbedtls.c +14 -17
- data/vendor/libgit2/src/streams/mbedtls.h +1 -1
- data/vendor/libgit2/src/streams/openssl.c +101 -201
- data/vendor/libgit2/src/streams/openssl.h +9 -1
- data/vendor/libgit2/src/streams/openssl_dynamic.c +309 -0
- data/vendor/libgit2/src/streams/openssl_dynamic.h +348 -0
- data/vendor/libgit2/src/streams/openssl_legacy.c +203 -0
- data/vendor/libgit2/src/streams/openssl_legacy.h +63 -0
- data/vendor/libgit2/src/streams/registry.c +5 -6
- data/vendor/libgit2/src/streams/socket.c +6 -2
- data/vendor/libgit2/src/streams/stransport.c +6 -3
- data/vendor/libgit2/src/streams/tls.c +5 -3
- data/vendor/libgit2/src/submodule.c +128 -62
- data/vendor/libgit2/src/submodule.h +9 -9
- data/vendor/libgit2/src/sysdir.c +4 -6
- data/vendor/libgit2/src/tag.c +47 -11
- data/vendor/libgit2/src/thread.c +140 -0
- data/vendor/libgit2/src/thread.h +479 -0
- data/vendor/libgit2/src/threadstate.c +83 -0
- data/vendor/libgit2/src/threadstate.h +24 -0
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +17 -13
- data/vendor/libgit2/src/transaction.c +19 -8
- data/vendor/libgit2/src/transport.c +3 -3
- data/vendor/libgit2/src/transports/auth.c +1 -1
- data/vendor/libgit2/src/transports/auth_negotiate.c +11 -4
- data/vendor/libgit2/src/transports/auth_ntlm.c +10 -6
- data/vendor/libgit2/src/transports/credential.c +15 -7
- data/vendor/libgit2/src/transports/git.c +1 -3
- data/vendor/libgit2/src/transports/http.c +19 -17
- data/vendor/libgit2/src/transports/http.h +1 -0
- data/vendor/libgit2/src/transports/httpclient.c +53 -26
- data/vendor/libgit2/src/transports/httpclient.h +1 -1
- data/vendor/libgit2/src/transports/local.c +3 -3
- data/vendor/libgit2/src/transports/smart.c +12 -7
- data/vendor/libgit2/src/transports/smart.h +1 -1
- data/vendor/libgit2/src/transports/smart_protocol.c +11 -5
- data/vendor/libgit2/src/transports/ssh.c +51 -17
- data/vendor/libgit2/src/transports/winhttp.c +41 -31
- data/vendor/libgit2/src/tree.c +100 -77
- data/vendor/libgit2/src/tree.h +1 -0
- data/vendor/libgit2/src/tsort.c +0 -2
- data/vendor/libgit2/src/unix/map.c +3 -1
- data/vendor/libgit2/src/unix/pthread.h +2 -1
- data/vendor/libgit2/src/utf8.c +150 -0
- data/vendor/libgit2/src/utf8.h +52 -0
- data/vendor/libgit2/src/util.c +53 -129
- data/vendor/libgit2/src/util.h +33 -39
- data/vendor/libgit2/src/vector.c +23 -19
- data/vendor/libgit2/src/vector.h +4 -2
- data/vendor/libgit2/src/win32/findfile.c +4 -2
- data/vendor/libgit2/src/win32/map.c +1 -1
- data/vendor/libgit2/src/win32/msvc-compat.h +9 -1
- data/vendor/libgit2/src/win32/path_w32.c +22 -24
- data/vendor/libgit2/src/win32/path_w32.h +0 -1
- data/vendor/libgit2/src/win32/posix_w32.c +7 -1
- data/vendor/libgit2/src/win32/precompiled.h +0 -1
- data/vendor/libgit2/src/win32/reparse.h +4 -4
- data/vendor/libgit2/src/win32/thread.c +24 -15
- data/vendor/libgit2/src/win32/thread.h +1 -1
- data/vendor/libgit2/src/win32/w32_buffer.c +3 -3
- data/vendor/libgit2/src/win32/w32_common.h +18 -9
- data/vendor/libgit2/src/win32/{w32_crtdbg_stacktrace.c → w32_leakcheck.c} +269 -33
- data/vendor/libgit2/src/win32/w32_leakcheck.h +222 -0
- data/vendor/libgit2/src/win32/w32_util.h +6 -6
- data/vendor/libgit2/src/worktree.c +27 -16
- data/vendor/libgit2/src/zstream.c +1 -1
- metadata +32 -16
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
- data/vendor/libgit2/src/buf_text.c +0 -316
- data/vendor/libgit2/src/buf_text.h +0 -122
- data/vendor/libgit2/src/global.c +0 -363
- data/vendor/libgit2/src/global.h +0 -41
- data/vendor/libgit2/src/thread-utils.c +0 -58
- data/vendor/libgit2/src/thread-utils.h +0 -369
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
- data/vendor/libgit2/src/win32/w32_stack.c +0 -188
- data/vendor/libgit2/src/win32/w32_stack.h +0 -140
data/vendor/libgit2/src/reflog.c
CHANGED
|
@@ -50,7 +50,9 @@ int git_reflog_read(git_reflog **reflog, git_repository *repo, const char *name
|
|
|
50
50
|
git_refdb *refdb;
|
|
51
51
|
int error;
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
GIT_ASSERT_ARG(reflog);
|
|
54
|
+
GIT_ASSERT_ARG(repo);
|
|
55
|
+
GIT_ASSERT_ARG(name);
|
|
54
56
|
|
|
55
57
|
if ((error = git_repository_refdb__weakptr(&refdb, repo)) < 0)
|
|
56
58
|
return error;
|
|
@@ -62,7 +64,8 @@ int git_reflog_write(git_reflog *reflog)
|
|
|
62
64
|
{
|
|
63
65
|
git_refdb *db;
|
|
64
66
|
|
|
65
|
-
|
|
67
|
+
GIT_ASSERT_ARG(reflog);
|
|
68
|
+
GIT_ASSERT_ARG(reflog->db);
|
|
66
69
|
|
|
67
70
|
db = reflog->db;
|
|
68
71
|
return db->backend->reflog_write(db->backend, reflog);
|
|
@@ -73,7 +76,9 @@ int git_reflog_append(git_reflog *reflog, const git_oid *new_oid, const git_sign
|
|
|
73
76
|
const git_reflog_entry *previous;
|
|
74
77
|
git_reflog_entry *entry;
|
|
75
78
|
|
|
76
|
-
|
|
79
|
+
GIT_ASSERT_ARG(reflog);
|
|
80
|
+
GIT_ASSERT_ARG(new_oid);
|
|
81
|
+
GIT_ASSERT_ARG(committer);
|
|
77
82
|
|
|
78
83
|
entry = git__calloc(1, sizeof(git_reflog_entry));
|
|
79
84
|
GIT_ERROR_CHECK_ALLOC(entry);
|
|
@@ -139,13 +144,13 @@ int git_reflog_delete(git_repository *repo, const char *name)
|
|
|
139
144
|
|
|
140
145
|
size_t git_reflog_entrycount(git_reflog *reflog)
|
|
141
146
|
{
|
|
142
|
-
|
|
147
|
+
GIT_ASSERT_ARG_WITH_RETVAL(reflog, 0);
|
|
143
148
|
return reflog->entries.length;
|
|
144
149
|
}
|
|
145
150
|
|
|
146
|
-
const git_reflog_entry *
|
|
151
|
+
const git_reflog_entry *git_reflog_entry_byindex(const git_reflog *reflog, size_t idx)
|
|
147
152
|
{
|
|
148
|
-
|
|
153
|
+
GIT_ASSERT_ARG_WITH_RETVAL(reflog, NULL);
|
|
149
154
|
|
|
150
155
|
if (idx >= reflog->entries.length)
|
|
151
156
|
return NULL;
|
|
@@ -154,27 +159,27 @@ const git_reflog_entry * git_reflog_entry_byindex(const git_reflog *reflog, size
|
|
|
154
159
|
&reflog->entries, reflog_inverse_index(idx, reflog->entries.length));
|
|
155
160
|
}
|
|
156
161
|
|
|
157
|
-
const git_oid *
|
|
162
|
+
const git_oid *git_reflog_entry_id_old(const git_reflog_entry *entry)
|
|
158
163
|
{
|
|
159
|
-
|
|
164
|
+
GIT_ASSERT_ARG_WITH_RETVAL(entry, NULL);
|
|
160
165
|
return &entry->oid_old;
|
|
161
166
|
}
|
|
162
167
|
|
|
163
|
-
const git_oid *
|
|
168
|
+
const git_oid *git_reflog_entry_id_new(const git_reflog_entry *entry)
|
|
164
169
|
{
|
|
165
|
-
|
|
170
|
+
GIT_ASSERT_ARG_WITH_RETVAL(entry, NULL);
|
|
166
171
|
return &entry->oid_cur;
|
|
167
172
|
}
|
|
168
173
|
|
|
169
|
-
const git_signature *
|
|
174
|
+
const git_signature *git_reflog_entry_committer(const git_reflog_entry *entry)
|
|
170
175
|
{
|
|
171
|
-
|
|
176
|
+
GIT_ASSERT_ARG_WITH_RETVAL(entry, NULL);
|
|
172
177
|
return entry->committer;
|
|
173
178
|
}
|
|
174
179
|
|
|
175
|
-
const char *
|
|
180
|
+
const char *git_reflog_entry_message(const git_reflog_entry *entry)
|
|
176
181
|
{
|
|
177
|
-
|
|
182
|
+
GIT_ASSERT_ARG_WITH_RETVAL(entry, NULL);
|
|
178
183
|
return entry->msg;
|
|
179
184
|
}
|
|
180
185
|
|
data/vendor/libgit2/src/refs.c
CHANGED
|
@@ -50,7 +50,8 @@ git_reference *git_reference__alloc_symbolic(
|
|
|
50
50
|
{
|
|
51
51
|
git_reference *ref;
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
GIT_ASSERT_ARG_WITH_RETVAL(name, NULL);
|
|
54
|
+
GIT_ASSERT_ARG_WITH_RETVAL(target, NULL);
|
|
54
55
|
|
|
55
56
|
ref = alloc_ref(name);
|
|
56
57
|
if (!ref)
|
|
@@ -73,7 +74,8 @@ git_reference *git_reference__alloc(
|
|
|
73
74
|
{
|
|
74
75
|
git_reference *ref;
|
|
75
76
|
|
|
76
|
-
|
|
77
|
+
GIT_ASSERT_ARG_WITH_RETVAL(name, NULL);
|
|
78
|
+
GIT_ASSERT_ARG_WITH_RETVAL(oid, NULL);
|
|
77
79
|
|
|
78
80
|
ref = alloc_ref(name);
|
|
79
81
|
if (!ref)
|
|
@@ -94,7 +96,8 @@ git_reference *git_reference__realloc(
|
|
|
94
96
|
size_t namelen, reflen;
|
|
95
97
|
git_reference *rewrite = NULL;
|
|
96
98
|
|
|
97
|
-
|
|
99
|
+
GIT_ASSERT_ARG_WITH_RETVAL(ptr_to_ref, NULL);
|
|
100
|
+
GIT_ASSERT_ARG_WITH_RETVAL(name, NULL);
|
|
98
101
|
|
|
99
102
|
namelen = strlen(name);
|
|
100
103
|
|
|
@@ -215,7 +218,9 @@ int git_reference_lookup_resolved(
|
|
|
215
218
|
git_refdb *refdb;
|
|
216
219
|
int error = 0;
|
|
217
220
|
|
|
218
|
-
|
|
221
|
+
GIT_ASSERT_ARG(ref_out);
|
|
222
|
+
GIT_ASSERT_ARG(repo);
|
|
223
|
+
GIT_ASSERT_ARG(name);
|
|
219
224
|
|
|
220
225
|
if ((error = reference_normalize_for_repo(normalized, repo, name, true)) < 0 ||
|
|
221
226
|
(error = git_repository_refdb__weakptr(&refdb, repo)) < 0 ||
|
|
@@ -239,7 +244,7 @@ int git_reference_lookup_resolved(
|
|
|
239
244
|
|
|
240
245
|
int git_reference_dwim(git_reference **out, git_repository *repo, const char *refname)
|
|
241
246
|
{
|
|
242
|
-
int error = 0, i;
|
|
247
|
+
int error = 0, i, valid;
|
|
243
248
|
bool fallbackmode = true, foundvalid = false;
|
|
244
249
|
git_reference *ref;
|
|
245
250
|
git_buf refnamebuf = GIT_BUF_INIT, name = GIT_BUF_INIT;
|
|
@@ -265,10 +270,11 @@ int git_reference_dwim(git_reference **out, git_repository *repo, const char *re
|
|
|
265
270
|
|
|
266
271
|
git_buf_clear(&refnamebuf);
|
|
267
272
|
|
|
268
|
-
if ((error = git_buf_printf(&refnamebuf, formatters[i], git_buf_cstr(&name))) < 0
|
|
273
|
+
if ((error = git_buf_printf(&refnamebuf, formatters[i], git_buf_cstr(&name))) < 0 ||
|
|
274
|
+
(error = git_reference_name_is_valid(&valid, git_buf_cstr(&refnamebuf))) < 0)
|
|
269
275
|
goto cleanup;
|
|
270
276
|
|
|
271
|
-
if (!
|
|
277
|
+
if (!valid) {
|
|
272
278
|
error = GIT_EINVALIDSPEC;
|
|
273
279
|
continue;
|
|
274
280
|
}
|
|
@@ -306,25 +312,25 @@ cleanup:
|
|
|
306
312
|
*/
|
|
307
313
|
git_reference_t git_reference_type(const git_reference *ref)
|
|
308
314
|
{
|
|
309
|
-
|
|
315
|
+
GIT_ASSERT_ARG(ref);
|
|
310
316
|
return ref->type;
|
|
311
317
|
}
|
|
312
318
|
|
|
313
319
|
const char *git_reference_name(const git_reference *ref)
|
|
314
320
|
{
|
|
315
|
-
|
|
321
|
+
GIT_ASSERT_ARG_WITH_RETVAL(ref, NULL);
|
|
316
322
|
return ref->name;
|
|
317
323
|
}
|
|
318
324
|
|
|
319
325
|
git_repository *git_reference_owner(const git_reference *ref)
|
|
320
326
|
{
|
|
321
|
-
|
|
327
|
+
GIT_ASSERT_ARG_WITH_RETVAL(ref, NULL);
|
|
322
328
|
return ref->db->repo;
|
|
323
329
|
}
|
|
324
330
|
|
|
325
331
|
const git_oid *git_reference_target(const git_reference *ref)
|
|
326
332
|
{
|
|
327
|
-
|
|
333
|
+
GIT_ASSERT_ARG_WITH_RETVAL(ref, NULL);
|
|
328
334
|
|
|
329
335
|
if (ref->type != GIT_REFERENCE_DIRECT)
|
|
330
336
|
return NULL;
|
|
@@ -334,7 +340,7 @@ const git_oid *git_reference_target(const git_reference *ref)
|
|
|
334
340
|
|
|
335
341
|
const git_oid *git_reference_target_peel(const git_reference *ref)
|
|
336
342
|
{
|
|
337
|
-
|
|
343
|
+
GIT_ASSERT_ARG_WITH_RETVAL(ref, NULL);
|
|
338
344
|
|
|
339
345
|
if (ref->type != GIT_REFERENCE_DIRECT || git_oid_is_zero(&ref->peel))
|
|
340
346
|
return NULL;
|
|
@@ -344,7 +350,7 @@ const git_oid *git_reference_target_peel(const git_reference *ref)
|
|
|
344
350
|
|
|
345
351
|
const char *git_reference_symbolic_target(const git_reference *ref)
|
|
346
352
|
{
|
|
347
|
-
|
|
353
|
+
GIT_ASSERT_ARG_WITH_RETVAL(ref, NULL);
|
|
348
354
|
|
|
349
355
|
if (ref->type != GIT_REFERENCE_SYMBOLIC)
|
|
350
356
|
return NULL;
|
|
@@ -369,8 +375,9 @@ static int reference__create(
|
|
|
369
375
|
git_reference *ref = NULL;
|
|
370
376
|
int error = 0;
|
|
371
377
|
|
|
372
|
-
|
|
373
|
-
|
|
378
|
+
GIT_ASSERT_ARG(repo);
|
|
379
|
+
GIT_ASSERT_ARG(name);
|
|
380
|
+
GIT_ASSERT_ARG(symbolic || signature);
|
|
374
381
|
|
|
375
382
|
if (ref_out)
|
|
376
383
|
*ref_out = NULL;
|
|
@@ -384,7 +391,7 @@ static int reference__create(
|
|
|
384
391
|
return error;
|
|
385
392
|
|
|
386
393
|
if (oid != NULL) {
|
|
387
|
-
|
|
394
|
+
GIT_ASSERT(symbolic == NULL);
|
|
388
395
|
|
|
389
396
|
if (!git_object__is_valid(repo, oid, GIT_OBJECT_ANY)) {
|
|
390
397
|
git_error_set(GIT_ERROR_REFERENCE,
|
|
@@ -456,7 +463,7 @@ int git_reference_create_matching(
|
|
|
456
463
|
int error;
|
|
457
464
|
git_signature *who = NULL;
|
|
458
465
|
|
|
459
|
-
|
|
466
|
+
GIT_ASSERT_ARG(id);
|
|
460
467
|
|
|
461
468
|
if ((error = git_reference__log_signature(&who, repo)) < 0)
|
|
462
469
|
return error;
|
|
@@ -491,7 +498,7 @@ int git_reference_symbolic_create_matching(
|
|
|
491
498
|
int error;
|
|
492
499
|
git_signature *who = NULL;
|
|
493
500
|
|
|
494
|
-
|
|
501
|
+
GIT_ASSERT_ARG(target);
|
|
495
502
|
|
|
496
503
|
if ((error = git_reference__log_signature(&who, repo)) < 0)
|
|
497
504
|
return error;
|
|
@@ -532,7 +539,9 @@ int git_reference_set_target(
|
|
|
532
539
|
int error;
|
|
533
540
|
git_repository *repo;
|
|
534
541
|
|
|
535
|
-
|
|
542
|
+
GIT_ASSERT_ARG(out);
|
|
543
|
+
GIT_ASSERT_ARG(ref);
|
|
544
|
+
GIT_ASSERT_ARG(id);
|
|
536
545
|
|
|
537
546
|
repo = ref->db->repo;
|
|
538
547
|
|
|
@@ -559,7 +568,9 @@ int git_reference_symbolic_set_target(
|
|
|
559
568
|
{
|
|
560
569
|
int error;
|
|
561
570
|
|
|
562
|
-
|
|
571
|
+
GIT_ASSERT_ARG(out);
|
|
572
|
+
GIT_ASSERT_ARG(ref);
|
|
573
|
+
GIT_ASSERT_ARG(target);
|
|
563
574
|
|
|
564
575
|
if ((error = ensure_is_an_updatable_symbolic_reference(ref)) < 0)
|
|
565
576
|
return error;
|
|
@@ -610,7 +621,8 @@ int git_reference_rename(
|
|
|
610
621
|
git_repository *repo;
|
|
611
622
|
int error;
|
|
612
623
|
|
|
613
|
-
|
|
624
|
+
GIT_ASSERT_ARG(out);
|
|
625
|
+
GIT_ASSERT_ARG(ref);
|
|
614
626
|
|
|
615
627
|
repo = git_reference_owner(ref);
|
|
616
628
|
|
|
@@ -776,7 +788,8 @@ int git_reference_list(
|
|
|
776
788
|
{
|
|
777
789
|
git_vector ref_list;
|
|
778
790
|
|
|
779
|
-
|
|
791
|
+
GIT_ASSERT_ARG(array);
|
|
792
|
+
GIT_ASSERT_ARG(repo);
|
|
780
793
|
|
|
781
794
|
array->strings = NULL;
|
|
782
795
|
array->count = 0;
|
|
@@ -860,7 +873,8 @@ static bool is_all_caps_and_underscore(const char *name, size_t len)
|
|
|
860
873
|
size_t i;
|
|
861
874
|
char c;
|
|
862
875
|
|
|
863
|
-
|
|
876
|
+
GIT_ASSERT_ARG(name);
|
|
877
|
+
GIT_ASSERT_ARG(len > 0);
|
|
864
878
|
|
|
865
879
|
for (i = 0; i < len; i++)
|
|
866
880
|
{
|
|
@@ -891,7 +905,7 @@ int git_reference__normalize_name(
|
|
|
891
905
|
git_path_iconv_t ic = GIT_PATH_ICONV_INIT;
|
|
892
906
|
#endif
|
|
893
907
|
|
|
894
|
-
|
|
908
|
+
GIT_ASSERT_ARG(name);
|
|
895
909
|
|
|
896
910
|
process_flags = flags;
|
|
897
911
|
current = (char *)name;
|
|
@@ -1023,7 +1037,8 @@ int git_reference_normalize_name(
|
|
|
1023
1037
|
goto cleanup;
|
|
1024
1038
|
}
|
|
1025
1039
|
|
|
1026
|
-
git_buf_copy_cstr(buffer_out, buffer_size, &buf)
|
|
1040
|
+
if ((error = git_buf_copy_cstr(buffer_out, buffer_size, &buf)) < 0)
|
|
1041
|
+
goto cleanup;
|
|
1027
1042
|
|
|
1028
1043
|
error = 0;
|
|
1029
1044
|
|
|
@@ -1039,7 +1054,9 @@ int git_reference_cmp(
|
|
|
1039
1054
|
const git_reference *ref2)
|
|
1040
1055
|
{
|
|
1041
1056
|
git_reference_t type1, type2;
|
|
1042
|
-
|
|
1057
|
+
|
|
1058
|
+
GIT_ASSERT_ARG(ref1);
|
|
1059
|
+
GIT_ASSERT_ARG(ref2);
|
|
1043
1060
|
|
|
1044
1061
|
type1 = git_reference_type(ref1);
|
|
1045
1062
|
type2 = git_reference_type(ref2);
|
|
@@ -1162,7 +1179,8 @@ int git_reference_has_log(git_repository *repo, const char *refname)
|
|
|
1162
1179
|
int error;
|
|
1163
1180
|
git_refdb *refdb;
|
|
1164
1181
|
|
|
1165
|
-
|
|
1182
|
+
GIT_ASSERT_ARG(repo);
|
|
1183
|
+
GIT_ASSERT_ARG(refname);
|
|
1166
1184
|
|
|
1167
1185
|
if ((error = git_repository_refdb__weakptr(&refdb, repo)) < 0)
|
|
1168
1186
|
return error;
|
|
@@ -1175,7 +1193,8 @@ int git_reference_ensure_log(git_repository *repo, const char *refname)
|
|
|
1175
1193
|
int error;
|
|
1176
1194
|
git_refdb *refdb;
|
|
1177
1195
|
|
|
1178
|
-
|
|
1196
|
+
GIT_ASSERT_ARG(repo);
|
|
1197
|
+
GIT_ASSERT_ARG(refname);
|
|
1179
1198
|
|
|
1180
1199
|
if ((error = git_repository_refdb__weakptr(&refdb, repo)) < 0)
|
|
1181
1200
|
return error;
|
|
@@ -1190,7 +1209,7 @@ int git_reference__is_branch(const char *ref_name)
|
|
|
1190
1209
|
|
|
1191
1210
|
int git_reference_is_branch(const git_reference *ref)
|
|
1192
1211
|
{
|
|
1193
|
-
|
|
1212
|
+
GIT_ASSERT_ARG(ref);
|
|
1194
1213
|
return git_reference__is_branch(ref->name);
|
|
1195
1214
|
}
|
|
1196
1215
|
|
|
@@ -1201,7 +1220,7 @@ int git_reference__is_remote(const char *ref_name)
|
|
|
1201
1220
|
|
|
1202
1221
|
int git_reference_is_remote(const git_reference *ref)
|
|
1203
1222
|
{
|
|
1204
|
-
|
|
1223
|
+
GIT_ASSERT_ARG(ref);
|
|
1205
1224
|
return git_reference__is_remote(ref->name);
|
|
1206
1225
|
}
|
|
1207
1226
|
|
|
@@ -1212,7 +1231,7 @@ int git_reference__is_tag(const char *ref_name)
|
|
|
1212
1231
|
|
|
1213
1232
|
int git_reference_is_tag(const git_reference *ref)
|
|
1214
1233
|
{
|
|
1215
|
-
|
|
1234
|
+
GIT_ASSERT_ARG(ref);
|
|
1216
1235
|
return git_reference__is_tag(ref->name);
|
|
1217
1236
|
}
|
|
1218
1237
|
|
|
@@ -1223,7 +1242,7 @@ int git_reference__is_note(const char *ref_name)
|
|
|
1223
1242
|
|
|
1224
1243
|
int git_reference_is_note(const git_reference *ref)
|
|
1225
1244
|
{
|
|
1226
|
-
|
|
1245
|
+
GIT_ASSERT_ARG(ref);
|
|
1227
1246
|
return git_reference__is_note(ref->name);
|
|
1228
1247
|
}
|
|
1229
1248
|
|
|
@@ -1245,7 +1264,7 @@ int git_reference_peel(
|
|
|
1245
1264
|
git_object *target = NULL;
|
|
1246
1265
|
int error;
|
|
1247
1266
|
|
|
1248
|
-
|
|
1267
|
+
GIT_ASSERT_ARG(ref);
|
|
1249
1268
|
|
|
1250
1269
|
if (ref->type == GIT_REFERENCE_DIRECT) {
|
|
1251
1270
|
resolved = ref;
|
|
@@ -1294,6 +1313,8 @@ int git_reference__name_is_valid(
|
|
|
1294
1313
|
{
|
|
1295
1314
|
int error;
|
|
1296
1315
|
|
|
1316
|
+
GIT_ASSERT(valid && refname);
|
|
1317
|
+
|
|
1297
1318
|
*valid = 0;
|
|
1298
1319
|
|
|
1299
1320
|
error = git_reference__normalize_name(NULL, refname, flags);
|
|
@@ -1306,13 +1327,9 @@ int git_reference__name_is_valid(
|
|
|
1306
1327
|
return error;
|
|
1307
1328
|
}
|
|
1308
1329
|
|
|
1309
|
-
int
|
|
1330
|
+
int git_reference_name_is_valid(int *valid, const char *refname)
|
|
1310
1331
|
{
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
git_reference__name_is_valid(&valid, refname, GIT_REFERENCE_FORMAT_ALLOW_ONELEVEL);
|
|
1314
|
-
|
|
1315
|
-
return valid;
|
|
1332
|
+
return git_reference__name_is_valid(valid, refname, GIT_REFERENCE_FORMAT_ALLOW_ONELEVEL);
|
|
1316
1333
|
}
|
|
1317
1334
|
|
|
1318
1335
|
const char *git_reference__shorthand(const char *name)
|
|
@@ -1326,7 +1343,7 @@ const char *git_reference__shorthand(const char *name)
|
|
|
1326
1343
|
else if (!git__prefixcmp(name, GIT_REFS_DIR))
|
|
1327
1344
|
return name + strlen(GIT_REFS_DIR);
|
|
1328
1345
|
|
|
1329
|
-
/* No shorthands are
|
|
1346
|
+
/* No shorthands are available, so just return the name. */
|
|
1330
1347
|
return name;
|
|
1331
1348
|
}
|
|
1332
1349
|
|
|
@@ -1339,7 +1356,10 @@ int git_reference__is_unborn_head(bool *unborn, const git_reference *ref, git_re
|
|
|
1339
1356
|
{
|
|
1340
1357
|
int error;
|
|
1341
1358
|
git_reference *tmp_ref;
|
|
1342
|
-
|
|
1359
|
+
|
|
1360
|
+
GIT_ASSERT_ARG(unborn);
|
|
1361
|
+
GIT_ASSERT_ARG(ref);
|
|
1362
|
+
GIT_ASSERT_ARG(repo);
|
|
1343
1363
|
|
|
1344
1364
|
if (ref->type == GIT_REFERENCE_DIRECT) {
|
|
1345
1365
|
*unborn = 0;
|
|
@@ -1358,3 +1378,18 @@ int git_reference__is_unborn_head(bool *unborn, const git_reference *ref, git_re
|
|
|
1358
1378
|
|
|
1359
1379
|
return 0;
|
|
1360
1380
|
}
|
|
1381
|
+
|
|
1382
|
+
/* Deprecated functions */
|
|
1383
|
+
|
|
1384
|
+
#ifndef GIT_DEPRECATE_HARD
|
|
1385
|
+
|
|
1386
|
+
int git_reference_is_valid_name(const char *refname)
|
|
1387
|
+
{
|
|
1388
|
+
int valid = 0;
|
|
1389
|
+
|
|
1390
|
+
git_reference__name_is_valid(&valid, refname, GIT_REFERENCE_FORMAT_ALLOW_ONELEVEL);
|
|
1391
|
+
|
|
1392
|
+
return valid;
|
|
1393
|
+
}
|
|
1394
|
+
|
|
1395
|
+
#endif
|
|
@@ -24,7 +24,8 @@ int git_refspec__parse(git_refspec *refspec, const char *input, bool is_fetch)
|
|
|
24
24
|
int valid = 0;
|
|
25
25
|
unsigned int flags;
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
GIT_ASSERT_ARG(refspec);
|
|
28
|
+
GIT_ASSERT_ARG(input);
|
|
28
29
|
|
|
29
30
|
memset(refspec, 0x0, sizeof(git_refspec));
|
|
30
31
|
refspec->push = !is_fetch;
|
|
@@ -180,7 +181,8 @@ void git_refspec__dispose(git_refspec *refspec)
|
|
|
180
181
|
int git_refspec_parse(git_refspec **out_refspec, const char *input, int is_fetch)
|
|
181
182
|
{
|
|
182
183
|
git_refspec *refspec;
|
|
183
|
-
|
|
184
|
+
GIT_ASSERT_ARG(out_refspec);
|
|
185
|
+
GIT_ASSERT_ARG(input);
|
|
184
186
|
|
|
185
187
|
*out_refspec = NULL;
|
|
186
188
|
|
|
@@ -219,7 +221,7 @@ const char *git_refspec_string(const git_refspec *refspec)
|
|
|
219
221
|
|
|
220
222
|
int git_refspec_force(const git_refspec *refspec)
|
|
221
223
|
{
|
|
222
|
-
|
|
224
|
+
GIT_ASSERT_ARG(refspec);
|
|
223
225
|
|
|
224
226
|
return refspec->force;
|
|
225
227
|
}
|
|
@@ -245,8 +247,11 @@ static int refspec_transform(
|
|
|
245
247
|
{
|
|
246
248
|
const char *from_star, *to_star;
|
|
247
249
|
size_t replacement_len, star_offset;
|
|
250
|
+
int error;
|
|
251
|
+
|
|
252
|
+
if ((error = git_buf_sanitize(out)) < 0)
|
|
253
|
+
return error;
|
|
248
254
|
|
|
249
|
-
git_buf_sanitize(out);
|
|
250
255
|
git_buf_clear(out);
|
|
251
256
|
|
|
252
257
|
/*
|
|
@@ -258,7 +263,7 @@ static int refspec_transform(
|
|
|
258
263
|
from_star = strchr(from, '*');
|
|
259
264
|
to_star = strchr(to, '*');
|
|
260
265
|
|
|
261
|
-
|
|
266
|
+
GIT_ASSERT(from_star && to_star);
|
|
262
267
|
|
|
263
268
|
/* star offset, both in 'from' and in 'name' */
|
|
264
269
|
star_offset = from_star - from;
|
|
@@ -278,8 +283,14 @@ static int refspec_transform(
|
|
|
278
283
|
|
|
279
284
|
int git_refspec_transform(git_buf *out, const git_refspec *spec, const char *name)
|
|
280
285
|
{
|
|
281
|
-
|
|
282
|
-
|
|
286
|
+
int error;
|
|
287
|
+
|
|
288
|
+
GIT_ASSERT_ARG(out);
|
|
289
|
+
GIT_ASSERT_ARG(spec);
|
|
290
|
+
GIT_ASSERT_ARG(name);
|
|
291
|
+
|
|
292
|
+
if ((error = git_buf_sanitize(out)) < 0)
|
|
293
|
+
return error;
|
|
283
294
|
|
|
284
295
|
if (!git_refspec_src_matches(spec, name)) {
|
|
285
296
|
git_error_set(GIT_ERROR_INVALID, "ref '%s' doesn't match the source", name);
|
|
@@ -294,8 +305,14 @@ int git_refspec_transform(git_buf *out, const git_refspec *spec, const char *nam
|
|
|
294
305
|
|
|
295
306
|
int git_refspec_rtransform(git_buf *out, const git_refspec *spec, const char *name)
|
|
296
307
|
{
|
|
297
|
-
|
|
298
|
-
|
|
308
|
+
int error;
|
|
309
|
+
|
|
310
|
+
GIT_ASSERT_ARG(out);
|
|
311
|
+
GIT_ASSERT_ARG(spec);
|
|
312
|
+
GIT_ASSERT_ARG(name);
|
|
313
|
+
|
|
314
|
+
if ((error = git_buf_sanitize(out)) < 0)
|
|
315
|
+
return error;
|
|
299
316
|
|
|
300
317
|
if (!git_refspec_dst_matches(spec, name)) {
|
|
301
318
|
git_error_set(GIT_ERROR_INVALID, "ref '%s' doesn't match the destination", name);
|
|
@@ -322,14 +339,15 @@ int git_refspec__serialize(git_buf *out, const git_refspec *refspec)
|
|
|
322
339
|
|
|
323
340
|
int git_refspec_is_wildcard(const git_refspec *spec)
|
|
324
341
|
{
|
|
325
|
-
|
|
342
|
+
GIT_ASSERT_ARG(spec);
|
|
343
|
+
GIT_ASSERT_ARG(spec->src);
|
|
326
344
|
|
|
327
345
|
return (spec->src[strlen(spec->src) - 1] == '*');
|
|
328
346
|
}
|
|
329
347
|
|
|
330
348
|
git_direction git_refspec_direction(const git_refspec *spec)
|
|
331
349
|
{
|
|
332
|
-
|
|
350
|
+
GIT_ASSERT_ARG(spec);
|
|
333
351
|
|
|
334
352
|
return spec->push;
|
|
335
353
|
}
|
|
@@ -348,7 +366,9 @@ int git_refspec__dwim_one(git_vector *out, git_refspec *spec, git_vector *refs)
|
|
|
348
366
|
NULL
|
|
349
367
|
};
|
|
350
368
|
|
|
351
|
-
|
|
369
|
+
GIT_ASSERT_ARG(out);
|
|
370
|
+
GIT_ASSERT_ARG(spec);
|
|
371
|
+
GIT_ASSERT_ARG(refs);
|
|
352
372
|
|
|
353
373
|
cur = git__calloc(1, sizeof(git_refspec));
|
|
354
374
|
GIT_ERROR_CHECK_ALLOC(cur);
|