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
|
@@ -110,7 +110,7 @@ enum {
|
|
|
110
110
|
GIT_SUBMODULE_STATUS__HEAD_NOT_SUBMODULE = (1u << 24),
|
|
111
111
|
GIT_SUBMODULE_STATUS__INDEX_NOT_SUBMODULE = (1u << 25),
|
|
112
112
|
GIT_SUBMODULE_STATUS__WD_NOT_SUBMODULE = (1u << 26),
|
|
113
|
-
GIT_SUBMODULE_STATUS__INDEX_MULTIPLE_ENTRIES = (1u << 27)
|
|
113
|
+
GIT_SUBMODULE_STATUS__INDEX_MULTIPLE_ENTRIES = (1u << 27)
|
|
114
114
|
};
|
|
115
115
|
|
|
116
116
|
#define GIT_SUBMODULE_STATUS__CLEAR_INTERNAL(S) \
|
data/vendor/libgit2/src/sysdir.c
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
#include "sysdir.h"
|
|
9
9
|
|
|
10
10
|
#include "runtime.h"
|
|
11
|
-
#include "
|
|
12
|
-
#include "
|
|
11
|
+
#include "str.h"
|
|
12
|
+
#include "fs_path.h"
|
|
13
13
|
#include <ctype.h>
|
|
14
14
|
#if GIT_WIN32
|
|
15
15
|
#include "win32/findfile.h"
|
|
@@ -18,27 +18,27 @@
|
|
|
18
18
|
#include <pwd.h>
|
|
19
19
|
#endif
|
|
20
20
|
|
|
21
|
-
static int git_sysdir_guess_programdata_dirs(
|
|
21
|
+
static int git_sysdir_guess_programdata_dirs(git_str *out)
|
|
22
22
|
{
|
|
23
23
|
#ifdef GIT_WIN32
|
|
24
24
|
return git_win32__find_programdata_dirs(out);
|
|
25
25
|
#else
|
|
26
|
-
|
|
26
|
+
git_str_clear(out);
|
|
27
27
|
return 0;
|
|
28
28
|
#endif
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
static int git_sysdir_guess_system_dirs(
|
|
31
|
+
static int git_sysdir_guess_system_dirs(git_str *out)
|
|
32
32
|
{
|
|
33
33
|
#ifdef GIT_WIN32
|
|
34
|
-
return git_win32__find_system_dirs(out,
|
|
34
|
+
return git_win32__find_system_dirs(out, "etc");
|
|
35
35
|
#else
|
|
36
|
-
return
|
|
36
|
+
return git_str_sets(out, "/etc");
|
|
37
37
|
#endif
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
#ifndef GIT_WIN32
|
|
41
|
-
static int get_passwd_home(
|
|
41
|
+
static int get_passwd_home(git_str *out, uid_t uid)
|
|
42
42
|
{
|
|
43
43
|
struct passwd pwd, *pwdptr;
|
|
44
44
|
char *buf = NULL;
|
|
@@ -66,7 +66,7 @@ static int get_passwd_home(git_buf *out, uid_t uid)
|
|
|
66
66
|
goto out;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
if ((error =
|
|
69
|
+
if ((error = git_str_puts(out, pwdptr->pw_dir)) < 0)
|
|
70
70
|
goto out;
|
|
71
71
|
|
|
72
72
|
out:
|
|
@@ -75,7 +75,7 @@ out:
|
|
|
75
75
|
}
|
|
76
76
|
#endif
|
|
77
77
|
|
|
78
|
-
static int git_sysdir_guess_global_dirs(
|
|
78
|
+
static int git_sysdir_guess_global_dirs(git_str *out)
|
|
79
79
|
{
|
|
80
80
|
#ifdef GIT_WIN32
|
|
81
81
|
return git_win32__find_global_dirs(out);
|
|
@@ -114,12 +114,12 @@ static int git_sysdir_guess_global_dirs(git_buf *out)
|
|
|
114
114
|
#endif
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
static int git_sysdir_guess_xdg_dirs(
|
|
117
|
+
static int git_sysdir_guess_xdg_dirs(git_str *out)
|
|
118
118
|
{
|
|
119
119
|
#ifdef GIT_WIN32
|
|
120
120
|
return git_win32__find_xdg_dirs(out);
|
|
121
121
|
#else
|
|
122
|
-
|
|
122
|
+
git_str env = GIT_STR_INIT;
|
|
123
123
|
int error;
|
|
124
124
|
uid_t uid, euid;
|
|
125
125
|
|
|
@@ -132,13 +132,13 @@ static int git_sysdir_guess_xdg_dirs(git_buf *out)
|
|
|
132
132
|
*/
|
|
133
133
|
if (uid == euid) {
|
|
134
134
|
if ((error = git__getenv(&env, "XDG_CONFIG_HOME")) == 0)
|
|
135
|
-
error =
|
|
135
|
+
error = git_str_joinpath(out, env.ptr, "git");
|
|
136
136
|
|
|
137
137
|
if (error == GIT_ENOTFOUND && (error = git__getenv(&env, "HOME")) == 0)
|
|
138
|
-
error =
|
|
138
|
+
error = git_str_joinpath(out, env.ptr, ".config/git");
|
|
139
139
|
} else {
|
|
140
140
|
if ((error = get_passwd_home(&env, euid)) == 0)
|
|
141
|
-
error =
|
|
141
|
+
error = git_str_joinpath(out, env.ptr, ".config/git");
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
if (error == GIT_ENOTFOUND) {
|
|
@@ -146,31 +146,31 @@ static int git_sysdir_guess_xdg_dirs(git_buf *out)
|
|
|
146
146
|
error = 0;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
|
|
149
|
+
git_str_dispose(&env);
|
|
150
150
|
return error;
|
|
151
151
|
#endif
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
static int git_sysdir_guess_template_dirs(
|
|
154
|
+
static int git_sysdir_guess_template_dirs(git_str *out)
|
|
155
155
|
{
|
|
156
156
|
#ifdef GIT_WIN32
|
|
157
|
-
return git_win32__find_system_dirs(out,
|
|
157
|
+
return git_win32__find_system_dirs(out, "share/git-core/templates");
|
|
158
158
|
#else
|
|
159
|
-
return
|
|
159
|
+
return git_str_sets(out, "/usr/share/git-core/templates");
|
|
160
160
|
#endif
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
struct git_sysdir__dir {
|
|
164
|
-
|
|
165
|
-
int (*guess)(
|
|
164
|
+
git_str buf;
|
|
165
|
+
int (*guess)(git_str *out);
|
|
166
166
|
};
|
|
167
167
|
|
|
168
168
|
static struct git_sysdir__dir git_sysdir__dirs[] = {
|
|
169
|
-
{
|
|
170
|
-
{
|
|
171
|
-
{
|
|
172
|
-
{
|
|
173
|
-
{
|
|
169
|
+
{ GIT_STR_INIT, git_sysdir_guess_system_dirs },
|
|
170
|
+
{ GIT_STR_INIT, git_sysdir_guess_global_dirs },
|
|
171
|
+
{ GIT_STR_INIT, git_sysdir_guess_xdg_dirs },
|
|
172
|
+
{ GIT_STR_INIT, git_sysdir_guess_programdata_dirs },
|
|
173
|
+
{ GIT_STR_INIT, git_sysdir_guess_template_dirs },
|
|
174
174
|
};
|
|
175
175
|
|
|
176
176
|
static void git_sysdir_global_shutdown(void)
|
|
@@ -178,7 +178,7 @@ static void git_sysdir_global_shutdown(void)
|
|
|
178
178
|
size_t i;
|
|
179
179
|
|
|
180
180
|
for (i = 0; i < ARRAY_SIZE(git_sysdir__dirs); ++i)
|
|
181
|
-
|
|
181
|
+
git_str_dispose(&git_sysdir__dirs[i].buf);
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
int git_sysdir_global_init(void)
|
|
@@ -189,9 +189,25 @@ int git_sysdir_global_init(void)
|
|
|
189
189
|
for (i = 0; !error && i < ARRAY_SIZE(git_sysdir__dirs); i++)
|
|
190
190
|
error = git_sysdir__dirs[i].guess(&git_sysdir__dirs[i].buf);
|
|
191
191
|
|
|
192
|
+
if (error)
|
|
193
|
+
return error;
|
|
194
|
+
|
|
192
195
|
return git_runtime_shutdown_register(git_sysdir_global_shutdown);
|
|
193
196
|
}
|
|
194
197
|
|
|
198
|
+
int git_sysdir_reset(void)
|
|
199
|
+
{
|
|
200
|
+
size_t i;
|
|
201
|
+
int error = 0;
|
|
202
|
+
|
|
203
|
+
for (i = 0; !error && i < ARRAY_SIZE(git_sysdir__dirs); ++i) {
|
|
204
|
+
git_str_dispose(&git_sysdir__dirs[i].buf);
|
|
205
|
+
error = git_sysdir__dirs[i].guess(&git_sysdir__dirs[i].buf);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return error;
|
|
209
|
+
}
|
|
210
|
+
|
|
195
211
|
static int git_sysdir_check_selector(git_sysdir_t which)
|
|
196
212
|
{
|
|
197
213
|
if (which < ARRAY_SIZE(git_sysdir__dirs))
|
|
@@ -202,7 +218,7 @@ static int git_sysdir_check_selector(git_sysdir_t which)
|
|
|
202
218
|
}
|
|
203
219
|
|
|
204
220
|
|
|
205
|
-
int git_sysdir_get(const
|
|
221
|
+
int git_sysdir_get(const git_str **out, git_sysdir_t which)
|
|
206
222
|
{
|
|
207
223
|
GIT_ASSERT_ARG(out);
|
|
208
224
|
|
|
@@ -219,7 +235,7 @@ int git_sysdir_get(const git_buf **out, git_sysdir_t which)
|
|
|
219
235
|
int git_sysdir_set(git_sysdir_t which, const char *search_path)
|
|
220
236
|
{
|
|
221
237
|
const char *expand_path = NULL;
|
|
222
|
-
|
|
238
|
+
git_str merge = GIT_STR_INIT;
|
|
223
239
|
|
|
224
240
|
GIT_ERROR_CHECK_ERROR(git_sysdir_check_selector(which));
|
|
225
241
|
|
|
@@ -233,48 +249,48 @@ int git_sysdir_set(git_sysdir_t which, const char *search_path)
|
|
|
233
249
|
/* if $PATH is not referenced, then just set the path */
|
|
234
250
|
if (!expand_path) {
|
|
235
251
|
if (search_path)
|
|
236
|
-
|
|
252
|
+
git_str_sets(&git_sysdir__dirs[which].buf, search_path);
|
|
237
253
|
|
|
238
254
|
goto done;
|
|
239
255
|
}
|
|
240
256
|
|
|
241
257
|
/* otherwise set to join(before $PATH, old value, after $PATH) */
|
|
242
258
|
if (expand_path > search_path)
|
|
243
|
-
|
|
259
|
+
git_str_set(&merge, search_path, expand_path - search_path);
|
|
244
260
|
|
|
245
|
-
if (
|
|
246
|
-
|
|
261
|
+
if (git_str_len(&git_sysdir__dirs[which].buf))
|
|
262
|
+
git_str_join(&merge, GIT_PATH_LIST_SEPARATOR,
|
|
247
263
|
merge.ptr, git_sysdir__dirs[which].buf.ptr);
|
|
248
264
|
|
|
249
265
|
expand_path += strlen(PATH_MAGIC);
|
|
250
266
|
if (*expand_path)
|
|
251
|
-
|
|
267
|
+
git_str_join(&merge, GIT_PATH_LIST_SEPARATOR, merge.ptr, expand_path);
|
|
252
268
|
|
|
253
|
-
|
|
254
|
-
|
|
269
|
+
git_str_swap(&git_sysdir__dirs[which].buf, &merge);
|
|
270
|
+
git_str_dispose(&merge);
|
|
255
271
|
|
|
256
272
|
done:
|
|
257
|
-
if (
|
|
273
|
+
if (git_str_oom(&git_sysdir__dirs[which].buf))
|
|
258
274
|
return -1;
|
|
259
275
|
|
|
260
276
|
return 0;
|
|
261
277
|
}
|
|
262
278
|
|
|
263
279
|
static int git_sysdir_find_in_dirlist(
|
|
264
|
-
|
|
280
|
+
git_str *path,
|
|
265
281
|
const char *name,
|
|
266
282
|
git_sysdir_t which,
|
|
267
283
|
const char *label)
|
|
268
284
|
{
|
|
269
285
|
size_t len;
|
|
270
286
|
const char *scan, *next = NULL;
|
|
271
|
-
const
|
|
287
|
+
const git_str *syspath;
|
|
272
288
|
|
|
273
289
|
GIT_ERROR_CHECK_ERROR(git_sysdir_get(&syspath, which));
|
|
274
|
-
if (!syspath || !
|
|
290
|
+
if (!syspath || !git_str_len(syspath))
|
|
275
291
|
goto done;
|
|
276
292
|
|
|
277
|
-
for (scan =
|
|
293
|
+
for (scan = git_str_cstr(syspath); scan; scan = next) {
|
|
278
294
|
/* find unescaped separator or end of string */
|
|
279
295
|
for (next = scan; *next; ++next) {
|
|
280
296
|
if (*next == GIT_PATH_LIST_SEPARATOR &&
|
|
@@ -287,11 +303,11 @@ static int git_sysdir_find_in_dirlist(
|
|
|
287
303
|
if (!len)
|
|
288
304
|
continue;
|
|
289
305
|
|
|
290
|
-
GIT_ERROR_CHECK_ERROR(
|
|
306
|
+
GIT_ERROR_CHECK_ERROR(git_str_set(path, scan, len));
|
|
291
307
|
if (name)
|
|
292
|
-
GIT_ERROR_CHECK_ERROR(
|
|
308
|
+
GIT_ERROR_CHECK_ERROR(git_str_joinpath(path, path->ptr, name));
|
|
293
309
|
|
|
294
|
-
if (
|
|
310
|
+
if (git_fs_path_exists(path->ptr))
|
|
295
311
|
return 0;
|
|
296
312
|
}
|
|
297
313
|
|
|
@@ -300,47 +316,47 @@ done:
|
|
|
300
316
|
git_error_set(GIT_ERROR_OS, "the %s file '%s' doesn't exist", label, name);
|
|
301
317
|
else
|
|
302
318
|
git_error_set(GIT_ERROR_OS, "the %s directory doesn't exist", label);
|
|
303
|
-
|
|
319
|
+
git_str_dispose(path);
|
|
304
320
|
return GIT_ENOTFOUND;
|
|
305
321
|
}
|
|
306
322
|
|
|
307
|
-
int git_sysdir_find_system_file(
|
|
323
|
+
int git_sysdir_find_system_file(git_str *path, const char *filename)
|
|
308
324
|
{
|
|
309
325
|
return git_sysdir_find_in_dirlist(
|
|
310
326
|
path, filename, GIT_SYSDIR_SYSTEM, "system");
|
|
311
327
|
}
|
|
312
328
|
|
|
313
|
-
int git_sysdir_find_global_file(
|
|
329
|
+
int git_sysdir_find_global_file(git_str *path, const char *filename)
|
|
314
330
|
{
|
|
315
331
|
return git_sysdir_find_in_dirlist(
|
|
316
332
|
path, filename, GIT_SYSDIR_GLOBAL, "global");
|
|
317
333
|
}
|
|
318
334
|
|
|
319
|
-
int git_sysdir_find_xdg_file(
|
|
335
|
+
int git_sysdir_find_xdg_file(git_str *path, const char *filename)
|
|
320
336
|
{
|
|
321
337
|
return git_sysdir_find_in_dirlist(
|
|
322
338
|
path, filename, GIT_SYSDIR_XDG, "global/xdg");
|
|
323
339
|
}
|
|
324
340
|
|
|
325
|
-
int git_sysdir_find_programdata_file(
|
|
341
|
+
int git_sysdir_find_programdata_file(git_str *path, const char *filename)
|
|
326
342
|
{
|
|
327
343
|
return git_sysdir_find_in_dirlist(
|
|
328
344
|
path, filename, GIT_SYSDIR_PROGRAMDATA, "ProgramData");
|
|
329
345
|
}
|
|
330
346
|
|
|
331
|
-
int git_sysdir_find_template_dir(
|
|
347
|
+
int git_sysdir_find_template_dir(git_str *path)
|
|
332
348
|
{
|
|
333
349
|
return git_sysdir_find_in_dirlist(
|
|
334
350
|
path, NULL, GIT_SYSDIR_TEMPLATE, "template");
|
|
335
351
|
}
|
|
336
352
|
|
|
337
|
-
int git_sysdir_expand_global_file(
|
|
353
|
+
int git_sysdir_expand_global_file(git_str *path, const char *filename)
|
|
338
354
|
{
|
|
339
355
|
int error;
|
|
340
356
|
|
|
341
357
|
if ((error = git_sysdir_find_global_file(path, NULL)) == 0) {
|
|
342
358
|
if (filename)
|
|
343
|
-
error =
|
|
359
|
+
error = git_str_joinpath(path, path->ptr, filename);
|
|
344
360
|
}
|
|
345
361
|
|
|
346
362
|
return error;
|
data/vendor/libgit2/src/sysdir.h
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
#include "common.h"
|
|
11
11
|
|
|
12
12
|
#include "posix.h"
|
|
13
|
-
#include "
|
|
13
|
+
#include "str.h"
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Find a "global" file (i.e. one in a user's home directory).
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* @param filename name of file to find in the home directory
|
|
20
20
|
* @return 0 if found, GIT_ENOTFOUND if not found, or -1 on other OS error
|
|
21
21
|
*/
|
|
22
|
-
extern int git_sysdir_find_global_file(
|
|
22
|
+
extern int git_sysdir_find_global_file(git_str *path, const char *filename);
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Find an "XDG" file (i.e. one in user's XDG config path).
|
|
@@ -28,7 +28,7 @@ extern int git_sysdir_find_global_file(git_buf *path, const char *filename);
|
|
|
28
28
|
* @param filename name of file to find in the home directory
|
|
29
29
|
* @return 0 if found, GIT_ENOTFOUND if not found, or -1 on other OS error
|
|
30
30
|
*/
|
|
31
|
-
extern int git_sysdir_find_xdg_file(
|
|
31
|
+
extern int git_sysdir_find_xdg_file(git_str *path, const char *filename);
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* Find a "system" file (i.e. one shared for all users of the system).
|
|
@@ -37,7 +37,7 @@ extern int git_sysdir_find_xdg_file(git_buf *path, const char *filename);
|
|
|
37
37
|
* @param filename name of file to find in the home directory
|
|
38
38
|
* @return 0 if found, GIT_ENOTFOUND if not found, or -1 on other OS error
|
|
39
39
|
*/
|
|
40
|
-
extern int git_sysdir_find_system_file(
|
|
40
|
+
extern int git_sysdir_find_system_file(git_str *path, const char *filename);
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
43
|
* Find a "ProgramData" file (i.e. one in %PROGRAMDATA%)
|
|
@@ -46,7 +46,7 @@ extern int git_sysdir_find_system_file(git_buf *path, const char *filename);
|
|
|
46
46
|
* @param filename name of file to find in the ProgramData directory
|
|
47
47
|
* @return 0 if found, GIT_ENOTFOUND if not found, or -1 on other OS error
|
|
48
48
|
*/
|
|
49
|
-
extern int git_sysdir_find_programdata_file(
|
|
49
|
+
extern int git_sysdir_find_programdata_file(git_str *path, const char *filename);
|
|
50
50
|
|
|
51
51
|
/**
|
|
52
52
|
* Find template directory.
|
|
@@ -54,7 +54,7 @@ extern int git_sysdir_find_programdata_file(git_buf *path, const char *filename)
|
|
|
54
54
|
* @param path buffer to write the full path into
|
|
55
55
|
* @return 0 if found, GIT_ENOTFOUND if not found, or -1 on other OS error
|
|
56
56
|
*/
|
|
57
|
-
extern int git_sysdir_find_template_dir(
|
|
57
|
+
extern int git_sysdir_find_template_dir(git_str *path);
|
|
58
58
|
|
|
59
59
|
/**
|
|
60
60
|
* Expand the name of a "global" file (i.e. one in a user's home
|
|
@@ -66,7 +66,7 @@ extern int git_sysdir_find_template_dir(git_buf *path);
|
|
|
66
66
|
* @param filename name of file in the home directory
|
|
67
67
|
* @return 0 on success or -1 on error
|
|
68
68
|
*/
|
|
69
|
-
extern int git_sysdir_expand_global_file(
|
|
69
|
+
extern int git_sysdir_expand_global_file(git_str *path, const char *filename);
|
|
70
70
|
|
|
71
71
|
typedef enum {
|
|
72
72
|
GIT_SYSDIR_SYSTEM = 0,
|
|
@@ -74,7 +74,7 @@ typedef enum {
|
|
|
74
74
|
GIT_SYSDIR_XDG = 2,
|
|
75
75
|
GIT_SYSDIR_PROGRAMDATA = 3,
|
|
76
76
|
GIT_SYSDIR_TEMPLATE = 4,
|
|
77
|
-
GIT_SYSDIR__MAX = 5
|
|
77
|
+
GIT_SYSDIR__MAX = 5
|
|
78
78
|
} git_sysdir_t;
|
|
79
79
|
|
|
80
80
|
/**
|
|
@@ -87,11 +87,11 @@ extern int git_sysdir_global_init(void);
|
|
|
87
87
|
/**
|
|
88
88
|
* Get the search path for global/system/xdg files
|
|
89
89
|
*
|
|
90
|
-
* @param out pointer to
|
|
90
|
+
* @param out pointer to git_str containing search path
|
|
91
91
|
* @param which which list of paths to return
|
|
92
92
|
* @return 0 on success, <0 on failure
|
|
93
93
|
*/
|
|
94
|
-
extern int git_sysdir_get(const
|
|
94
|
+
extern int git_sysdir_get(const git_str **out, git_sysdir_t which);
|
|
95
95
|
|
|
96
96
|
/**
|
|
97
97
|
* Set search paths for global/system/xdg files
|
|
@@ -105,4 +105,9 @@ extern int git_sysdir_get(const git_buf **out, git_sysdir_t which);
|
|
|
105
105
|
*/
|
|
106
106
|
extern int git_sysdir_set(git_sysdir_t which, const char *paths);
|
|
107
107
|
|
|
108
|
+
/**
|
|
109
|
+
* Reset search paths for global/system/xdg files.
|
|
110
|
+
*/
|
|
111
|
+
extern int git_sysdir_reset(void);
|
|
112
|
+
|
|
108
113
|
#endif
|
data/vendor/libgit2/src/tag.c
CHANGED
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
|
|
10
10
|
#include "commit.h"
|
|
11
11
|
#include "signature.h"
|
|
12
|
-
#include "message.h"
|
|
13
12
|
#include "wildmatch.h"
|
|
14
13
|
#include "git2/object.h"
|
|
15
14
|
#include "git2/repository.h"
|
|
@@ -63,7 +62,7 @@ const char *git_tag_message(const git_tag *t)
|
|
|
63
62
|
static int tag_error(const char *str)
|
|
64
63
|
{
|
|
65
64
|
git_error_set(GIT_ERROR_TAG, "failed to parse tag: %s", str);
|
|
66
|
-
return
|
|
65
|
+
return GIT_EINVALID;
|
|
67
66
|
}
|
|
68
67
|
|
|
69
68
|
static int tag_parse(git_tag *tag, const char *buffer, const char *buffer_end)
|
|
@@ -74,6 +73,7 @@ static int tag_parse(git_tag *tag, const char *buffer, const char *buffer_end)
|
|
|
74
73
|
size_t text_len, alloc_len;
|
|
75
74
|
const char *search;
|
|
76
75
|
unsigned int i;
|
|
76
|
+
int error;
|
|
77
77
|
|
|
78
78
|
if (git_oid__parse(&tag->target, &buffer, buffer_end, "object ") < 0)
|
|
79
79
|
return tag_error("object field invalid");
|
|
@@ -131,8 +131,8 @@ static int tag_parse(git_tag *tag, const char *buffer, const char *buffer_end)
|
|
|
131
131
|
tag->tagger = git__malloc(sizeof(git_signature));
|
|
132
132
|
GIT_ERROR_CHECK_ALLOC(tag->tagger);
|
|
133
133
|
|
|
134
|
-
if (git_signature__parse(tag->tagger, &buffer, buffer_end, "tagger ", '\n') < 0)
|
|
135
|
-
return
|
|
134
|
+
if ((error = git_signature__parse(tag->tagger, &buffer, buffer_end, "tagger ", '\n')) < 0)
|
|
135
|
+
return error;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
tag->message = NULL;
|
|
@@ -176,7 +176,7 @@ int git_tag__parse(void *_tag, git_odb_object *odb_obj)
|
|
|
176
176
|
|
|
177
177
|
static int retrieve_tag_reference(
|
|
178
178
|
git_reference **tag_reference_out,
|
|
179
|
-
|
|
179
|
+
git_str *ref_name_out,
|
|
180
180
|
git_repository *repo,
|
|
181
181
|
const char *tag_name)
|
|
182
182
|
{
|
|
@@ -185,7 +185,7 @@ static int retrieve_tag_reference(
|
|
|
185
185
|
|
|
186
186
|
*tag_reference_out = NULL;
|
|
187
187
|
|
|
188
|
-
if (
|
|
188
|
+
if (git_str_joinpath(ref_name_out, GIT_REFS_TAGS_DIR, tag_name) < 0)
|
|
189
189
|
return -1;
|
|
190
190
|
|
|
191
191
|
error = git_reference_lookup(&tag_ref, repo, ref_name_out->ptr);
|
|
@@ -199,11 +199,11 @@ static int retrieve_tag_reference(
|
|
|
199
199
|
|
|
200
200
|
static int retrieve_tag_reference_oid(
|
|
201
201
|
git_oid *oid,
|
|
202
|
-
|
|
202
|
+
git_str *ref_name_out,
|
|
203
203
|
git_repository *repo,
|
|
204
204
|
const char *tag_name)
|
|
205
205
|
{
|
|
206
|
-
if (
|
|
206
|
+
if (git_str_joinpath(ref_name_out, GIT_REFS_TAGS_DIR, tag_name) < 0)
|
|
207
207
|
return -1;
|
|
208
208
|
|
|
209
209
|
return git_reference_name_to_id(oid, repo, ref_name_out->ptr);
|
|
@@ -217,16 +217,16 @@ static int write_tag_annotation(
|
|
|
217
217
|
const git_signature *tagger,
|
|
218
218
|
const char *message)
|
|
219
219
|
{
|
|
220
|
-
|
|
220
|
+
git_str tag = GIT_STR_INIT;
|
|
221
221
|
git_odb *odb;
|
|
222
222
|
|
|
223
223
|
git_oid__writebuf(&tag, "object ", git_object_id(target));
|
|
224
|
-
|
|
225
|
-
|
|
224
|
+
git_str_printf(&tag, "type %s\n", git_object_type2string(git_object_type(target)));
|
|
225
|
+
git_str_printf(&tag, "tag %s\n", tag_name);
|
|
226
226
|
git_signature__writebuf(&tag, "tagger ", tagger);
|
|
227
|
-
|
|
227
|
+
git_str_putc(&tag, '\n');
|
|
228
228
|
|
|
229
|
-
if (
|
|
229
|
+
if (git_str_puts(&tag, message) < 0)
|
|
230
230
|
goto on_error;
|
|
231
231
|
|
|
232
232
|
if (git_repository_odb__weakptr(&odb, repo) < 0)
|
|
@@ -235,11 +235,11 @@ static int write_tag_annotation(
|
|
|
235
235
|
if (git_odb_write(oid, odb, tag.ptr, tag.size, GIT_OBJECT_TAG) < 0)
|
|
236
236
|
goto on_error;
|
|
237
237
|
|
|
238
|
-
|
|
238
|
+
git_str_dispose(&tag);
|
|
239
239
|
return 0;
|
|
240
240
|
|
|
241
241
|
on_error:
|
|
242
|
-
|
|
242
|
+
git_str_dispose(&tag);
|
|
243
243
|
git_error_set(GIT_ERROR_OBJECT, "failed to create tag annotation");
|
|
244
244
|
return -1;
|
|
245
245
|
}
|
|
@@ -255,7 +255,7 @@ static int git_tag_create__internal(
|
|
|
255
255
|
int create_tag_annotation)
|
|
256
256
|
{
|
|
257
257
|
git_reference *new_ref = NULL;
|
|
258
|
-
|
|
258
|
+
git_str ref_name = GIT_STR_INIT;
|
|
259
259
|
|
|
260
260
|
int error;
|
|
261
261
|
|
|
@@ -276,7 +276,7 @@ static int git_tag_create__internal(
|
|
|
276
276
|
/** Ensure the tag name doesn't conflict with an already existing
|
|
277
277
|
* reference unless overwriting has explicitly been requested **/
|
|
278
278
|
if (error == 0 && !allow_ref_overwrite) {
|
|
279
|
-
|
|
279
|
+
git_str_dispose(&ref_name);
|
|
280
280
|
git_error_set(GIT_ERROR_TAG, "tag already exists");
|
|
281
281
|
return GIT_EEXISTS;
|
|
282
282
|
}
|
|
@@ -291,7 +291,7 @@ static int git_tag_create__internal(
|
|
|
291
291
|
|
|
292
292
|
cleanup:
|
|
293
293
|
git_reference_free(new_ref);
|
|
294
|
-
|
|
294
|
+
git_str_dispose(&ref_name);
|
|
295
295
|
return error;
|
|
296
296
|
}
|
|
297
297
|
|
|
@@ -344,7 +344,7 @@ int git_tag_create_from_buffer(git_oid *oid, git_repository *repo, const char *b
|
|
|
344
344
|
git_odb_object *target_obj;
|
|
345
345
|
|
|
346
346
|
git_reference *new_ref = NULL;
|
|
347
|
-
|
|
347
|
+
git_str ref_name = GIT_STR_INIT;
|
|
348
348
|
|
|
349
349
|
GIT_ASSERT_ARG(oid);
|
|
350
350
|
GIT_ASSERT_ARG(buffer);
|
|
@@ -395,7 +395,7 @@ int git_tag_create_from_buffer(git_oid *oid, git_repository *repo, const char *b
|
|
|
395
395
|
git_odb_stream_free(stream);
|
|
396
396
|
|
|
397
397
|
if (error < 0) {
|
|
398
|
-
|
|
398
|
+
git_str_dispose(&ref_name);
|
|
399
399
|
return error;
|
|
400
400
|
}
|
|
401
401
|
|
|
@@ -403,7 +403,7 @@ int git_tag_create_from_buffer(git_oid *oid, git_repository *repo, const char *b
|
|
|
403
403
|
&new_ref, repo, ref_name.ptr, oid, allow_ref_overwrite, NULL);
|
|
404
404
|
|
|
405
405
|
git_reference_free(new_ref);
|
|
406
|
-
|
|
406
|
+
git_str_dispose(&ref_name);
|
|
407
407
|
|
|
408
408
|
return error;
|
|
409
409
|
|
|
@@ -418,12 +418,12 @@ on_error:
|
|
|
418
418
|
int git_tag_delete(git_repository *repo, const char *tag_name)
|
|
419
419
|
{
|
|
420
420
|
git_reference *tag_ref;
|
|
421
|
-
|
|
421
|
+
git_str ref_name = GIT_STR_INIT;
|
|
422
422
|
int error;
|
|
423
423
|
|
|
424
424
|
error = retrieve_tag_reference(&tag_ref, &ref_name, repo, tag_name);
|
|
425
425
|
|
|
426
|
-
|
|
426
|
+
git_str_dispose(&ref_name);
|
|
427
427
|
|
|
428
428
|
if (error < 0)
|
|
429
429
|
return error;
|
|
@@ -535,11 +535,13 @@ int git_tag_peel(git_object **tag_target, const git_tag *tag)
|
|
|
535
535
|
|
|
536
536
|
int git_tag_name_is_valid(int *valid, const char *name)
|
|
537
537
|
{
|
|
538
|
-
|
|
538
|
+
git_str ref_name = GIT_STR_INIT;
|
|
539
539
|
int error = 0;
|
|
540
540
|
|
|
541
541
|
GIT_ASSERT(valid);
|
|
542
542
|
|
|
543
|
+
*valid = 0;
|
|
544
|
+
|
|
543
545
|
/*
|
|
544
546
|
* Discourage tag name starting with dash,
|
|
545
547
|
* https://github.com/git/git/commit/4f0accd638b8d2
|
|
@@ -547,14 +549,14 @@ int git_tag_name_is_valid(int *valid, const char *name)
|
|
|
547
549
|
if (!name || name[0] == '-')
|
|
548
550
|
goto done;
|
|
549
551
|
|
|
550
|
-
if ((error =
|
|
551
|
-
(error =
|
|
552
|
+
if ((error = git_str_puts(&ref_name, GIT_REFS_TAGS_DIR)) < 0 ||
|
|
553
|
+
(error = git_str_puts(&ref_name, name)) < 0)
|
|
552
554
|
goto done;
|
|
553
555
|
|
|
554
556
|
error = git_reference_name_is_valid(valid, ref_name.ptr);
|
|
555
557
|
|
|
556
558
|
done:
|
|
557
|
-
|
|
559
|
+
git_str_dispose(&ref_name);
|
|
558
560
|
return error;
|
|
559
561
|
}
|
|
560
562
|
|
data/vendor/libgit2/src/thread.h
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
#if defined(__clang__)
|
|
13
13
|
|
|
14
14
|
# if (__clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 1))
|
|
15
|
-
# error Atomic primitives do not exist on this version of clang; configure libgit2 with -
|
|
15
|
+
# error Atomic primitives do not exist on this version of clang; configure libgit2 with -DUSE_THREADS=OFF
|
|
16
16
|
# else
|
|
17
17
|
# define GIT_BUILTIN_ATOMIC
|
|
18
18
|
# endif
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
#elif defined(__GNUC__)
|
|
21
21
|
|
|
22
22
|
# if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 1))
|
|
23
|
-
# error Atomic primitives do not exist on this version of gcc; configure libgit2 with -
|
|
23
|
+
# error Atomic primitives do not exist on this version of gcc; configure libgit2 with -DUSE_THREADS=OFF
|
|
24
24
|
# elif (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
|
|
25
25
|
# define GIT_BUILTIN_ATOMIC
|
|
26
26
|
# else
|
|
@@ -180,7 +180,7 @@ GIT_INLINE(volatile void *) git_atomic__swap(
|
|
|
180
180
|
#if defined(GIT_WIN32)
|
|
181
181
|
return InterlockedExchangePointer(ptr, newval);
|
|
182
182
|
#elif defined(GIT_BUILTIN_ATOMIC)
|
|
183
|
-
void *
|
|
183
|
+
void * foundval = NULL;
|
|
184
184
|
__atomic_exchange(ptr, &newval, &foundval, __ATOMIC_SEQ_CST);
|
|
185
185
|
return foundval;
|
|
186
186
|
#elif defined(GIT_BUILTIN_SYNC)
|
|
@@ -36,8 +36,8 @@ static void threadstate_dispose(git_threadstate *threadstate)
|
|
|
36
36
|
if (!threadstate)
|
|
37
37
|
return;
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
if (threadstate->error_t.message != git_str__initstr)
|
|
40
|
+
git__free(threadstate->error_t.message);
|
|
41
41
|
threadstate->error_t.message = NULL;
|
|
42
42
|
}
|
|
43
43
|
|
|
@@ -76,7 +76,7 @@ git_threadstate *git_threadstate_get(void)
|
|
|
76
76
|
return threadstate;
|
|
77
77
|
|
|
78
78
|
if ((threadstate = git__calloc(1, sizeof(git_threadstate))) == NULL ||
|
|
79
|
-
|
|
79
|
+
git_str_init(&threadstate->error_buf, 0) < 0)
|
|
80
80
|
return NULL;
|
|
81
81
|
|
|
82
82
|
git_tlsdata_set(tls_key, threadstate);
|