rugged 1.3.2.3 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/rugged/extconf.rb +1 -1
- data/ext/rugged/rugged_config.c +7 -2
- data/ext/rugged/rugged_remote.c +17 -0
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +103 -276
- data/vendor/libgit2/COPYING +36 -19
- data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
- data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
- data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
- data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
- data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
- data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
- data/vendor/libgit2/cmake/{FindHTTP_Parser.cmake → FindHTTPParser.cmake} +17 -17
- data/vendor/libgit2/cmake/FindIconv.cmake +27 -27
- data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
- data/vendor/libgit2/cmake/FindPCRE.cmake +13 -13
- data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
- data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
- data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
- data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
- data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
- data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
- data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
- data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
- data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +19 -0
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +100 -100
- data/vendor/libgit2/cmake/SelectHashes.cmake +39 -49
- data/vendor/libgit2/cmake/SelectRegex.cmake +51 -0
- data/vendor/libgit2/cmake/SelectSSH.cmake +41 -0
- data/vendor/libgit2/cmake/SelectWinHTTP.cmake +17 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +34 -0
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +31 -31
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +1 -1
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +88 -88
- data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
- data/vendor/libgit2/deps/zlib/adler32.c +0 -7
- data/vendor/libgit2/deps/zlib/crc32.c +288 -975
- data/vendor/libgit2/deps/zlib/crc32.h +436 -9441
- data/vendor/libgit2/deps/zlib/deflate.c +31 -83
- data/vendor/libgit2/deps/zlib/deflate.h +15 -12
- data/vendor/libgit2/deps/zlib/gzguts.h +2 -3
- data/vendor/libgit2/deps/zlib/infback.c +1 -2
- data/vendor/libgit2/deps/zlib/inffast.c +14 -14
- data/vendor/libgit2/deps/zlib/inflate.c +8 -39
- data/vendor/libgit2/deps/zlib/inflate.h +2 -3
- data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
- data/vendor/libgit2/deps/zlib/trees.c +48 -27
- data/vendor/libgit2/deps/zlib/zlib.h +100 -126
- data/vendor/libgit2/deps/zlib/zutil.c +2 -2
- data/vendor/libgit2/deps/zlib/zutil.h +9 -12
- data/vendor/libgit2/include/git2/apply.h +16 -2
- data/vendor/libgit2/include/git2/attr.h +11 -2
- data/vendor/libgit2/include/git2/blame.h +4 -1
- data/vendor/libgit2/include/git2/blob.h +14 -1
- data/vendor/libgit2/include/git2/branch.h +2 -0
- data/vendor/libgit2/include/git2/buffer.h +18 -78
- data/vendor/libgit2/include/git2/cert.h +2 -2
- data/vendor/libgit2/include/git2/checkout.h +5 -2
- data/vendor/libgit2/include/git2/clone.h +3 -3
- data/vendor/libgit2/include/git2/commit.h +2 -0
- data/vendor/libgit2/include/git2/common.h +5 -12
- data/vendor/libgit2/include/git2/config.h +19 -3
- data/vendor/libgit2/include/git2/credential.h +2 -1
- data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
- data/vendor/libgit2/include/git2/deprecated.h +1 -1
- data/vendor/libgit2/include/git2/describe.h +7 -2
- data/vendor/libgit2/include/git2/diff.h +17 -9
- data/vendor/libgit2/include/git2/email.h +1 -1
- data/vendor/libgit2/include/git2/errors.h +1 -2
- data/vendor/libgit2/include/git2/filter.h +7 -2
- data/vendor/libgit2/include/git2/graph.h +1 -0
- data/vendor/libgit2/include/git2/ignore.h +1 -1
- data/vendor/libgit2/include/git2/index.h +11 -5
- data/vendor/libgit2/include/git2/indexer.h +19 -0
- data/vendor/libgit2/include/git2/merge.h +23 -3
- data/vendor/libgit2/include/git2/message.h +2 -0
- data/vendor/libgit2/include/git2/object.h +23 -0
- data/vendor/libgit2/include/git2/odb.h +37 -7
- data/vendor/libgit2/include/git2/odb_backend.h +1 -1
- data/vendor/libgit2/include/git2/pack.h +24 -8
- data/vendor/libgit2/include/git2/patch.h +8 -0
- data/vendor/libgit2/include/git2/pathspec.h +1 -1
- data/vendor/libgit2/include/git2/proxy.h +1 -1
- data/vendor/libgit2/include/git2/rebase.h +9 -1
- data/vendor/libgit2/include/git2/refdb.h +3 -0
- data/vendor/libgit2/include/git2/reflog.h +1 -1
- data/vendor/libgit2/include/git2/refs.h +2 -2
- data/vendor/libgit2/include/git2/remote.h +184 -37
- data/vendor/libgit2/include/git2/repository.h +14 -9
- data/vendor/libgit2/include/git2/reset.h +2 -2
- data/vendor/libgit2/include/git2/revparse.h +1 -1
- data/vendor/libgit2/include/git2/revwalk.h +4 -1
- data/vendor/libgit2/include/git2/signature.h +1 -1
- data/vendor/libgit2/include/git2/stash.h +3 -3
- data/vendor/libgit2/include/git2/status.h +9 -3
- data/vendor/libgit2/include/git2/submodule.h +7 -2
- data/vendor/libgit2/include/git2/sys/commit_graph.h +1 -1
- data/vendor/libgit2/include/git2/sys/odb_backend.h +2 -5
- data/vendor/libgit2/include/git2/sys/remote.h +31 -0
- data/vendor/libgit2/include/git2/sys/stream.h +1 -1
- data/vendor/libgit2/include/git2/sys/transport.h +25 -34
- data/vendor/libgit2/include/git2/tag.h +1 -0
- data/vendor/libgit2/include/git2/tree.h +4 -3
- data/vendor/libgit2/include/git2/types.h +7 -7
- data/vendor/libgit2/include/git2/version.h +3 -3
- data/vendor/libgit2/include/git2/worktree.h +12 -2
- data/vendor/libgit2/src/CMakeLists.txt +189 -315
- data/vendor/libgit2/src/annotated_commit.h +1 -1
- data/vendor/libgit2/src/apply.c +18 -18
- data/vendor/libgit2/src/apply.h +2 -2
- data/vendor/libgit2/src/attr.c +18 -18
- data/vendor/libgit2/src/attr_file.c +17 -17
- data/vendor/libgit2/src/attr_file.h +4 -4
- data/vendor/libgit2/src/attrcache.c +17 -12
- data/vendor/libgit2/src/blame_git.c +1 -1
- data/vendor/libgit2/src/blob.c +33 -26
- data/vendor/libgit2/src/blob.h +1 -1
- data/vendor/libgit2/src/branch.c +150 -109
- data/vendor/libgit2/src/branch.h +15 -3
- data/vendor/libgit2/src/buf.c +126 -0
- data/vendor/libgit2/src/buf.h +50 -0
- data/vendor/libgit2/src/cc-compat.h +1 -1
- data/vendor/libgit2/src/checkout.c +74 -68
- data/vendor/libgit2/src/cherrypick.c +10 -10
- data/vendor/libgit2/src/clone.c +66 -66
- data/vendor/libgit2/src/commit.c +128 -58
- data/vendor/libgit2/src/commit.h +24 -1
- data/vendor/libgit2/src/commit_graph.c +68 -53
- data/vendor/libgit2/src/commit_graph.h +10 -3
- data/vendor/libgit2/src/commit_list.c +2 -3
- data/vendor/libgit2/src/common.h +10 -3
- data/vendor/libgit2/src/config.c +99 -77
- data/vendor/libgit2/src/config.h +15 -2
- data/vendor/libgit2/src/config_file.c +103 -91
- data/vendor/libgit2/src/config_mem.c +9 -9
- data/vendor/libgit2/src/config_parse.c +27 -23
- data/vendor/libgit2/src/crlf.c +24 -21
- data/vendor/libgit2/src/date.c +10 -17
- data/vendor/libgit2/src/date.h +33 -0
- data/vendor/libgit2/src/describe.c +27 -19
- data/vendor/libgit2/src/diff.c +25 -8
- data/vendor/libgit2/src/diff.h +2 -4
- data/vendor/libgit2/src/diff_driver.c +34 -36
- data/vendor/libgit2/src/diff_driver.h +3 -3
- data/vendor/libgit2/src/diff_file.c +29 -20
- data/vendor/libgit2/src/diff_generate.c +30 -6
- data/vendor/libgit2/src/diff_generate.h +5 -3
- data/vendor/libgit2/src/diff_print.c +102 -95
- data/vendor/libgit2/src/diff_stats.c +40 -29
- data/vendor/libgit2/src/{message.h → diff_stats.h} +7 -6
- data/vendor/libgit2/src/diff_tform.c +9 -8
- data/vendor/libgit2/src/diff_xdiff.c +3 -8
- data/vendor/libgit2/src/email.c +54 -38
- data/vendor/libgit2/src/email.h +1 -1
- data/vendor/libgit2/src/errors.c +18 -18
- data/vendor/libgit2/src/features.h.in +6 -1
- data/vendor/libgit2/src/fetch.c +69 -24
- data/vendor/libgit2/src/fetch.h +1 -1
- data/vendor/libgit2/src/fetchhead.c +19 -19
- data/vendor/libgit2/src/filebuf.c +28 -28
- data/vendor/libgit2/src/filebuf.h +1 -1
- data/vendor/libgit2/src/filter.c +96 -52
- data/vendor/libgit2/src/filter.h +26 -5
- data/vendor/libgit2/src/fs_path.c +1912 -0
- data/vendor/libgit2/src/fs_path.h +752 -0
- data/vendor/libgit2/src/futils.c +91 -85
- data/vendor/libgit2/src/futils.h +26 -14
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +2 -2
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +2 -2
- data/vendor/libgit2/src/hash/sha1/generic.c +2 -2
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +2 -2
- data/vendor/libgit2/src/hash/sha1/openssl.c +2 -2
- data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +1 -1
- data/vendor/libgit2/src/hash/sha1/win32.c +6 -6
- data/vendor/libgit2/src/hash/sha1.h +3 -1
- data/vendor/libgit2/src/hash.c +67 -35
- data/vendor/libgit2/src/hash.h +12 -12
- data/vendor/libgit2/src/ident.c +18 -18
- data/vendor/libgit2/src/ignore.c +35 -34
- data/vendor/libgit2/src/ignore.h +2 -2
- data/vendor/libgit2/src/index.c +79 -80
- data/vendor/libgit2/src/index.h +6 -3
- data/vendor/libgit2/src/indexer.c +75 -57
- data/vendor/libgit2/src/iterator.c +64 -56
- data/vendor/libgit2/src/iterator.h +5 -5
- data/vendor/libgit2/src/khash.h +1 -1
- data/vendor/libgit2/src/libgit2.c +22 -19
- data/vendor/libgit2/src/mailmap.c +38 -36
- data/vendor/libgit2/src/merge.c +27 -27
- data/vendor/libgit2/src/merge.h +1 -14
- data/vendor/libgit2/src/merge_driver.c +2 -2
- data/vendor/libgit2/src/merge_file.c +13 -3
- data/vendor/libgit2/src/message.c +21 -10
- data/vendor/libgit2/src/midx.c +83 -66
- data/vendor/libgit2/src/midx.h +3 -3
- data/vendor/libgit2/src/mwindow.c +1 -1
- data/vendor/libgit2/src/net.c +278 -68
- data/vendor/libgit2/src/net.h +10 -3
- data/vendor/libgit2/src/netops.c +1 -1
- data/vendor/libgit2/src/netops.h +1 -1
- data/vendor/libgit2/src/notes.c +20 -29
- data/vendor/libgit2/src/object.c +49 -9
- data/vendor/libgit2/src/object.h +1 -1
- data/vendor/libgit2/src/odb.c +35 -32
- data/vendor/libgit2/src/odb.h +1 -1
- data/vendor/libgit2/src/odb_loose.c +68 -68
- data/vendor/libgit2/src/odb_mempack.c +18 -5
- data/vendor/libgit2/src/odb_pack.c +43 -43
- data/vendor/libgit2/src/oid.c +11 -4
- data/vendor/libgit2/src/oid.h +15 -0
- data/vendor/libgit2/src/pack-objects.c +41 -26
- data/vendor/libgit2/src/pack-objects.h +11 -6
- data/vendor/libgit2/src/pack.c +10 -10
- data/vendor/libgit2/src/patch.c +3 -3
- data/vendor/libgit2/src/patch.h +1 -0
- data/vendor/libgit2/src/patch_generate.c +27 -11
- data/vendor/libgit2/src/patch_generate.h +5 -5
- data/vendor/libgit2/src/patch_parse.c +24 -24
- data/vendor/libgit2/src/path.c +76 -1951
- data/vendor/libgit2/src/path.h +34 -741
- data/vendor/libgit2/src/pathspec.c +6 -6
- data/vendor/libgit2/src/pathspec.h +2 -2
- data/vendor/libgit2/src/posix.c +3 -3
- data/vendor/libgit2/src/posix.h +1 -0
- data/vendor/libgit2/src/pqueue.h +1 -1
- data/vendor/libgit2/src/proxy.c +4 -1
- data/vendor/libgit2/src/proxy.h +1 -1
- data/vendor/libgit2/src/push.c +30 -35
- data/vendor/libgit2/src/push.h +4 -16
- data/vendor/libgit2/src/rand.c +226 -0
- data/vendor/libgit2/src/rand.h +37 -0
- data/vendor/libgit2/src/reader.c +8 -8
- data/vendor/libgit2/src/reader.h +2 -2
- data/vendor/libgit2/src/rebase.c +89 -88
- data/vendor/libgit2/src/refdb_fs.c +447 -173
- data/vendor/libgit2/src/refs.c +32 -32
- data/vendor/libgit2/src/refs.h +2 -2
- data/vendor/libgit2/src/refspec.c +32 -37
- data/vendor/libgit2/src/refspec.h +5 -2
- data/vendor/libgit2/src/regexp.c +1 -1
- data/vendor/libgit2/src/remote.c +713 -419
- data/vendor/libgit2/src/remote.h +15 -10
- data/vendor/libgit2/src/repository.c +350 -467
- data/vendor/libgit2/src/repository.h +11 -10
- data/vendor/libgit2/src/reset.c +8 -5
- data/vendor/libgit2/src/revert.c +10 -10
- data/vendor/libgit2/src/revparse.c +48 -35
- data/vendor/libgit2/src/revwalk.c +7 -7
- data/vendor/libgit2/src/signature.c +12 -6
- data/vendor/libgit2/src/signature.h +1 -1
- data/vendor/libgit2/src/sortedcache.c +1 -1
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +36 -37
- data/vendor/libgit2/src/status.c +4 -1
- data/vendor/libgit2/src/{buffer.c → str.c} +157 -151
- data/vendor/libgit2/src/str.h +357 -0
- data/vendor/libgit2/src/streams/mbedtls.c +8 -6
- data/vendor/libgit2/src/streams/openssl_dynamic.h +3 -3
- data/vendor/libgit2/src/submodule.c +171 -159
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +68 -52
- data/vendor/libgit2/src/sysdir.h +15 -10
- data/vendor/libgit2/src/tag.c +29 -27
- data/vendor/libgit2/src/thread.h +3 -3
- data/vendor/libgit2/src/threadstate.c +3 -3
- data/vendor/libgit2/src/threadstate.h +1 -1
- data/vendor/libgit2/src/trace.c +1 -14
- data/vendor/libgit2/src/trace.h +5 -22
- data/vendor/libgit2/src/trailer.c +1 -1
- data/vendor/libgit2/src/transaction.c +1 -1
- data/vendor/libgit2/src/transport.c +10 -10
- data/vendor/libgit2/src/transports/auth.c +7 -9
- data/vendor/libgit2/src/transports/auth.h +2 -3
- data/vendor/libgit2/src/transports/auth_negotiate.c +12 -13
- data/vendor/libgit2/src/transports/auth_ntlm.c +10 -10
- data/vendor/libgit2/src/transports/auth_ntlm.h +0 -1
- data/vendor/libgit2/src/transports/git.c +9 -11
- data/vendor/libgit2/src/transports/http.c +37 -17
- data/vendor/libgit2/src/transports/http.h +2 -3
- data/vendor/libgit2/src/transports/httpclient.c +65 -65
- data/vendor/libgit2/src/transports/local.c +124 -116
- data/vendor/libgit2/src/transports/smart.c +51 -139
- data/vendor/libgit2/src/transports/smart.h +25 -31
- data/vendor/libgit2/src/transports/smart_pkt.c +33 -33
- data/vendor/libgit2/src/transports/smart_protocol.c +57 -39
- data/vendor/libgit2/src/transports/ssh.c +47 -112
- data/vendor/libgit2/src/transports/winhttp.c +50 -56
- data/vendor/libgit2/src/tree-cache.c +5 -5
- data/vendor/libgit2/src/tree-cache.h +2 -2
- data/vendor/libgit2/src/tree.c +59 -48
- data/vendor/libgit2/src/tree.h +1 -1
- data/vendor/libgit2/src/unix/map.c +0 -2
- data/vendor/libgit2/src/unix/posix.h +1 -4
- data/vendor/libgit2/src/unix/realpath.c +0 -2
- data/vendor/libgit2/src/util.c +14 -14
- data/vendor/libgit2/src/util.h +2 -28
- data/vendor/libgit2/src/vector.h +1 -1
- data/vendor/libgit2/src/win32/findfile.c +172 -116
- data/vendor/libgit2/src/win32/findfile.h +7 -4
- data/vendor/libgit2/src/win32/path_w32.c +140 -9
- data/vendor/libgit2/src/win32/path_w32.h +2 -0
- data/vendor/libgit2/src/win32/posix.h +0 -1
- data/vendor/libgit2/src/win32/posix_w32.c +11 -27
- data/vendor/libgit2/src/win32/w32_buffer.c +2 -3
- data/vendor/libgit2/src/win32/w32_buffer.h +2 -3
- data/vendor/libgit2/src/win32/w32_leakcheck.c +1 -1
- data/vendor/libgit2/src/worktree.c +116 -94
- data/vendor/libgit2/src/worktree.h +1 -1
- data/vendor/libgit2/src/xdiff/git-xdiff.h +53 -0
- data/vendor/libgit2/src/xdiff/xdiff.h +15 -15
- data/vendor/libgit2/src/xdiff/xdiffi.c +134 -108
- data/vendor/libgit2/src/xdiff/xemit.c +23 -7
- data/vendor/libgit2/src/xdiff/xhistogram.c +87 -78
- data/vendor/libgit2/src/xdiff/xinclude.h +1 -12
- data/vendor/libgit2/src/xdiff/xmerge.c +104 -117
- data/vendor/libgit2/src/xdiff/xpatience.c +6 -17
- data/vendor/libgit2/src/xdiff/xprepare.c +15 -20
- data/vendor/libgit2/src/xdiff/xutils.c +18 -7
- data/vendor/libgit2/src/zstream.c +5 -5
- data/vendor/libgit2/src/zstream.h +4 -4
- metadata +25 -10
- data/vendor/libgit2/src/buffer.h +0 -374
data/vendor/libgit2/src/filter.c
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
#include "filter.h"
|
|
9
9
|
|
|
10
|
+
#include "buf.h"
|
|
10
11
|
#include "common.h"
|
|
11
12
|
#include "futils.h"
|
|
12
13
|
#include "hash.h"
|
|
@@ -17,6 +18,7 @@
|
|
|
17
18
|
#include "blob.h"
|
|
18
19
|
#include "attr_file.h"
|
|
19
20
|
#include "array.h"
|
|
21
|
+
#include "path.h"
|
|
20
22
|
|
|
21
23
|
struct git_filter_source {
|
|
22
24
|
git_repository *repo;
|
|
@@ -36,7 +38,7 @@ typedef struct {
|
|
|
36
38
|
struct git_filter_list {
|
|
37
39
|
git_array_t(git_filter_entry) filters;
|
|
38
40
|
git_filter_source source;
|
|
39
|
-
|
|
41
|
+
git_str *temp_buf;
|
|
40
42
|
char path[GIT_FLEX_ARRAY];
|
|
41
43
|
};
|
|
42
44
|
|
|
@@ -68,7 +70,7 @@ static void git_filter_global_shutdown(void);
|
|
|
68
70
|
|
|
69
71
|
|
|
70
72
|
static int filter_def_scan_attrs(
|
|
71
|
-
|
|
73
|
+
git_str *attrs, size_t *nattr, size_t *nmatch, const char *attr_str)
|
|
72
74
|
{
|
|
73
75
|
const char *start, *scan = attr_str;
|
|
74
76
|
int has_eq;
|
|
@@ -92,9 +94,9 @@ static int filter_def_scan_attrs(
|
|
|
92
94
|
(*nmatch)++;
|
|
93
95
|
|
|
94
96
|
if (has_eq)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
97
|
+
git_str_putc(attrs, '=');
|
|
98
|
+
git_str_put(attrs, start, scan - start);
|
|
99
|
+
git_str_putc(attrs, '\0');
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
102
|
|
|
@@ -152,7 +154,7 @@ static int filter_registry_insert(
|
|
|
152
154
|
{
|
|
153
155
|
git_filter_def *fdef;
|
|
154
156
|
size_t nattr = 0, nmatch = 0, alloc_len;
|
|
155
|
-
|
|
157
|
+
git_str attrs = GIT_STR_INIT;
|
|
156
158
|
|
|
157
159
|
if (filter_def_scan_attrs(&attrs, &nattr, &nmatch, filter->attributes) < 0)
|
|
158
160
|
return -1;
|
|
@@ -171,7 +173,7 @@ static int filter_registry_insert(
|
|
|
171
173
|
fdef->priority = priority;
|
|
172
174
|
fdef->nattrs = nattr;
|
|
173
175
|
fdef->nmatches = nmatch;
|
|
174
|
-
fdef->attrdata =
|
|
176
|
+
fdef->attrdata = git_str_detach(&attrs);
|
|
175
177
|
|
|
176
178
|
filter_def_set_attrs(fdef);
|
|
177
179
|
|
|
@@ -710,7 +712,7 @@ size_t git_filter_list_length(const git_filter_list *fl)
|
|
|
710
712
|
|
|
711
713
|
struct buf_stream {
|
|
712
714
|
git_writestream parent;
|
|
713
|
-
|
|
715
|
+
git_str *target;
|
|
714
716
|
bool complete;
|
|
715
717
|
};
|
|
716
718
|
|
|
@@ -721,7 +723,7 @@ static int buf_stream_write(
|
|
|
721
723
|
GIT_ASSERT_ARG(buf_stream);
|
|
722
724
|
GIT_ASSERT(buf_stream->complete == 0);
|
|
723
725
|
|
|
724
|
-
return
|
|
726
|
+
return git_str_put(buf_stream->target, buffer, len);
|
|
725
727
|
}
|
|
726
728
|
|
|
727
729
|
static int buf_stream_close(git_writestream *s)
|
|
@@ -740,7 +742,7 @@ static void buf_stream_free(git_writestream *s)
|
|
|
740
742
|
GIT_UNUSED(s);
|
|
741
743
|
}
|
|
742
744
|
|
|
743
|
-
static void buf_stream_init(struct buf_stream *writer,
|
|
745
|
+
static void buf_stream_init(struct buf_stream *writer, git_str *target)
|
|
744
746
|
{
|
|
745
747
|
memset(writer, 0, sizeof(struct buf_stream));
|
|
746
748
|
|
|
@@ -749,7 +751,7 @@ static void buf_stream_init(struct buf_stream *writer, git_buf *target)
|
|
|
749
751
|
writer->parent.free = buf_stream_free;
|
|
750
752
|
writer->target = target;
|
|
751
753
|
|
|
752
|
-
|
|
754
|
+
git_str_clear(target);
|
|
753
755
|
}
|
|
754
756
|
|
|
755
757
|
int git_filter_list_apply_to_buffer(
|
|
@@ -757,13 +759,19 @@ int git_filter_list_apply_to_buffer(
|
|
|
757
759
|
git_filter_list *filters,
|
|
758
760
|
const char *in,
|
|
759
761
|
size_t in_len)
|
|
762
|
+
{
|
|
763
|
+
GIT_BUF_WRAP_PRIVATE(out, git_filter_list__apply_to_buffer, filters, in, in_len);
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
int git_filter_list__apply_to_buffer(
|
|
767
|
+
git_str *out,
|
|
768
|
+
git_filter_list *filters,
|
|
769
|
+
const char *in,
|
|
770
|
+
size_t in_len)
|
|
760
771
|
{
|
|
761
772
|
struct buf_stream writer;
|
|
762
773
|
int error;
|
|
763
774
|
|
|
764
|
-
if ((error = git_buf_sanitize(out)) < 0)
|
|
765
|
-
return error;
|
|
766
|
-
|
|
767
775
|
buf_stream_init(&writer, out);
|
|
768
776
|
|
|
769
777
|
if ((error = git_filter_list_stream_buffer(filters,
|
|
@@ -775,23 +783,23 @@ int git_filter_list_apply_to_buffer(
|
|
|
775
783
|
}
|
|
776
784
|
|
|
777
785
|
int git_filter_list__convert_buf(
|
|
778
|
-
|
|
786
|
+
git_str *out,
|
|
779
787
|
git_filter_list *filters,
|
|
780
|
-
|
|
788
|
+
git_str *in)
|
|
781
789
|
{
|
|
782
790
|
int error;
|
|
783
791
|
|
|
784
792
|
if (!filters || git_filter_list_length(filters) == 0) {
|
|
785
|
-
|
|
786
|
-
|
|
793
|
+
git_str_swap(out, in);
|
|
794
|
+
git_str_dispose(in);
|
|
787
795
|
return 0;
|
|
788
796
|
}
|
|
789
797
|
|
|
790
|
-
error =
|
|
798
|
+
error = git_filter_list__apply_to_buffer(out, filters,
|
|
791
799
|
in->ptr, in->size);
|
|
792
800
|
|
|
793
801
|
if (!error)
|
|
794
|
-
|
|
802
|
+
git_str_dispose(in);
|
|
795
803
|
|
|
796
804
|
return error;
|
|
797
805
|
}
|
|
@@ -801,6 +809,15 @@ int git_filter_list_apply_to_file(
|
|
|
801
809
|
git_filter_list *filters,
|
|
802
810
|
git_repository *repo,
|
|
803
811
|
const char *path)
|
|
812
|
+
{
|
|
813
|
+
GIT_BUF_WRAP_PRIVATE(out, git_filter_list__apply_to_file, filters, repo, path);
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
int git_filter_list__apply_to_file(
|
|
817
|
+
git_str *out,
|
|
818
|
+
git_filter_list *filters,
|
|
819
|
+
git_repository *repo,
|
|
820
|
+
const char *path)
|
|
804
821
|
{
|
|
805
822
|
struct buf_stream writer;
|
|
806
823
|
int error;
|
|
@@ -815,7 +832,7 @@ int git_filter_list_apply_to_file(
|
|
|
815
832
|
return error;
|
|
816
833
|
}
|
|
817
834
|
|
|
818
|
-
static int buf_from_blob(
|
|
835
|
+
static int buf_from_blob(git_str *out, git_blob *blob)
|
|
819
836
|
{
|
|
820
837
|
git_object_size_t rawsize = git_blob_rawsize(blob);
|
|
821
838
|
|
|
@@ -824,7 +841,7 @@ static int buf_from_blob(git_buf *out, git_blob *blob)
|
|
|
824
841
|
return -1;
|
|
825
842
|
}
|
|
826
843
|
|
|
827
|
-
|
|
844
|
+
git_str_attach_notowned(out, git_blob_rawcontent(blob), (size_t)rawsize);
|
|
828
845
|
return 0;
|
|
829
846
|
}
|
|
830
847
|
|
|
@@ -832,6 +849,14 @@ int git_filter_list_apply_to_blob(
|
|
|
832
849
|
git_buf *out,
|
|
833
850
|
git_filter_list *filters,
|
|
834
851
|
git_blob *blob)
|
|
852
|
+
{
|
|
853
|
+
GIT_BUF_WRAP_PRIVATE(out, git_filter_list__apply_to_blob, filters, blob);
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
int git_filter_list__apply_to_blob(
|
|
857
|
+
git_str *out,
|
|
858
|
+
git_filter_list *filters,
|
|
859
|
+
git_blob *blob)
|
|
835
860
|
{
|
|
836
861
|
struct buf_stream writer;
|
|
837
862
|
int error;
|
|
@@ -849,12 +874,13 @@ int git_filter_list_apply_to_blob(
|
|
|
849
874
|
struct buffered_stream {
|
|
850
875
|
git_writestream parent;
|
|
851
876
|
git_filter *filter;
|
|
852
|
-
int (*write_fn)(git_filter *, void **,
|
|
877
|
+
int (*write_fn)(git_filter *, void **, git_str *, const git_str *, const git_filter_source *);
|
|
878
|
+
int (*legacy_write_fn)(git_filter *, void **, git_buf *, const git_buf *, const git_filter_source *);
|
|
853
879
|
const git_filter_source *source;
|
|
854
880
|
void **payload;
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
881
|
+
git_str input;
|
|
882
|
+
git_str temp_buf;
|
|
883
|
+
git_str *output;
|
|
858
884
|
git_writestream *target;
|
|
859
885
|
};
|
|
860
886
|
|
|
@@ -864,13 +890,13 @@ static int buffered_stream_write(
|
|
|
864
890
|
struct buffered_stream *buffered_stream = (struct buffered_stream *)s;
|
|
865
891
|
GIT_ASSERT_ARG(buffered_stream);
|
|
866
892
|
|
|
867
|
-
return
|
|
893
|
+
return git_str_put(&buffered_stream->input, buffer, len);
|
|
868
894
|
}
|
|
869
895
|
|
|
870
896
|
static int buffered_stream_close(git_writestream *s)
|
|
871
897
|
{
|
|
872
898
|
struct buffered_stream *buffered_stream = (struct buffered_stream *)s;
|
|
873
|
-
|
|
899
|
+
git_str *writebuf;
|
|
874
900
|
git_error_state error_state = {0};
|
|
875
901
|
int error;
|
|
876
902
|
|
|
@@ -886,9 +912,6 @@ static int buffered_stream_close(git_writestream *s)
|
|
|
886
912
|
if (error == GIT_PASSTHROUGH) {
|
|
887
913
|
writebuf = &buffered_stream->input;
|
|
888
914
|
} else if (error == 0) {
|
|
889
|
-
if ((error = git_buf_sanitize(buffered_stream->output)) < 0)
|
|
890
|
-
return error;
|
|
891
|
-
|
|
892
915
|
writebuf = buffered_stream->output;
|
|
893
916
|
} else {
|
|
894
917
|
/* close stream before erroring out taking care
|
|
@@ -911,8 +934,8 @@ static void buffered_stream_free(git_writestream *s)
|
|
|
911
934
|
struct buffered_stream *buffered_stream = (struct buffered_stream *)s;
|
|
912
935
|
|
|
913
936
|
if (buffered_stream) {
|
|
914
|
-
|
|
915
|
-
|
|
937
|
+
git_str_dispose(&buffered_stream->input);
|
|
938
|
+
git_str_dispose(&buffered_stream->temp_buf);
|
|
916
939
|
git__free(buffered_stream);
|
|
917
940
|
}
|
|
918
941
|
}
|
|
@@ -920,8 +943,8 @@ static void buffered_stream_free(git_writestream *s)
|
|
|
920
943
|
int git_filter_buffered_stream_new(
|
|
921
944
|
git_writestream **out,
|
|
922
945
|
git_filter *filter,
|
|
923
|
-
int (*write_fn)(git_filter *, void **,
|
|
924
|
-
|
|
946
|
+
int (*write_fn)(git_filter *, void **, git_str *, const git_str *, const git_filter_source *),
|
|
947
|
+
git_str *temp_buf,
|
|
925
948
|
void **payload,
|
|
926
949
|
const git_filter_source *source,
|
|
927
950
|
git_writestream *target)
|
|
@@ -940,12 +963,43 @@ int git_filter_buffered_stream_new(
|
|
|
940
963
|
buffered_stream->target = target;
|
|
941
964
|
|
|
942
965
|
if (temp_buf)
|
|
943
|
-
|
|
966
|
+
git_str_clear(temp_buf);
|
|
944
967
|
|
|
945
968
|
*out = (git_writestream *)buffered_stream;
|
|
946
969
|
return 0;
|
|
947
970
|
}
|
|
948
971
|
|
|
972
|
+
#ifndef GIT_DEPRECATE_HARD
|
|
973
|
+
static int buffered_legacy_stream_new(
|
|
974
|
+
git_writestream **out,
|
|
975
|
+
git_filter *filter,
|
|
976
|
+
int (*legacy_write_fn)(git_filter *, void **, git_buf *, const git_buf *, const git_filter_source *),
|
|
977
|
+
git_str *temp_buf,
|
|
978
|
+
void **payload,
|
|
979
|
+
const git_filter_source *source,
|
|
980
|
+
git_writestream *target)
|
|
981
|
+
{
|
|
982
|
+
struct buffered_stream *buffered_stream = git__calloc(1, sizeof(struct buffered_stream));
|
|
983
|
+
GIT_ERROR_CHECK_ALLOC(buffered_stream);
|
|
984
|
+
|
|
985
|
+
buffered_stream->parent.write = buffered_stream_write;
|
|
986
|
+
buffered_stream->parent.close = buffered_stream_close;
|
|
987
|
+
buffered_stream->parent.free = buffered_stream_free;
|
|
988
|
+
buffered_stream->filter = filter;
|
|
989
|
+
buffered_stream->legacy_write_fn = legacy_write_fn;
|
|
990
|
+
buffered_stream->output = temp_buf ? temp_buf : &buffered_stream->temp_buf;
|
|
991
|
+
buffered_stream->payload = payload;
|
|
992
|
+
buffered_stream->source = source;
|
|
993
|
+
buffered_stream->target = target;
|
|
994
|
+
|
|
995
|
+
if (temp_buf)
|
|
996
|
+
git_str_clear(temp_buf);
|
|
997
|
+
|
|
998
|
+
*out = (git_writestream *)buffered_stream;
|
|
999
|
+
return 0;
|
|
1000
|
+
}
|
|
1001
|
+
#endif
|
|
1002
|
+
|
|
949
1003
|
static int setup_stream(
|
|
950
1004
|
git_writestream **out,
|
|
951
1005
|
git_filter_entry *fe,
|
|
@@ -961,7 +1015,7 @@ static int setup_stream(
|
|
|
961
1015
|
*/
|
|
962
1016
|
if (!fe->filter->stream) {
|
|
963
1017
|
/* Create a stream that proxies the one-shot apply */
|
|
964
|
-
return
|
|
1018
|
+
return buffered_legacy_stream_new(out,
|
|
965
1019
|
fe->filter, fe->filter->apply, filters->temp_buf,
|
|
966
1020
|
&fe->payload, &filters->source, last_stream);
|
|
967
1021
|
}
|
|
@@ -1032,7 +1086,7 @@ int git_filter_list_stream_file(
|
|
|
1032
1086
|
git_writestream *target)
|
|
1033
1087
|
{
|
|
1034
1088
|
char buf[FILTERIO_BUFSIZE];
|
|
1035
|
-
|
|
1089
|
+
git_str abspath = GIT_STR_INIT;
|
|
1036
1090
|
const char *base = repo ? git_repository_workdir(repo) : NULL;
|
|
1037
1091
|
git_vector filter_streams = GIT_VECTOR_INIT;
|
|
1038
1092
|
git_writestream *stream_start;
|
|
@@ -1041,8 +1095,8 @@ int git_filter_list_stream_file(
|
|
|
1041
1095
|
|
|
1042
1096
|
if ((error = stream_list_init(
|
|
1043
1097
|
&stream_start, &filter_streams, filters, target)) < 0 ||
|
|
1044
|
-
(error =
|
|
1045
|
-
(error =
|
|
1098
|
+
(error = git_fs_path_join_unrooted(&abspath, path, base, NULL)) < 0 ||
|
|
1099
|
+
(error = git_path_validate_str_length(repo, &abspath)) < 0)
|
|
1046
1100
|
goto done;
|
|
1047
1101
|
|
|
1048
1102
|
initialized = 1;
|
|
@@ -1067,7 +1121,7 @@ done:
|
|
|
1067
1121
|
if (fd >= 0)
|
|
1068
1122
|
p_close(fd);
|
|
1069
1123
|
filter_streams_free(&filter_streams);
|
|
1070
|
-
|
|
1124
|
+
git_str_dispose(&abspath);
|
|
1071
1125
|
return error;
|
|
1072
1126
|
}
|
|
1073
1127
|
|
|
@@ -1101,7 +1155,7 @@ int git_filter_list_stream_blob(
|
|
|
1101
1155
|
git_blob *blob,
|
|
1102
1156
|
git_writestream *target)
|
|
1103
1157
|
{
|
|
1104
|
-
|
|
1158
|
+
git_str in = GIT_STR_INIT;
|
|
1105
1159
|
|
|
1106
1160
|
if (buf_from_blob(&in, blob) < 0)
|
|
1107
1161
|
return -1;
|
|
@@ -1125,22 +1179,12 @@ int git_filter_list_stream_data(
|
|
|
1125
1179
|
git_buf *data,
|
|
1126
1180
|
git_writestream *target)
|
|
1127
1181
|
{
|
|
1128
|
-
int error;
|
|
1129
|
-
|
|
1130
|
-
if ((error = git_buf_sanitize(data)) < 0)
|
|
1131
|
-
return error;
|
|
1132
|
-
|
|
1133
1182
|
return git_filter_list_stream_buffer(filters, data->ptr, data->size, target);
|
|
1134
1183
|
}
|
|
1135
1184
|
|
|
1136
1185
|
int git_filter_list_apply_to_data(
|
|
1137
1186
|
git_buf *tgt, git_filter_list *filters, git_buf *src)
|
|
1138
1187
|
{
|
|
1139
|
-
int error;
|
|
1140
|
-
|
|
1141
|
-
if ((error = git_buf_sanitize(src)) < 0)
|
|
1142
|
-
return error;
|
|
1143
|
-
|
|
1144
1188
|
return git_filter_list_apply_to_buffer(tgt, filters, src->ptr, src->size);
|
|
1145
1189
|
}
|
|
1146
1190
|
|
data/vendor/libgit2/src/filter.h
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
typedef struct {
|
|
20
20
|
git_filter_options options;
|
|
21
21
|
git_attr_session *attr_session;
|
|
22
|
-
|
|
22
|
+
git_str *temp_buf;
|
|
23
23
|
} git_filter_session;
|
|
24
24
|
|
|
25
25
|
#define GIT_FILTER_SESSION_INIT {GIT_FILTER_OPTIONS_INIT, 0}
|
|
@@ -36,14 +36,35 @@ extern int git_filter_list__load(
|
|
|
36
36
|
git_filter_mode_t mode,
|
|
37
37
|
git_filter_session *filter_session);
|
|
38
38
|
|
|
39
|
+
int git_filter_list__apply_to_buffer(
|
|
40
|
+
git_str *out,
|
|
41
|
+
git_filter_list *filters,
|
|
42
|
+
const char *in,
|
|
43
|
+
size_t in_len);
|
|
44
|
+
int git_filter_list__apply_to_file(
|
|
45
|
+
git_str *out,
|
|
46
|
+
git_filter_list *filters,
|
|
47
|
+
git_repository *repo,
|
|
48
|
+
const char *path);
|
|
49
|
+
int git_filter_list__apply_to_blob(
|
|
50
|
+
git_str *out,
|
|
51
|
+
git_filter_list *filters,
|
|
52
|
+
git_blob *blob);
|
|
53
|
+
|
|
39
54
|
/*
|
|
40
55
|
* The given input buffer will be converted to the given output buffer.
|
|
41
56
|
* The input buffer will be freed (_if_ it was allocated).
|
|
42
57
|
*/
|
|
43
58
|
extern int git_filter_list__convert_buf(
|
|
44
|
-
|
|
59
|
+
git_str *out,
|
|
60
|
+
git_filter_list *filters,
|
|
61
|
+
git_str *in);
|
|
62
|
+
|
|
63
|
+
extern int git_filter_list__apply_to_file(
|
|
64
|
+
git_str *out,
|
|
45
65
|
git_filter_list *filters,
|
|
46
|
-
|
|
66
|
+
git_repository *repo,
|
|
67
|
+
const char *path);
|
|
47
68
|
|
|
48
69
|
/*
|
|
49
70
|
* Available filters
|
|
@@ -55,8 +76,8 @@ extern git_filter *git_ident_filter_new(void);
|
|
|
55
76
|
extern int git_filter_buffered_stream_new(
|
|
56
77
|
git_writestream **out,
|
|
57
78
|
git_filter *filter,
|
|
58
|
-
int (*write_fn)(git_filter *, void **,
|
|
59
|
-
|
|
79
|
+
int (*write_fn)(git_filter *, void **, git_str *, const git_str *, const git_filter_source *),
|
|
80
|
+
git_str *temp_buf,
|
|
60
81
|
void **payload,
|
|
61
82
|
const git_filter_source *source,
|
|
62
83
|
git_writestream *target);
|