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
|
@@ -167,17 +167,18 @@ typedef void GIT_CALLBACK(git_filter_shutdown_fn)(git_filter *self);
|
|
|
167
167
|
*
|
|
168
168
|
* The `payload` will be a pointer to a reference payload for the filter.
|
|
169
169
|
* This will start as NULL, but `check` can assign to this pointer for
|
|
170
|
-
* later use by the `
|
|
171
|
-
* allocated (not stack), so that it doesn't go away before the `
|
|
170
|
+
* later use by the `stream` callback. Note that the value should be heap
|
|
171
|
+
* allocated (not stack), so that it doesn't go away before the `stream`
|
|
172
172
|
* callback can use it. If a filter allocates and assigns a value to the
|
|
173
173
|
* `payload`, it will need a `cleanup` callback to free the payload.
|
|
174
174
|
*/
|
|
175
175
|
typedef int GIT_CALLBACK(git_filter_check_fn)(
|
|
176
|
-
git_filter
|
|
177
|
-
void
|
|
176
|
+
git_filter *self,
|
|
177
|
+
void **payload, /* NULL on entry, may be set */
|
|
178
178
|
const git_filter_source *src,
|
|
179
|
-
const char
|
|
179
|
+
const char **attr_values);
|
|
180
180
|
|
|
181
|
+
#ifndef GIT_DEPRECATE_HARD
|
|
181
182
|
/**
|
|
182
183
|
* Callback to actually perform the data filtering
|
|
183
184
|
*
|
|
@@ -189,32 +190,45 @@ typedef int GIT_CALLBACK(git_filter_check_fn)(
|
|
|
189
190
|
*
|
|
190
191
|
* The `payload` value will refer to any payload that was set by the
|
|
191
192
|
* `check` callback. It may be read from or written to as needed.
|
|
193
|
+
*
|
|
194
|
+
* @deprecated use git_filter_stream_fn
|
|
192
195
|
*/
|
|
193
196
|
typedef int GIT_CALLBACK(git_filter_apply_fn)(
|
|
194
|
-
git_filter
|
|
195
|
-
void
|
|
196
|
-
git_buf
|
|
197
|
-
const git_buf
|
|
197
|
+
git_filter *self,
|
|
198
|
+
void **payload, /* may be read and/or set */
|
|
199
|
+
git_buf *to,
|
|
200
|
+
const git_buf *from,
|
|
198
201
|
const git_filter_source *src);
|
|
202
|
+
#endif
|
|
199
203
|
|
|
204
|
+
/**
|
|
205
|
+
* Callback to perform the data filtering.
|
|
206
|
+
*
|
|
207
|
+
* Specified as `filter.stream`, this is a callback that filters data
|
|
208
|
+
* in a streaming manner. This function will provide a
|
|
209
|
+
* `git_writestream` that will the original data will be written to;
|
|
210
|
+
* with that data, the `git_writestream` will then perform the filter
|
|
211
|
+
* translation and stream the filtered data out to the `next` location.
|
|
212
|
+
*/
|
|
200
213
|
typedef int GIT_CALLBACK(git_filter_stream_fn)(
|
|
201
|
-
git_writestream
|
|
202
|
-
git_filter
|
|
203
|
-
void
|
|
214
|
+
git_writestream **out,
|
|
215
|
+
git_filter *self,
|
|
216
|
+
void **payload,
|
|
204
217
|
const git_filter_source *src,
|
|
205
|
-
git_writestream
|
|
218
|
+
git_writestream *next);
|
|
206
219
|
|
|
207
220
|
/**
|
|
208
221
|
* Callback to clean up after filtering has been applied
|
|
209
222
|
*
|
|
210
223
|
* Specified as `filter.cleanup`, this is an optional callback invoked
|
|
211
|
-
* after the filter has been applied. If the `check
|
|
212
|
-
* allocated a `payload` to keep per-source filter
|
|
213
|
-
* callback to free that payload and release resources
|
|
224
|
+
* after the filter has been applied. If the `check`, `apply`, or
|
|
225
|
+
* `stream` callbacks allocated a `payload` to keep per-source filter
|
|
226
|
+
* state, use this callback to free that payload and release resources
|
|
227
|
+
* as required.
|
|
214
228
|
*/
|
|
215
229
|
typedef void GIT_CALLBACK(git_filter_cleanup_fn)(
|
|
216
|
-
git_filter
|
|
217
|
-
void
|
|
230
|
+
git_filter *self,
|
|
231
|
+
void *payload);
|
|
218
232
|
|
|
219
233
|
/**
|
|
220
234
|
* Filter structure used to register custom filters.
|
|
@@ -248,21 +262,28 @@ struct git_filter {
|
|
|
248
262
|
/**
|
|
249
263
|
* Called to determine whether the filter should be invoked for a
|
|
250
264
|
* given file. If this function returns `GIT_PASSTHROUGH` then the
|
|
251
|
-
* `apply`
|
|
252
|
-
* through unmodified.
|
|
265
|
+
* `stream` or `apply` functions will not be invoked and the
|
|
266
|
+
* contents will be passed through unmodified.
|
|
253
267
|
*/
|
|
254
268
|
git_filter_check_fn check;
|
|
255
269
|
|
|
270
|
+
#ifdef GIT_DEPRECATE_HARD
|
|
271
|
+
void *reserved;
|
|
272
|
+
#else
|
|
256
273
|
/**
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
274
|
+
* Provided for backward compatibility; this will apply the
|
|
275
|
+
* filter to the given contents in a `git_buf`. Callers should
|
|
276
|
+
* provide a `stream` function instead.
|
|
260
277
|
*/
|
|
261
278
|
git_filter_apply_fn apply;
|
|
279
|
+
#endif
|
|
262
280
|
|
|
263
281
|
/**
|
|
264
|
-
* Called to apply the filter
|
|
265
|
-
*
|
|
282
|
+
* Called to apply the filter, this function will provide a
|
|
283
|
+
* `git_writestream` that will the original data will be
|
|
284
|
+
* written to; with that data, the `git_writestream` will then
|
|
285
|
+
* perform the filter translation and stream the filtered data
|
|
286
|
+
* out to the `next` location.
|
|
266
287
|
*/
|
|
267
288
|
git_filter_stream_fn stream;
|
|
268
289
|
|
|
@@ -289,9 +310,9 @@ GIT_EXTERN(int) git_filter_init(git_filter *filter, unsigned int version);
|
|
|
289
310
|
* As mentioned elsewhere, the initialize callback will not be invoked
|
|
290
311
|
* immediately. It is deferred until the filter is used in some way.
|
|
291
312
|
*
|
|
292
|
-
* A filter's attribute checks and `check` and `
|
|
293
|
-
* issued in order of `priority` on smudge (to
|
|
294
|
-
* order of `priority` on clean (to odb).
|
|
313
|
+
* A filter's attribute checks and `check` and `stream` (or `apply`)
|
|
314
|
+
* callbacks will be issued in order of `priority` on smudge (to
|
|
315
|
+
* workdir), and in reverse order of `priority` on clean (to odb).
|
|
295
316
|
*
|
|
296
317
|
* Two filters are preregistered with libgit2:
|
|
297
318
|
* - GIT_FILTER_CRLF with priority 0
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef INCLUDE_sys_git_midx_h__
|
|
8
|
+
#define INCLUDE_sys_git_midx_h__
|
|
9
|
+
|
|
10
|
+
#include "git2/common.h"
|
|
11
|
+
#include "git2/types.h"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @file git2/midx.h
|
|
15
|
+
* @brief Git multi-pack-index routines
|
|
16
|
+
* @defgroup git_midx Git multi-pack-index routines
|
|
17
|
+
* @ingroup Git
|
|
18
|
+
* @{
|
|
19
|
+
*/
|
|
20
|
+
GIT_BEGIN_DECL
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Create a new writer for `multi-pack-index` files.
|
|
24
|
+
*
|
|
25
|
+
* @param out location to store the writer pointer.
|
|
26
|
+
* @param pack_dir the directory where the `.pack` and `.idx` files are. The
|
|
27
|
+
* `multi-pack-index` file will be written in this directory, too.
|
|
28
|
+
* @return 0 or an error code
|
|
29
|
+
*/
|
|
30
|
+
GIT_EXTERN(int) git_midx_writer_new(
|
|
31
|
+
git_midx_writer **out,
|
|
32
|
+
const char *pack_dir);
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Free the multi-pack-index writer and its resources.
|
|
36
|
+
*
|
|
37
|
+
* @param w the writer to free. If NULL no action is taken.
|
|
38
|
+
*/
|
|
39
|
+
GIT_EXTERN(void) git_midx_writer_free(git_midx_writer *w);
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Add an `.idx` file to the writer.
|
|
43
|
+
*
|
|
44
|
+
* @param w the writer
|
|
45
|
+
* @param idx_path the path of an `.idx` file.
|
|
46
|
+
* @return 0 or an error code
|
|
47
|
+
*/
|
|
48
|
+
GIT_EXTERN(int) git_midx_writer_add(
|
|
49
|
+
git_midx_writer *w,
|
|
50
|
+
const char *idx_path);
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Write a `multi-pack-index` file to a file.
|
|
54
|
+
*
|
|
55
|
+
* @param w the writer
|
|
56
|
+
* @return 0 or an error code
|
|
57
|
+
*/
|
|
58
|
+
GIT_EXTERN(int) git_midx_writer_commit(
|
|
59
|
+
git_midx_writer *w);
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Dump the contents of the `multi-pack-index` to an in-memory buffer.
|
|
63
|
+
*
|
|
64
|
+
* @param midx Buffer where to store the contents of the `multi-pack-index`.
|
|
65
|
+
* @param w the writer
|
|
66
|
+
* @return 0 or an error code
|
|
67
|
+
*/
|
|
68
|
+
GIT_EXTERN(int) git_midx_writer_dump(
|
|
69
|
+
git_buf *midx,
|
|
70
|
+
git_midx_writer *w);
|
|
71
|
+
|
|
72
|
+
/** @} */
|
|
73
|
+
GIT_END_DECL
|
|
74
|
+
#endif
|
|
@@ -84,6 +84,13 @@ struct git_odb_backend {
|
|
|
84
84
|
git_odb_writepack **, git_odb_backend *, git_odb *odb,
|
|
85
85
|
git_indexer_progress_cb progress_cb, void *progress_payload);
|
|
86
86
|
|
|
87
|
+
/**
|
|
88
|
+
* If the backend supports pack files, this will create a
|
|
89
|
+
* `multi-pack-index` file which will contain an index of all objects
|
|
90
|
+
* across all the `.pack` files.
|
|
91
|
+
*/
|
|
92
|
+
int GIT_CALLBACK(writemidx)(git_odb_backend *);
|
|
93
|
+
|
|
87
94
|
/**
|
|
88
95
|
* "Freshens" an already existing object, updating its last-used
|
|
89
96
|
* time. This occurs when `git_odb_write` was called, but the
|
|
@@ -365,6 +365,18 @@ GIT_EXTERN(int) git_tag_peel(
|
|
|
365
365
|
*/
|
|
366
366
|
GIT_EXTERN(int) git_tag_dup(git_tag **out, git_tag *source);
|
|
367
367
|
|
|
368
|
+
/**
|
|
369
|
+
* Determine whether a tag name is valid, meaning that (when prefixed
|
|
370
|
+
* with `refs/tags/`) that it is a valid reference name, and that any
|
|
371
|
+
* additional tag name restrictions are imposed (eg, it cannot start
|
|
372
|
+
* with a `-`).
|
|
373
|
+
*
|
|
374
|
+
* @param valid output pointer to set with validity of given tag name
|
|
375
|
+
* @param name a tag name to test
|
|
376
|
+
* @return 0 on success or an error code
|
|
377
|
+
*/
|
|
378
|
+
GIT_EXTERN(int) git_tag_name_is_valid(int *valid, const char *name);
|
|
379
|
+
|
|
368
380
|
/** @} */
|
|
369
381
|
GIT_END_DECL
|
|
370
382
|
#endif
|
|
@@ -379,20 +379,6 @@ GIT_EXTERN(int) git_treebuilder_filter(
|
|
|
379
379
|
GIT_EXTERN(int) git_treebuilder_write(
|
|
380
380
|
git_oid *id, git_treebuilder *bld);
|
|
381
381
|
|
|
382
|
-
/**
|
|
383
|
-
* Write the contents of the tree builder as a tree object
|
|
384
|
-
* using a shared git_buf.
|
|
385
|
-
*
|
|
386
|
-
* @see git_treebuilder_write
|
|
387
|
-
*
|
|
388
|
-
* @param oid Pointer to store the OID of the newly written tree
|
|
389
|
-
* @param bld Tree builder to write
|
|
390
|
-
* @param tree Shared buffer for writing the tree. Will be grown as necessary.
|
|
391
|
-
* @return 0 or an error code
|
|
392
|
-
*/
|
|
393
|
-
GIT_EXTERN(int) git_treebuilder_write_with_buffer(
|
|
394
|
-
git_oid *oid, git_treebuilder *bld, git_buf *tree);
|
|
395
|
-
|
|
396
382
|
/** Callback for the tree traversal method */
|
|
397
383
|
typedef int GIT_CALLBACK(git_treewalk_cb)(
|
|
398
384
|
const char *root, const git_tree_entry *entry, void *payload);
|
|
@@ -96,12 +96,21 @@ typedef struct git_odb_stream git_odb_stream;
|
|
|
96
96
|
/** A stream to write a packfile to the ODB */
|
|
97
97
|
typedef struct git_odb_writepack git_odb_writepack;
|
|
98
98
|
|
|
99
|
+
/** a writer for multi-pack-index files. */
|
|
100
|
+
typedef struct git_midx_writer git_midx_writer;
|
|
101
|
+
|
|
99
102
|
/** An open refs database handle. */
|
|
100
103
|
typedef struct git_refdb git_refdb;
|
|
101
104
|
|
|
102
105
|
/** A custom backend for refs */
|
|
103
106
|
typedef struct git_refdb_backend git_refdb_backend;
|
|
104
107
|
|
|
108
|
+
/** A git commit-graph */
|
|
109
|
+
typedef struct git_commit_graph git_commit_graph;
|
|
110
|
+
|
|
111
|
+
/** a writer for commit-graph files. */
|
|
112
|
+
typedef struct git_commit_graph_writer git_commit_graph_writer;
|
|
113
|
+
|
|
105
114
|
/**
|
|
106
115
|
* Representation of an existing git repository,
|
|
107
116
|
* including all its object contents
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
#ifndef INCLUDE_git_version_h__
|
|
8
8
|
#define INCLUDE_git_version_h__
|
|
9
9
|
|
|
10
|
-
#define LIBGIT2_VERSION "1.
|
|
10
|
+
#define LIBGIT2_VERSION "1.2.0"
|
|
11
11
|
#define LIBGIT2_VER_MAJOR 1
|
|
12
|
-
#define LIBGIT2_VER_MINOR
|
|
13
|
-
#define LIBGIT2_VER_REVISION
|
|
12
|
+
#define LIBGIT2_VER_MINOR 2
|
|
13
|
+
#define LIBGIT2_VER_REVISION 0
|
|
14
14
|
#define LIBGIT2_VER_PATCH 0
|
|
15
15
|
|
|
16
|
-
#define LIBGIT2_SOVERSION "1.
|
|
16
|
+
#define LIBGIT2_SOVERSION "1.2"
|
|
17
17
|
|
|
18
18
|
#endif
|
|
@@ -6,7 +6,18 @@ IF(DEBUG_POOL)
|
|
|
6
6
|
ENDIF()
|
|
7
7
|
ADD_FEATURE_INFO(debugpool GIT_DEBUG_POOL "debug pool allocator")
|
|
8
8
|
|
|
9
|
+
IF(DEBUG_STRICT_ALLOC)
|
|
10
|
+
SET(GIT_DEBUG_STRICT_ALLOC 1)
|
|
11
|
+
ENDIF()
|
|
12
|
+
ADD_FEATURE_INFO(debugalloc GIT_DEBUG_STRICT_ALLOC "debug strict allocators")
|
|
13
|
+
|
|
14
|
+
IF(DEBUG_STRICT_OPEN)
|
|
15
|
+
SET(GIT_DEBUG_STRICT_OPEN 1)
|
|
16
|
+
ENDIF()
|
|
17
|
+
ADD_FEATURE_INFO(debugopen GIT_DEBUG_STRICT_OPEN "path validation in open")
|
|
18
|
+
|
|
9
19
|
INCLUDE(PkgBuildConfig)
|
|
20
|
+
INCLUDE(SanitizeBool)
|
|
10
21
|
|
|
11
22
|
# This variable will contain the libraries we need to put into
|
|
12
23
|
# libgit2.pc's Requires.private. That is, what we're linking to or
|
|
@@ -32,10 +43,10 @@ IF(ENABLE_TRACE)
|
|
|
32
43
|
ENDIF()
|
|
33
44
|
ADD_FEATURE_INFO(tracing GIT_TRACE "tracing support")
|
|
34
45
|
|
|
35
|
-
CHECK_FUNCTION_EXISTS(futimens HAVE_FUTIMENS)
|
|
36
46
|
IF (HAVE_FUTIMENS)
|
|
37
47
|
SET(GIT_USE_FUTIMENS 1)
|
|
38
48
|
ENDIF ()
|
|
49
|
+
ADD_FEATURE_INFO(futimens GIT_USE_FUTIMENS "futimens support")
|
|
39
50
|
|
|
40
51
|
CHECK_PROTOTYPE_DEFINITION(qsort_r
|
|
41
52
|
"void qsort_r(void *base, size_t nmemb, size_t size, void *thunk, int (*compar)(void *, const void *, const void *))"
|
|
@@ -186,7 +197,12 @@ ELSE()
|
|
|
186
197
|
ENDIF()
|
|
187
198
|
|
|
188
199
|
# Optional external dependency: zlib
|
|
189
|
-
|
|
200
|
+
SanitizeBool(USE_BUNDLED_ZLIB)
|
|
201
|
+
IF(USE_BUNDLED_ZLIB STREQUAL ON)
|
|
202
|
+
SET(USE_BUNDLED_ZLIB "Bundled")
|
|
203
|
+
ENDIF()
|
|
204
|
+
|
|
205
|
+
IF(USE_BUNDLED_ZLIB STREQUAL "OFF")
|
|
190
206
|
FIND_PACKAGE(ZLIB)
|
|
191
207
|
IF(ZLIB_FOUND)
|
|
192
208
|
LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${ZLIB_INCLUDE_DIRS})
|
|
@@ -201,7 +217,12 @@ IF(NOT USE_BUNDLED_ZLIB)
|
|
|
201
217
|
MESSAGE(STATUS "zlib was not found; using bundled 3rd-party sources." )
|
|
202
218
|
ENDIF()
|
|
203
219
|
ENDIF()
|
|
204
|
-
IF(USE_BUNDLED_ZLIB
|
|
220
|
+
IF(USE_BUNDLED_ZLIB STREQUAL "Chromium")
|
|
221
|
+
ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/chromium-zlib" "${libgit2_BINARY_DIR}/deps/chromium-zlib")
|
|
222
|
+
LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/chromium-zlib")
|
|
223
|
+
LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:chromium_zlib>)
|
|
224
|
+
ADD_FEATURE_INFO(zlib ON "using (Chromium) bundled zlib")
|
|
225
|
+
ELSEIF(USE_BUNDLED_ZLIB OR NOT ZLIB_FOUND)
|
|
205
226
|
ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/zlib" "${libgit2_BINARY_DIR}/deps/zlib")
|
|
206
227
|
LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/zlib")
|
|
207
228
|
LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:zlib>)
|
|
@@ -374,7 +395,7 @@ if(SONAME)
|
|
|
374
395
|
set_target_properties(git2 PROPERTIES VERSION ${libgit2_VERSION})
|
|
375
396
|
set_target_properties(git2 PROPERTIES SOVERSION "${libgit2_VERSION_MAJOR}.${libgit2_VERSION_MINOR}")
|
|
376
397
|
if(LIBGIT2_FILENAME)
|
|
377
|
-
target_compile_definitions(
|
|
398
|
+
target_compile_definitions(git2 PRIVATE LIBGIT2_FILENAME=\"${LIBGIT2_FILENAME}\")
|
|
378
399
|
set_target_properties(git2 PROPERTIES OUTPUT_NAME ${LIBGIT2_FILENAME})
|
|
379
400
|
elseif(DEFINED LIBGIT2_PREFIX)
|
|
380
401
|
set_target_properties(git2 PROPERTIES PREFIX "${LIBGIT2_PREFIX}")
|
data/vendor/libgit2/src/alloc.c
CHANGED
|
@@ -6,16 +6,29 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
#include "alloc.h"
|
|
9
|
+
#include "runtime.h"
|
|
9
10
|
|
|
11
|
+
#include "allocators/failalloc.h"
|
|
10
12
|
#include "allocators/stdalloc.h"
|
|
11
|
-
#include "allocators/
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
#include "allocators/win32_leakcheck.h"
|
|
14
|
+
|
|
15
|
+
/* Fail any allocation until git_libgit2_init is called. */
|
|
16
|
+
git_allocator git__allocator = {
|
|
17
|
+
git_failalloc_malloc,
|
|
18
|
+
git_failalloc_calloc,
|
|
19
|
+
git_failalloc_strdup,
|
|
20
|
+
git_failalloc_strndup,
|
|
21
|
+
git_failalloc_substrdup,
|
|
22
|
+
git_failalloc_realloc,
|
|
23
|
+
git_failalloc_reallocarray,
|
|
24
|
+
git_failalloc_mallocarray,
|
|
25
|
+
git_failalloc_free
|
|
26
|
+
};
|
|
14
27
|
|
|
15
28
|
static int setup_default_allocator(void)
|
|
16
29
|
{
|
|
17
|
-
#if defined(
|
|
18
|
-
return
|
|
30
|
+
#if defined(GIT_WIN32_LEAKCHECK)
|
|
31
|
+
return git_win32_leakcheck_init_allocator(&git__allocator);
|
|
19
32
|
#else
|
|
20
33
|
return git_stdalloc_init_allocator(&git__allocator);
|
|
21
34
|
#endif
|
|
@@ -24,10 +37,10 @@ static int setup_default_allocator(void)
|
|
|
24
37
|
int git_allocator_global_init(void)
|
|
25
38
|
{
|
|
26
39
|
/*
|
|
27
|
-
* We don't want to overwrite any allocator which has been set
|
|
28
|
-
* the init function is called.
|
|
40
|
+
* We don't want to overwrite any allocator which has been set
|
|
41
|
+
* before the init function is called.
|
|
29
42
|
*/
|
|
30
|
-
if (git__allocator.gmalloc !=
|
|
43
|
+
if (git__allocator.gmalloc != git_failalloc_malloc)
|
|
31
44
|
return 0;
|
|
32
45
|
|
|
33
46
|
return setup_default_allocator();
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#include "failalloc.h"
|
|
9
|
+
|
|
10
|
+
void *git_failalloc_malloc(size_t len, const char *file, int line)
|
|
11
|
+
{
|
|
12
|
+
GIT_UNUSED(len);
|
|
13
|
+
GIT_UNUSED(file);
|
|
14
|
+
GIT_UNUSED(line);
|
|
15
|
+
|
|
16
|
+
return NULL;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
void *git_failalloc_calloc(size_t nelem, size_t elsize, const char *file, int line)
|
|
20
|
+
{
|
|
21
|
+
GIT_UNUSED(nelem);
|
|
22
|
+
GIT_UNUSED(elsize);
|
|
23
|
+
GIT_UNUSED(file);
|
|
24
|
+
GIT_UNUSED(line);
|
|
25
|
+
|
|
26
|
+
return NULL;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
char *git_failalloc_strdup(const char *str, const char *file, int line)
|
|
30
|
+
{
|
|
31
|
+
GIT_UNUSED(str);
|
|
32
|
+
GIT_UNUSED(file);
|
|
33
|
+
GIT_UNUSED(line);
|
|
34
|
+
|
|
35
|
+
return NULL;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
char *git_failalloc_strndup(const char *str, size_t n, const char *file, int line)
|
|
39
|
+
{
|
|
40
|
+
GIT_UNUSED(str);
|
|
41
|
+
GIT_UNUSED(n);
|
|
42
|
+
GIT_UNUSED(file);
|
|
43
|
+
GIT_UNUSED(line);
|
|
44
|
+
|
|
45
|
+
return NULL;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
char *git_failalloc_substrdup(const char *start, size_t n, const char *file, int line)
|
|
49
|
+
{
|
|
50
|
+
GIT_UNUSED(start);
|
|
51
|
+
GIT_UNUSED(n);
|
|
52
|
+
GIT_UNUSED(file);
|
|
53
|
+
GIT_UNUSED(line);
|
|
54
|
+
|
|
55
|
+
return NULL;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
void *git_failalloc_realloc(void *ptr, size_t size, const char *file, int line)
|
|
59
|
+
{
|
|
60
|
+
GIT_UNUSED(ptr);
|
|
61
|
+
GIT_UNUSED(size);
|
|
62
|
+
GIT_UNUSED(file);
|
|
63
|
+
GIT_UNUSED(line);
|
|
64
|
+
|
|
65
|
+
return NULL;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
void *git_failalloc_reallocarray(void *ptr, size_t nelem, size_t elsize, const char *file, int line)
|
|
69
|
+
{
|
|
70
|
+
GIT_UNUSED(ptr);
|
|
71
|
+
GIT_UNUSED(nelem);
|
|
72
|
+
GIT_UNUSED(elsize);
|
|
73
|
+
GIT_UNUSED(file);
|
|
74
|
+
GIT_UNUSED(line);
|
|
75
|
+
|
|
76
|
+
return NULL;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
void *git_failalloc_mallocarray(size_t nelem, size_t elsize, const char *file, int line)
|
|
80
|
+
{
|
|
81
|
+
GIT_UNUSED(nelem);
|
|
82
|
+
GIT_UNUSED(elsize);
|
|
83
|
+
GIT_UNUSED(file);
|
|
84
|
+
GIT_UNUSED(line);
|
|
85
|
+
|
|
86
|
+
return NULL;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
void git_failalloc_free(void *ptr)
|
|
90
|
+
{
|
|
91
|
+
GIT_UNUSED(ptr);
|
|
92
|
+
}
|