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
|
@@ -86,6 +86,7 @@ static struct map_data _configmaps[] = {
|
|
|
86
86
|
{"core.protecthfs", NULL, 0, GIT_PROTECTHFS_DEFAULT },
|
|
87
87
|
{"core.protectntfs", NULL, 0, GIT_PROTECTNTFS_DEFAULT },
|
|
88
88
|
{"core.fsyncobjectfiles", NULL, 0, GIT_FSYNCOBJECTFILES_DEFAULT },
|
|
89
|
+
{"core.longpaths", NULL, 0, GIT_LONGPATHS_DEFAULT },
|
|
89
90
|
};
|
|
90
91
|
|
|
91
92
|
int git_config__configmap_lookup(int *out, git_config *config, git_configmap_item item)
|
|
@@ -111,20 +112,21 @@ int git_config__configmap_lookup(int *out, git_config *config, git_configmap_ite
|
|
|
111
112
|
|
|
112
113
|
int git_repository__configmap_lookup(int *out, git_repository *repo, git_configmap_item item)
|
|
113
114
|
{
|
|
114
|
-
intptr_t value = repo->configmap_cache[(int)item];
|
|
115
|
+
intptr_t value = (intptr_t)git_atomic_load(repo->configmap_cache[(int)item]);
|
|
115
116
|
|
|
116
117
|
*out = (int)value;
|
|
117
118
|
|
|
118
119
|
if (value == GIT_CONFIGMAP_NOT_CACHED) {
|
|
119
|
-
int error;
|
|
120
120
|
git_config *config;
|
|
121
|
+
intptr_t oldval = value;
|
|
122
|
+
int error;
|
|
121
123
|
|
|
122
124
|
if ((error = git_repository_config__weakptr(&config, repo)) < 0 ||
|
|
123
125
|
(error = git_config__configmap_lookup(out, config, item)) < 0)
|
|
124
126
|
return error;
|
|
125
127
|
|
|
126
128
|
value = *out;
|
|
127
|
-
repo->configmap_cache[(int)item]
|
|
129
|
+
git_atomic_compare_and_swap(&repo->configmap_cache[(int)item], (void *)oldval, (void *)value);
|
|
128
130
|
}
|
|
129
131
|
|
|
130
132
|
return 0;
|
|
@@ -164,23 +164,27 @@ out:
|
|
|
164
164
|
return error;
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
+
static void config_file_clear_includes(config_file_backend* cfg)
|
|
168
|
+
{
|
|
169
|
+
config_file *include;
|
|
170
|
+
uint32_t i;
|
|
171
|
+
|
|
172
|
+
git_array_foreach(cfg->file.includes, i, include)
|
|
173
|
+
config_file_clear(include);
|
|
174
|
+
git_array_clear(cfg->file.includes);
|
|
175
|
+
}
|
|
176
|
+
|
|
167
177
|
static int config_file_set_entries(git_config_backend *cfg, git_config_entries *entries)
|
|
168
178
|
{
|
|
169
179
|
config_file_backend *b = GIT_CONTAINER_OF(cfg, config_file_backend, parent);
|
|
170
180
|
git_config_entries *old = NULL;
|
|
171
|
-
config_file *include;
|
|
172
181
|
int error;
|
|
173
|
-
uint32_t i;
|
|
174
182
|
|
|
175
183
|
if (b->parent.readonly) {
|
|
176
184
|
git_error_set(GIT_ERROR_CONFIG, "this backend is read-only");
|
|
177
185
|
return -1;
|
|
178
186
|
}
|
|
179
187
|
|
|
180
|
-
git_array_foreach(b->file.includes, i, include)
|
|
181
|
-
config_file_clear(include);
|
|
182
|
-
git_array_clear(b->file.includes);
|
|
183
|
-
|
|
184
188
|
if ((error = git_mutex_lock(&b->values_mutex)) < 0) {
|
|
185
189
|
git_error_set(GIT_ERROR_OS, "failed to lock config backend");
|
|
186
190
|
goto out;
|
|
@@ -202,6 +206,8 @@ static int config_file_refresh_from_buffer(git_config_backend *cfg, const char *
|
|
|
202
206
|
git_config_entries *entries = NULL;
|
|
203
207
|
int error;
|
|
204
208
|
|
|
209
|
+
config_file_clear_includes(b);
|
|
210
|
+
|
|
205
211
|
if ((error = git_config_entries_new(&entries)) < 0 ||
|
|
206
212
|
(error = config_file_read_buffer(entries, b->repo, &b->file,
|
|
207
213
|
b->level, 0, buf, buflen)) < 0 ||
|
|
@@ -229,6 +235,8 @@ static int config_file_refresh(git_config_backend *cfg)
|
|
|
229
235
|
if (!modified)
|
|
230
236
|
return 0;
|
|
231
237
|
|
|
238
|
+
config_file_clear_includes(b);
|
|
239
|
+
|
|
232
240
|
if ((error = git_config_entries_new(&entries)) < 0 ||
|
|
233
241
|
(error = config_file_read(entries, b->repo, &b->file, b->level, 0)) < 0 ||
|
|
234
242
|
(error = config_file_set_entries(cfg, entries)) < 0)
|
|
@@ -365,7 +373,7 @@ static int config_file_set_multivar(
|
|
|
365
373
|
int result;
|
|
366
374
|
char *key;
|
|
367
375
|
|
|
368
|
-
|
|
376
|
+
GIT_ASSERT_ARG(regexp);
|
|
369
377
|
|
|
370
378
|
if ((result = git_config__normalize_name(name, &key)) < 0)
|
|
371
379
|
return result;
|
|
@@ -531,7 +539,7 @@ static char *escape_value(const char *ptr)
|
|
|
531
539
|
size_t len;
|
|
532
540
|
const char *esc;
|
|
533
541
|
|
|
534
|
-
|
|
542
|
+
GIT_ASSERT_ARG_WITH_RETVAL(ptr, NULL);
|
|
535
543
|
|
|
536
544
|
len = strlen(ptr);
|
|
537
545
|
if (!len)
|
|
@@ -7,8 +7,6 @@
|
|
|
7
7
|
|
|
8
8
|
#include "config_parse.h"
|
|
9
9
|
|
|
10
|
-
#include "buf_text.h"
|
|
11
|
-
|
|
12
10
|
#include <ctype.h>
|
|
13
11
|
|
|
14
12
|
const char *git_config_escapes = "ntb\"\\";
|
|
@@ -187,7 +185,7 @@ static int parse_section_header(git_config_parser *reader, char **section_out)
|
|
|
187
185
|
|
|
188
186
|
/* Make sure we were given a section header */
|
|
189
187
|
c = line[pos++];
|
|
190
|
-
|
|
188
|
+
GIT_ASSERT(c == '[');
|
|
191
189
|
|
|
192
190
|
c = line[pos++];
|
|
193
191
|
|
|
@@ -230,10 +228,10 @@ fail_parse:
|
|
|
230
228
|
static int skip_bom(git_parse_ctx *parser)
|
|
231
229
|
{
|
|
232
230
|
git_buf buf = GIT_BUF_INIT_CONST(parser->content, parser->content_len);
|
|
233
|
-
|
|
234
|
-
int bom_offset =
|
|
231
|
+
git_buf_bom_t bom;
|
|
232
|
+
int bom_offset = git_buf_detect_bom(&bom, &buf);
|
|
235
233
|
|
|
236
|
-
if (bom ==
|
|
234
|
+
if (bom == GIT_BUF_BOM_UTF8)
|
|
237
235
|
git_parse_advance_chars(parser, bom_offset);
|
|
238
236
|
|
|
239
237
|
/* TODO: reference implementation is pretty stupid with BoM */
|
data/vendor/libgit2/src/crlf.c
CHANGED
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
#include "futils.h"
|
|
16
16
|
#include "hash.h"
|
|
17
17
|
#include "filter.h"
|
|
18
|
-
#include "buf_text.h"
|
|
19
18
|
#include "repository.h"
|
|
20
19
|
|
|
21
20
|
typedef enum {
|
|
@@ -219,7 +218,7 @@ static int crlf_apply_to_odb(
|
|
|
219
218
|
if (ca->crlf_action == GIT_CRLF_BINARY || !git_buf_len(from))
|
|
220
219
|
return GIT_PASSTHROUGH;
|
|
221
220
|
|
|
222
|
-
is_binary =
|
|
221
|
+
is_binary = git_buf_gather_text_stats(&stats, from, false);
|
|
223
222
|
|
|
224
223
|
/* Heuristics to see if we can skip the conversion.
|
|
225
224
|
* Straight from Core Git.
|
|
@@ -247,7 +246,7 @@ static int crlf_apply_to_odb(
|
|
|
247
246
|
return GIT_PASSTHROUGH;
|
|
248
247
|
|
|
249
248
|
/* Actually drop the carriage returns */
|
|
250
|
-
return
|
|
249
|
+
return git_buf_crlf_to_lf(to, from);
|
|
251
250
|
}
|
|
252
251
|
|
|
253
252
|
static int crlf_apply_to_workdir(
|
|
@@ -262,7 +261,7 @@ static int crlf_apply_to_workdir(
|
|
|
262
261
|
if (git_buf_len(from) == 0 || output_eol(ca) != GIT_EOL_CRLF)
|
|
263
262
|
return GIT_PASSTHROUGH;
|
|
264
263
|
|
|
265
|
-
is_binary =
|
|
264
|
+
is_binary = git_buf_gather_text_stats(&stats, from, false);
|
|
266
265
|
|
|
267
266
|
/* If there are no LFs, or all LFs are part of a CRLF, nothing to do */
|
|
268
267
|
if (stats.lf == 0 || stats.lf == stats.crlf)
|
|
@@ -281,7 +280,7 @@ static int crlf_apply_to_workdir(
|
|
|
281
280
|
return GIT_PASSTHROUGH;
|
|
282
281
|
}
|
|
283
282
|
|
|
284
|
-
return
|
|
283
|
+
return git_buf_lf_to_crlf(to, from);
|
|
285
284
|
}
|
|
286
285
|
|
|
287
286
|
static int convert_attrs(
|
|
@@ -387,6 +386,17 @@ static int crlf_apply(
|
|
|
387
386
|
return crlf_apply_to_odb(*payload, to, from, src);
|
|
388
387
|
}
|
|
389
388
|
|
|
389
|
+
static int crlf_stream(
|
|
390
|
+
git_writestream **out,
|
|
391
|
+
git_filter *self,
|
|
392
|
+
void **payload,
|
|
393
|
+
const git_filter_source *src,
|
|
394
|
+
git_writestream *next)
|
|
395
|
+
{
|
|
396
|
+
return git_filter_buffered_stream_new(out,
|
|
397
|
+
self, crlf_apply, NULL, payload, src, next);
|
|
398
|
+
}
|
|
399
|
+
|
|
390
400
|
static void crlf_cleanup(
|
|
391
401
|
git_filter *self,
|
|
392
402
|
void *payload)
|
|
@@ -406,7 +416,7 @@ git_filter *git_crlf_filter_new(void)
|
|
|
406
416
|
f->f.initialize = NULL;
|
|
407
417
|
f->f.shutdown = git_filter_free;
|
|
408
418
|
f->f.check = crlf_check;
|
|
409
|
-
f->f.
|
|
419
|
+
f->f.stream = crlf_stream;
|
|
410
420
|
f->f.cleanup = crlf_cleanup;
|
|
411
421
|
|
|
412
422
|
return (git_filter *)f;
|
data/vendor/libgit2/src/date.c
CHANGED
|
@@ -204,7 +204,7 @@ static int is_date(int year, int month, int day, struct tm *now_tm, time_t now,
|
|
|
204
204
|
if (month > 0 && month < 13 && day > 0 && day < 32) {
|
|
205
205
|
struct tm check = *tm;
|
|
206
206
|
struct tm *r = (now_tm ? &check : tm);
|
|
207
|
-
|
|
207
|
+
git_time_t specified;
|
|
208
208
|
|
|
209
209
|
r->tm_mon = month - 1;
|
|
210
210
|
r->tm_mday = day;
|
|
@@ -722,7 +722,7 @@ static const char *approxidate_alpha(const char *date, struct tm *tm, struct tm
|
|
|
722
722
|
while (tl->type) {
|
|
723
723
|
size_t len = strlen(tl->type);
|
|
724
724
|
if (match_string(date, tl->type) >= len-1) {
|
|
725
|
-
update_tm(tm, now, tl->length * *num);
|
|
725
|
+
update_tm(tm, now, tl->length * (unsigned long)*num);
|
|
726
726
|
*num = 0;
|
|
727
727
|
*touched = 1;
|
|
728
728
|
return end;
|
|
@@ -881,7 +881,8 @@ int git__date_rfc2822_fmt(char *out, size_t len, const git_time *date)
|
|
|
881
881
|
struct tm gmt;
|
|
882
882
|
time_t t;
|
|
883
883
|
|
|
884
|
-
|
|
884
|
+
GIT_ASSERT_ARG(out);
|
|
885
|
+
GIT_ASSERT_ARG(date);
|
|
885
886
|
|
|
886
887
|
t = (time_t) (date->time + date->offset * 60);
|
|
887
888
|
|
data/vendor/libgit2/src/delta.c
CHANGED
|
@@ -655,7 +655,8 @@ int git_describe_commit(
|
|
|
655
655
|
int error = -1;
|
|
656
656
|
git_describe_options normalized;
|
|
657
657
|
|
|
658
|
-
|
|
658
|
+
GIT_ASSERT_ARG(result);
|
|
659
|
+
GIT_ASSERT_ARG(committish);
|
|
659
660
|
|
|
660
661
|
data.result = git__calloc(1, sizeof(git_describe_result));
|
|
661
662
|
GIT_ERROR_CHECK_ALLOC(data.result);
|
|
@@ -775,12 +776,14 @@ int git_describe_format(git_buf *out, const git_describe_result *result, const g
|
|
|
775
776
|
struct commit_name *name;
|
|
776
777
|
git_describe_format_options opts;
|
|
777
778
|
|
|
778
|
-
|
|
779
|
+
GIT_ASSERT_ARG(out);
|
|
780
|
+
GIT_ASSERT_ARG(result);
|
|
779
781
|
|
|
780
782
|
GIT_ERROR_CHECK_VERSION(given, GIT_DESCRIBE_FORMAT_OPTIONS_VERSION, "git_describe_format_options");
|
|
781
783
|
normalize_format_options(&opts, given);
|
|
782
784
|
|
|
783
|
-
git_buf_sanitize(out)
|
|
785
|
+
if ((error = git_buf_sanitize(out)) < 0)
|
|
786
|
+
return error;
|
|
784
787
|
|
|
785
788
|
|
|
786
789
|
if (opts.always_use_long_format && opts.abbreviated_size == 0) {
|
data/vendor/libgit2/src/diff.c
CHANGED
|
@@ -77,7 +77,7 @@ void git_diff_addref(git_diff *diff)
|
|
|
77
77
|
|
|
78
78
|
size_t git_diff_num_deltas(const git_diff *diff)
|
|
79
79
|
{
|
|
80
|
-
|
|
80
|
+
GIT_ASSERT_ARG(diff);
|
|
81
81
|
return diff->deltas.length;
|
|
82
82
|
}
|
|
83
83
|
|
|
@@ -86,7 +86,7 @@ size_t git_diff_num_deltas_of_type(const git_diff *diff, git_delta_t type)
|
|
|
86
86
|
size_t i, count = 0;
|
|
87
87
|
const git_diff_delta *delta;
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
GIT_ASSERT_ARG(diff);
|
|
90
90
|
|
|
91
91
|
git_vector_foreach(&diff->deltas, i, delta) {
|
|
92
92
|
count += (delta->status == type);
|
|
@@ -97,7 +97,7 @@ size_t git_diff_num_deltas_of_type(const git_diff *diff, git_delta_t type)
|
|
|
97
97
|
|
|
98
98
|
const git_diff_delta *git_diff_get_delta(const git_diff *diff, size_t idx)
|
|
99
99
|
{
|
|
100
|
-
|
|
100
|
+
GIT_ASSERT_ARG_WITH_RETVAL(diff, NULL);
|
|
101
101
|
return git_vector_get(&diff->deltas, idx);
|
|
102
102
|
}
|
|
103
103
|
|
|
@@ -108,7 +108,7 @@ int git_diff_is_sorted_icase(const git_diff *diff)
|
|
|
108
108
|
|
|
109
109
|
int git_diff_get_perfdata(git_diff_perfdata *out, const git_diff *diff)
|
|
110
110
|
{
|
|
111
|
-
|
|
111
|
+
GIT_ASSERT_ARG(out);
|
|
112
112
|
GIT_ERROR_CHECK_VERSION(out, GIT_DIFF_PERFDATA_VERSION, "git_diff_perfdata");
|
|
113
113
|
out->stat_calls = diff->perf.stat_calls;
|
|
114
114
|
out->oid_calculations = diff->perf.oid_calculations;
|
|
@@ -127,7 +127,7 @@ int git_diff_foreach(
|
|
|
127
127
|
git_diff_delta *delta;
|
|
128
128
|
size_t idx;
|
|
129
129
|
|
|
130
|
-
|
|
130
|
+
GIT_ASSERT_ARG(diff);
|
|
131
131
|
|
|
132
132
|
git_vector_foreach(&diff->deltas, idx, delta) {
|
|
133
133
|
git_patch *patch;
|
|
@@ -243,8 +243,9 @@ int git_diff_format_email(
|
|
|
243
243
|
size_t allocsize;
|
|
244
244
|
int error;
|
|
245
245
|
|
|
246
|
-
|
|
247
|
-
|
|
246
|
+
GIT_ASSERT_ARG(out);
|
|
247
|
+
GIT_ASSERT_ARG(diff);
|
|
248
|
+
GIT_ASSERT_ARG(opts && opts->summary && opts->id && opts->author);
|
|
248
249
|
|
|
249
250
|
GIT_ERROR_CHECK_VERSION(opts,
|
|
250
251
|
GIT_DIFF_FORMAT_EMAIL_OPTIONS_VERSION,
|
|
@@ -326,7 +327,9 @@ int git_diff_commit_as_email(
|
|
|
326
327
|
GIT_DIFF_FORMAT_EMAIL_OPTIONS_INIT;
|
|
327
328
|
int error;
|
|
328
329
|
|
|
329
|
-
|
|
330
|
+
GIT_ASSERT_ARG(out);
|
|
331
|
+
GIT_ASSERT_ARG(repo);
|
|
332
|
+
GIT_ASSERT_ARG(commit);
|
|
330
333
|
|
|
331
334
|
opts.flags = flags;
|
|
332
335
|
opts.patch_no = patch_no;
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
#include "diff.h"
|
|
14
14
|
#include "strmap.h"
|
|
15
15
|
#include "map.h"
|
|
16
|
-
#include "buf_text.h"
|
|
17
16
|
#include "config.h"
|
|
18
17
|
#include "regexp.h"
|
|
19
18
|
#include "repository.h"
|
|
@@ -142,18 +141,23 @@ static int diff_driver_funcname(const git_config_entry *entry, void *payload)
|
|
|
142
141
|
static git_diff_driver_registry *git_repository_driver_registry(
|
|
143
142
|
git_repository *repo)
|
|
144
143
|
{
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
144
|
+
git_diff_driver_registry *reg = git_atomic_load(repo->diff_drivers), *newreg;
|
|
145
|
+
if (reg)
|
|
146
|
+
return reg;
|
|
148
147
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
if (!repo->diff_drivers)
|
|
148
|
+
newreg = git_diff_driver_registry_new();
|
|
149
|
+
if (!newreg) {
|
|
154
150
|
git_error_set(GIT_ERROR_REPOSITORY, "unable to create diff driver registry");
|
|
155
|
-
|
|
156
|
-
|
|
151
|
+
return newreg;
|
|
152
|
+
}
|
|
153
|
+
reg = git_atomic_compare_and_swap(&repo->diff_drivers, NULL, newreg);
|
|
154
|
+
if (!reg) {
|
|
155
|
+
reg = newreg;
|
|
156
|
+
} else {
|
|
157
|
+
/* if we race, free losing allocation */
|
|
158
|
+
git_diff_driver_registry_free(newreg);
|
|
159
|
+
}
|
|
160
|
+
return reg;
|
|
157
161
|
}
|
|
158
162
|
|
|
159
163
|
static int diff_driver_alloc(
|
|
@@ -358,7 +362,7 @@ int git_diff_driver_lookup(
|
|
|
358
362
|
int error = 0;
|
|
359
363
|
const char *values[1], *attrs[] = { "diff" };
|
|
360
364
|
|
|
361
|
-
|
|
365
|
+
GIT_ASSERT_ARG(out);
|
|
362
366
|
*out = NULL;
|
|
363
367
|
|
|
364
368
|
if (!repo || !path || !strlen(path))
|
|
@@ -390,13 +394,13 @@ int git_diff_driver_lookup(
|
|
|
390
394
|
|
|
391
395
|
void git_diff_driver_free(git_diff_driver *driver)
|
|
392
396
|
{
|
|
393
|
-
|
|
397
|
+
git_diff_driver_pattern *pat;
|
|
394
398
|
|
|
395
399
|
if (!driver)
|
|
396
400
|
return;
|
|
397
401
|
|
|
398
|
-
|
|
399
|
-
git_regexp_dispose(&
|
|
402
|
+
while ((pat = git_array_pop(driver->fn_patterns)) != NULL)
|
|
403
|
+
git_regexp_dispose(&pat->re);
|
|
400
404
|
git_array_clear(driver->fn_patterns);
|
|
401
405
|
|
|
402
406
|
git_regexp_dispose(&driver->word_pattern);
|
|
@@ -428,8 +432,8 @@ int git_diff_driver_content_is_binary(
|
|
|
428
432
|
* let's just use the simple NUL-byte detection that core git uses.
|
|
429
433
|
*/
|
|
430
434
|
|
|
431
|
-
/* previously was: if (
|
|
432
|
-
if (
|
|
435
|
+
/* previously was: if (git_buf_is_binary(&search)) */
|
|
436
|
+
if (git_buf_contains_nul(&search))
|
|
433
437
|
return 1;
|
|
434
438
|
|
|
435
439
|
return 0;
|
|
@@ -362,10 +362,7 @@ static int diff_file_content_load_workdir_file(
|
|
|
362
362
|
if (!(error = git_futils_readbuffer_fd(&raw, fd, (size_t)fc->file->size))) {
|
|
363
363
|
git_buf out = GIT_BUF_INIT;
|
|
364
364
|
|
|
365
|
-
error =
|
|
366
|
-
|
|
367
|
-
if (out.ptr != raw.ptr)
|
|
368
|
-
git_buf_dispose(&raw);
|
|
365
|
+
error = git_filter_list__convert_buf(&out, fl, &raw);
|
|
369
366
|
|
|
370
367
|
if (!error) {
|
|
371
368
|
fc->map.len = out.size;
|
|
@@ -394,8 +391,7 @@ static int diff_file_content_load_workdir(
|
|
|
394
391
|
if (fc->file->mode == GIT_FILEMODE_TREE)
|
|
395
392
|
return 0;
|
|
396
393
|
|
|
397
|
-
if (
|
|
398
|
-
&path, git_repository_workdir(fc->repo), fc->file->path) < 0)
|
|
394
|
+
if (git_repository_workdir_path(&path, fc->repo, fc->file->path) < 0)
|
|
399
395
|
return -1;
|
|
400
396
|
|
|
401
397
|
if (S_ISLNK(fc->file->mode))
|
|
@@ -128,7 +128,7 @@ static int diff_delta__from_one(
|
|
|
128
128
|
git_diff_delta *delta;
|
|
129
129
|
const char *matched_pathspec;
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
GIT_ASSERT_ARG((oitem != NULL) ^ (nitem != NULL));
|
|
132
132
|
|
|
133
133
|
if (oitem) {
|
|
134
134
|
entry = oitem;
|
|
@@ -160,7 +160,7 @@ static int diff_delta__from_one(
|
|
|
160
160
|
GIT_ERROR_CHECK_ALLOC(delta);
|
|
161
161
|
|
|
162
162
|
/* This fn is just for single-sided diffs */
|
|
163
|
-
|
|
163
|
+
GIT_ASSERT(status != GIT_DELTA_MODIFIED);
|
|
164
164
|
delta->nfiles = 1;
|
|
165
165
|
|
|
166
166
|
if (has_old) {
|
|
@@ -408,7 +408,9 @@ static git_diff_generated *diff_generated_alloc(
|
|
|
408
408
|
git_diff_generated *diff;
|
|
409
409
|
git_diff_options dflt = GIT_DIFF_OPTIONS_INIT;
|
|
410
410
|
|
|
411
|
-
|
|
411
|
+
GIT_ASSERT_ARG_WITH_RETVAL(repo, NULL);
|
|
412
|
+
GIT_ASSERT_ARG_WITH_RETVAL(old_iter, NULL);
|
|
413
|
+
GIT_ASSERT_ARG_WITH_RETVAL(new_iter, NULL);
|
|
412
414
|
|
|
413
415
|
if ((diff = git__calloc(1, sizeof(git_diff_generated))) == NULL)
|
|
414
416
|
return NULL;
|
|
@@ -589,13 +591,12 @@ int git_diff__oid_for_entry(
|
|
|
589
591
|
git_filter_list *fl = NULL;
|
|
590
592
|
int error = 0;
|
|
591
593
|
|
|
592
|
-
|
|
594
|
+
GIT_ASSERT(d->type == GIT_DIFF_TYPE_GENERATED);
|
|
593
595
|
diff = (git_diff_generated *)d;
|
|
594
596
|
|
|
595
597
|
memset(out, 0, sizeof(*out));
|
|
596
598
|
|
|
597
|
-
if (
|
|
598
|
-
git_repository_workdir(diff->base.repo), entry.path) < 0)
|
|
599
|
+
if (git_repository_workdir_path(&full_path, diff->base.repo, entry.path) < 0)
|
|
599
600
|
return -1;
|
|
600
601
|
|
|
601
602
|
if (!mode) {
|
|
@@ -678,6 +679,8 @@ typedef struct {
|
|
|
678
679
|
git_iterator *new_iter;
|
|
679
680
|
const git_index_entry *oitem;
|
|
680
681
|
const git_index_entry *nitem;
|
|
682
|
+
git_strmap *submodule_cache;
|
|
683
|
+
bool submodule_cache_initialized;
|
|
681
684
|
} diff_in_progress;
|
|
682
685
|
|
|
683
686
|
#define MODE_BITS_MASK 0000777
|
|
@@ -692,6 +695,7 @@ static int maybe_modified_submodule(
|
|
|
692
695
|
git_submodule *sub;
|
|
693
696
|
unsigned int sm_status = 0;
|
|
694
697
|
git_submodule_ignore_t ign = diff->base.opts.ignore_submodules;
|
|
698
|
+
git_strmap *submodule_cache = NULL;
|
|
695
699
|
|
|
696
700
|
*status = GIT_DELTA_UNMODIFIED;
|
|
697
701
|
|
|
@@ -699,8 +703,23 @@ static int maybe_modified_submodule(
|
|
|
699
703
|
ign == GIT_SUBMODULE_IGNORE_ALL)
|
|
700
704
|
return 0;
|
|
701
705
|
|
|
702
|
-
if (
|
|
703
|
-
|
|
706
|
+
if (diff->base.repo->submodule_cache != NULL) {
|
|
707
|
+
submodule_cache = diff->base.repo->submodule_cache;
|
|
708
|
+
} else {
|
|
709
|
+
if (!info->submodule_cache_initialized) {
|
|
710
|
+
info->submodule_cache_initialized = true;
|
|
711
|
+
/*
|
|
712
|
+
* Try to cache the submodule information to avoid having to parse it for
|
|
713
|
+
* every submodule. It is okay if it fails, the cache will still be NULL
|
|
714
|
+
* and the submodules will be attempted to be looked up individually.
|
|
715
|
+
*/
|
|
716
|
+
git_submodule_cache_init(&info->submodule_cache, diff->base.repo);
|
|
717
|
+
}
|
|
718
|
+
submodule_cache = info->submodule_cache;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
if ((error = git_submodule__lookup_with_cache(
|
|
722
|
+
&sub, diff->base.repo, info->nitem->path, submodule_cache)) < 0) {
|
|
704
723
|
|
|
705
724
|
/* GIT_EEXISTS means dir with .git in it was found - ignore it */
|
|
706
725
|
if (error == GIT_EEXISTS) {
|
|
@@ -1190,7 +1209,7 @@ int git_diff__from_iterators(
|
|
|
1190
1209
|
const git_diff_options *opts)
|
|
1191
1210
|
{
|
|
1192
1211
|
git_diff_generated *diff;
|
|
1193
|
-
diff_in_progress info;
|
|
1212
|
+
diff_in_progress info = {0};
|
|
1194
1213
|
int error = 0;
|
|
1195
1214
|
|
|
1196
1215
|
*out = NULL;
|
|
@@ -1204,8 +1223,9 @@ int git_diff__from_iterators(
|
|
|
1204
1223
|
|
|
1205
1224
|
/* make iterators have matching icase behavior */
|
|
1206
1225
|
if (DIFF_FLAG_IS_SET(diff, GIT_DIFF_IGNORE_CASE)) {
|
|
1207
|
-
git_iterator_set_ignore_case(old_iter, true)
|
|
1208
|
-
|
|
1226
|
+
if ((error = git_iterator_set_ignore_case(old_iter, true)) < 0 ||
|
|
1227
|
+
(error = git_iterator_set_ignore_case(new_iter, true)) < 0)
|
|
1228
|
+
goto cleanup;
|
|
1209
1229
|
}
|
|
1210
1230
|
|
|
1211
1231
|
/* finish initialization */
|
|
@@ -1257,6 +1277,8 @@ cleanup:
|
|
|
1257
1277
|
*out = &diff->base;
|
|
1258
1278
|
else
|
|
1259
1279
|
git_diff_free(&diff->base);
|
|
1280
|
+
if (info.submodule_cache)
|
|
1281
|
+
git_submodule_cache_free(info.submodule_cache);
|
|
1260
1282
|
|
|
1261
1283
|
return error;
|
|
1262
1284
|
}
|
|
@@ -1302,7 +1324,8 @@ int git_diff_tree_to_tree(
|
|
|
1302
1324
|
char *prefix = NULL;
|
|
1303
1325
|
int error = 0;
|
|
1304
1326
|
|
|
1305
|
-
|
|
1327
|
+
GIT_ASSERT_ARG(out);
|
|
1328
|
+
GIT_ASSERT_ARG(repo);
|
|
1306
1329
|
|
|
1307
1330
|
*out = NULL;
|
|
1308
1331
|
|
|
@@ -1358,7 +1381,8 @@ int git_diff_tree_to_index(
|
|
|
1358
1381
|
bool index_ignore_case = false;
|
|
1359
1382
|
int error = 0;
|
|
1360
1383
|
|
|
1361
|
-
|
|
1384
|
+
GIT_ASSERT_ARG(out);
|
|
1385
|
+
GIT_ASSERT_ARG(repo);
|
|
1362
1386
|
|
|
1363
1387
|
*out = NULL;
|
|
1364
1388
|
|
|
@@ -1401,7 +1425,8 @@ int git_diff_index_to_workdir(
|
|
|
1401
1425
|
char *prefix = NULL;
|
|
1402
1426
|
int error = 0;
|
|
1403
1427
|
|
|
1404
|
-
|
|
1428
|
+
GIT_ASSERT_ARG(out);
|
|
1429
|
+
GIT_ASSERT_ARG(repo);
|
|
1405
1430
|
|
|
1406
1431
|
*out = NULL;
|
|
1407
1432
|
|
|
@@ -1444,7 +1469,8 @@ int git_diff_tree_to_workdir(
|
|
|
1444
1469
|
git_index *index;
|
|
1445
1470
|
int error;
|
|
1446
1471
|
|
|
1447
|
-
|
|
1472
|
+
GIT_ASSERT_ARG(out);
|
|
1473
|
+
GIT_ASSERT_ARG(repo);
|
|
1448
1474
|
|
|
1449
1475
|
*out = NULL;
|
|
1450
1476
|
|
|
@@ -1477,7 +1503,8 @@ int git_diff_tree_to_workdir_with_index(
|
|
|
1477
1503
|
git_index *index = NULL;
|
|
1478
1504
|
int error = 0;
|
|
1479
1505
|
|
|
1480
|
-
|
|
1506
|
+
GIT_ASSERT_ARG(out);
|
|
1507
|
+
GIT_ASSERT_ARG(repo);
|
|
1481
1508
|
|
|
1482
1509
|
*out = NULL;
|
|
1483
1510
|
|
|
@@ -1513,7 +1540,9 @@ int git_diff_index_to_index(
|
|
|
1513
1540
|
char *prefix = NULL;
|
|
1514
1541
|
int error;
|
|
1515
1542
|
|
|
1516
|
-
|
|
1543
|
+
GIT_ASSERT_ARG(out);
|
|
1544
|
+
GIT_ASSERT_ARG(old_index);
|
|
1545
|
+
GIT_ASSERT_ARG(new_index);
|
|
1517
1546
|
|
|
1518
1547
|
*out = NULL;
|
|
1519
1548
|
|