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/clone.c
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
#include "remote.h"
|
|
20
20
|
#include "futils.h"
|
|
21
21
|
#include "refs.h"
|
|
22
|
-
#include "
|
|
22
|
+
#include "fs_path.h"
|
|
23
23
|
#include "repository.h"
|
|
24
24
|
#include "odb.h"
|
|
25
25
|
|
|
@@ -34,7 +34,7 @@ static int create_branch(
|
|
|
34
34
|
{
|
|
35
35
|
git_commit *head_obj = NULL;
|
|
36
36
|
git_reference *branch_ref = NULL;
|
|
37
|
-
|
|
37
|
+
git_str refname = GIT_STR_INIT;
|
|
38
38
|
int error;
|
|
39
39
|
|
|
40
40
|
/* Find the target commit */
|
|
@@ -42,11 +42,11 @@ static int create_branch(
|
|
|
42
42
|
return error;
|
|
43
43
|
|
|
44
44
|
/* Create the new branch */
|
|
45
|
-
if ((error =
|
|
45
|
+
if ((error = git_str_printf(&refname, GIT_REFS_HEADS_DIR "%s", name)) < 0)
|
|
46
46
|
return error;
|
|
47
47
|
|
|
48
|
-
error = git_reference_create(&branch_ref, repo,
|
|
49
|
-
|
|
48
|
+
error = git_reference_create(&branch_ref, repo, git_str_cstr(&refname), target, 0, log_message);
|
|
49
|
+
git_str_dispose(&refname);
|
|
50
50
|
git_commit_free(head_obj);
|
|
51
51
|
|
|
52
52
|
if (!error)
|
|
@@ -64,29 +64,29 @@ static int setup_tracking_config(
|
|
|
64
64
|
const char *merge_target)
|
|
65
65
|
{
|
|
66
66
|
git_config *cfg;
|
|
67
|
-
|
|
67
|
+
git_str remote_key = GIT_STR_INIT, merge_key = GIT_STR_INIT;
|
|
68
68
|
int error = -1;
|
|
69
69
|
|
|
70
70
|
if (git_repository_config__weakptr(&cfg, repo) < 0)
|
|
71
71
|
return -1;
|
|
72
72
|
|
|
73
|
-
if (
|
|
73
|
+
if (git_str_printf(&remote_key, "branch.%s.remote", branch_name) < 0)
|
|
74
74
|
goto cleanup;
|
|
75
75
|
|
|
76
|
-
if (
|
|
76
|
+
if (git_str_printf(&merge_key, "branch.%s.merge", branch_name) < 0)
|
|
77
77
|
goto cleanup;
|
|
78
78
|
|
|
79
|
-
if (git_config_set_string(cfg,
|
|
79
|
+
if (git_config_set_string(cfg, git_str_cstr(&remote_key), remote_name) < 0)
|
|
80
80
|
goto cleanup;
|
|
81
81
|
|
|
82
|
-
if (git_config_set_string(cfg,
|
|
82
|
+
if (git_config_set_string(cfg, git_str_cstr(&merge_key), merge_target) < 0)
|
|
83
83
|
goto cleanup;
|
|
84
84
|
|
|
85
85
|
error = 0;
|
|
86
86
|
|
|
87
87
|
cleanup:
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
git_str_dispose(&remote_key);
|
|
89
|
+
git_str_dispose(&merge_key);
|
|
90
90
|
return error;
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -139,7 +139,7 @@ static int update_head_to_new_branch(
|
|
|
139
139
|
|
|
140
140
|
static int update_head_to_default(git_repository *repo)
|
|
141
141
|
{
|
|
142
|
-
|
|
142
|
+
git_str initialbranch = GIT_STR_INIT;
|
|
143
143
|
const char *branch_name;
|
|
144
144
|
int error = 0;
|
|
145
145
|
|
|
@@ -158,24 +158,24 @@ static int update_head_to_default(git_repository *repo)
|
|
|
158
158
|
initialbranch.ptr);
|
|
159
159
|
|
|
160
160
|
done:
|
|
161
|
-
|
|
161
|
+
git_str_dispose(&initialbranch);
|
|
162
162
|
return error;
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
static int update_remote_head(
|
|
166
166
|
git_repository *repo,
|
|
167
167
|
git_remote *remote,
|
|
168
|
-
|
|
168
|
+
git_str *target,
|
|
169
169
|
const char *reflog_message)
|
|
170
170
|
{
|
|
171
171
|
git_refspec *refspec;
|
|
172
172
|
git_reference *remote_head = NULL;
|
|
173
|
-
|
|
174
|
-
|
|
173
|
+
git_str remote_head_name = GIT_STR_INIT;
|
|
174
|
+
git_str remote_branch_name = GIT_STR_INIT;
|
|
175
175
|
int error;
|
|
176
176
|
|
|
177
177
|
/* Determine the remote tracking ref name from the local branch */
|
|
178
|
-
refspec = git_remote__matching_refspec(remote,
|
|
178
|
+
refspec = git_remote__matching_refspec(remote, git_str_cstr(target));
|
|
179
179
|
|
|
180
180
|
if (refspec == NULL) {
|
|
181
181
|
git_error_set(GIT_ERROR_NET, "the remote's default branch does not fit the refspec configuration");
|
|
@@ -183,13 +183,13 @@ static int update_remote_head(
|
|
|
183
183
|
goto cleanup;
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
-
if ((error =
|
|
186
|
+
if ((error = git_refspec__transform(
|
|
187
187
|
&remote_branch_name,
|
|
188
188
|
refspec,
|
|
189
|
-
|
|
189
|
+
git_str_cstr(target))) < 0)
|
|
190
190
|
goto cleanup;
|
|
191
191
|
|
|
192
|
-
if ((error =
|
|
192
|
+
if ((error = git_str_printf(&remote_head_name,
|
|
193
193
|
"%s%s/%s",
|
|
194
194
|
GIT_REFS_REMOTES_DIR,
|
|
195
195
|
git_remote_name(remote),
|
|
@@ -199,15 +199,15 @@ static int update_remote_head(
|
|
|
199
199
|
error = git_reference_symbolic_create(
|
|
200
200
|
&remote_head,
|
|
201
201
|
repo,
|
|
202
|
-
|
|
203
|
-
|
|
202
|
+
git_str_cstr(&remote_head_name),
|
|
203
|
+
git_str_cstr(&remote_branch_name),
|
|
204
204
|
true,
|
|
205
205
|
reflog_message);
|
|
206
206
|
|
|
207
207
|
cleanup:
|
|
208
208
|
git_reference_free(remote_head);
|
|
209
|
-
|
|
210
|
-
|
|
209
|
+
git_str_dispose(&remote_branch_name);
|
|
210
|
+
git_str_dispose(&remote_head_name);
|
|
211
211
|
return error;
|
|
212
212
|
}
|
|
213
213
|
|
|
@@ -220,7 +220,7 @@ static int update_head_to_remote(
|
|
|
220
220
|
size_t refs_len;
|
|
221
221
|
const git_remote_head *remote_head, **refs;
|
|
222
222
|
const git_oid *remote_head_id;
|
|
223
|
-
|
|
223
|
+
git_str branch = GIT_STR_INIT;
|
|
224
224
|
|
|
225
225
|
if ((error = git_remote_ls(&refs, &refs_len, remote)) < 0)
|
|
226
226
|
return error;
|
|
@@ -235,7 +235,7 @@ static int update_head_to_remote(
|
|
|
235
235
|
|
|
236
236
|
remote_head_id = &remote_head->oid;
|
|
237
237
|
|
|
238
|
-
error =
|
|
238
|
+
error = git_remote__default_branch(&branch, remote);
|
|
239
239
|
if (error == GIT_ENOTFOUND) {
|
|
240
240
|
error = git_repository_set_head_detached(
|
|
241
241
|
repo, remote_head_id);
|
|
@@ -248,11 +248,11 @@ static int update_head_to_remote(
|
|
|
248
248
|
error = update_head_to_new_branch(
|
|
249
249
|
repo,
|
|
250
250
|
remote_head_id,
|
|
251
|
-
|
|
251
|
+
git_str_cstr(&branch),
|
|
252
252
|
reflog_message);
|
|
253
253
|
|
|
254
254
|
cleanup:
|
|
255
|
-
|
|
255
|
+
git_str_dispose(&branch);
|
|
256
256
|
|
|
257
257
|
return error;
|
|
258
258
|
}
|
|
@@ -264,36 +264,36 @@ static int update_head_to_branch(
|
|
|
264
264
|
const char *reflog_message)
|
|
265
265
|
{
|
|
266
266
|
int retcode;
|
|
267
|
-
|
|
267
|
+
git_str remote_branch_name = GIT_STR_INIT;
|
|
268
268
|
git_reference *remote_ref = NULL;
|
|
269
|
-
|
|
269
|
+
git_str default_branch = GIT_STR_INIT;
|
|
270
270
|
|
|
271
271
|
GIT_ASSERT_ARG(remote);
|
|
272
272
|
GIT_ASSERT_ARG(branch);
|
|
273
273
|
|
|
274
|
-
if ((retcode =
|
|
274
|
+
if ((retcode = git_str_printf(&remote_branch_name, GIT_REFS_REMOTES_DIR "%s/%s",
|
|
275
275
|
git_remote_name(remote), branch)) < 0 )
|
|
276
276
|
goto cleanup;
|
|
277
277
|
|
|
278
|
-
if ((retcode = git_reference_lookup(&remote_ref, repo,
|
|
278
|
+
if ((retcode = git_reference_lookup(&remote_ref, repo, git_str_cstr(&remote_branch_name))) < 0)
|
|
279
279
|
goto cleanup;
|
|
280
280
|
|
|
281
281
|
if ((retcode = update_head_to_new_branch(repo, git_reference_target(remote_ref), branch,
|
|
282
282
|
reflog_message)) < 0)
|
|
283
283
|
goto cleanup;
|
|
284
284
|
|
|
285
|
-
if ((retcode =
|
|
285
|
+
if ((retcode = git_remote__default_branch(&default_branch, remote)) < 0)
|
|
286
286
|
goto cleanup;
|
|
287
287
|
|
|
288
|
-
if (!git_remote__matching_refspec(remote,
|
|
288
|
+
if (!git_remote__matching_refspec(remote, git_str_cstr(&default_branch)))
|
|
289
289
|
goto cleanup;
|
|
290
290
|
|
|
291
291
|
retcode = update_remote_head(repo, remote, &default_branch, reflog_message);
|
|
292
292
|
|
|
293
293
|
cleanup:
|
|
294
294
|
git_reference_free(remote_ref);
|
|
295
|
-
|
|
296
|
-
|
|
295
|
+
git_str_dispose(&remote_branch_name);
|
|
296
|
+
git_str_dispose(&default_branch);
|
|
297
297
|
return retcode;
|
|
298
298
|
}
|
|
299
299
|
|
|
@@ -333,7 +333,7 @@ static int create_and_configure_origin(
|
|
|
333
333
|
void *payload = options->remote_cb_payload;
|
|
334
334
|
|
|
335
335
|
/* If the path exists and is a dir, the url should be the absolute path */
|
|
336
|
-
if (
|
|
336
|
+
if (git_fs_path_root(url) < 0 && git_fs_path_exists(url) && git_fs_path_isdir(url)) {
|
|
337
337
|
if (p_realpath(url, buf) == NULL)
|
|
338
338
|
return -1;
|
|
339
339
|
|
|
@@ -392,7 +392,7 @@ static int checkout_branch(git_repository *repo, git_remote *remote, const git_c
|
|
|
392
392
|
static int clone_into(git_repository *repo, git_remote *_remote, const git_fetch_options *opts, const git_checkout_options *co_opts, const char *branch)
|
|
393
393
|
{
|
|
394
394
|
int error;
|
|
395
|
-
|
|
395
|
+
git_str reflog_message = GIT_STR_INIT;
|
|
396
396
|
git_fetch_options fetch_opts;
|
|
397
397
|
git_remote *remote;
|
|
398
398
|
|
|
@@ -410,31 +410,31 @@ static int clone_into(git_repository *repo, git_remote *_remote, const git_fetch
|
|
|
410
410
|
memcpy(&fetch_opts, opts, sizeof(git_fetch_options));
|
|
411
411
|
fetch_opts.update_fetchhead = 0;
|
|
412
412
|
fetch_opts.download_tags = GIT_REMOTE_DOWNLOAD_TAGS_ALL;
|
|
413
|
-
|
|
413
|
+
git_str_printf(&reflog_message, "clone: from %s", git_remote_url(remote));
|
|
414
414
|
|
|
415
|
-
if ((error = git_remote_fetch(remote, NULL, &fetch_opts,
|
|
415
|
+
if ((error = git_remote_fetch(remote, NULL, &fetch_opts, git_str_cstr(&reflog_message))) != 0)
|
|
416
416
|
goto cleanup;
|
|
417
417
|
|
|
418
|
-
error = checkout_branch(repo, remote, co_opts, branch,
|
|
418
|
+
error = checkout_branch(repo, remote, co_opts, branch, git_str_cstr(&reflog_message));
|
|
419
419
|
|
|
420
420
|
cleanup:
|
|
421
421
|
git_remote_free(remote);
|
|
422
|
-
|
|
422
|
+
git_str_dispose(&reflog_message);
|
|
423
423
|
|
|
424
424
|
return error;
|
|
425
425
|
}
|
|
426
426
|
|
|
427
427
|
int git_clone__should_clone_local(const char *url_or_path, git_clone_local_t local)
|
|
428
428
|
{
|
|
429
|
-
|
|
429
|
+
git_str fromurl = GIT_STR_INIT;
|
|
430
430
|
const char *path = url_or_path;
|
|
431
431
|
bool is_url, is_local;
|
|
432
432
|
|
|
433
433
|
if (local == GIT_CLONE_NO_LOCAL)
|
|
434
434
|
return 0;
|
|
435
435
|
|
|
436
|
-
if ((is_url =
|
|
437
|
-
if (
|
|
436
|
+
if ((is_url = git_fs_path_is_local_file_url(url_or_path)) != 0) {
|
|
437
|
+
if (git_fs_path_fromurl(&fromurl, url_or_path) < 0) {
|
|
438
438
|
is_local = -1;
|
|
439
439
|
goto done;
|
|
440
440
|
}
|
|
@@ -443,10 +443,10 @@ int git_clone__should_clone_local(const char *url_or_path, git_clone_local_t loc
|
|
|
443
443
|
}
|
|
444
444
|
|
|
445
445
|
is_local = (!is_url || local != GIT_CLONE_LOCAL_AUTO) &&
|
|
446
|
-
|
|
446
|
+
git_fs_path_isdir(path);
|
|
447
447
|
|
|
448
448
|
done:
|
|
449
|
-
|
|
449
|
+
git_str_dispose(&fromurl);
|
|
450
450
|
return is_local;
|
|
451
451
|
}
|
|
452
452
|
|
|
@@ -474,14 +474,14 @@ static int git__clone(
|
|
|
474
474
|
GIT_ERROR_CHECK_VERSION(&options, GIT_CLONE_OPTIONS_VERSION, "git_clone_options");
|
|
475
475
|
|
|
476
476
|
/* Only clone to a new directory or an empty directory */
|
|
477
|
-
if (
|
|
477
|
+
if (git_fs_path_exists(local_path) && !use_existing && !git_fs_path_is_empty_dir(local_path)) {
|
|
478
478
|
git_error_set(GIT_ERROR_INVALID,
|
|
479
479
|
"'%s' exists and is not an empty directory", local_path);
|
|
480
480
|
return GIT_EEXISTS;
|
|
481
481
|
}
|
|
482
482
|
|
|
483
483
|
/* Only remove the root directory on failure if we create it */
|
|
484
|
-
if (
|
|
484
|
+
if (git_fs_path_exists(local_path))
|
|
485
485
|
rmdir_flags |= GIT_RMDIR_SKIP_ROOT;
|
|
486
486
|
|
|
487
487
|
if (options.repository_cb)
|
|
@@ -586,8 +586,8 @@ static int clone_local_into(git_repository *repo, git_remote *remote, const git_
|
|
|
586
586
|
{
|
|
587
587
|
int error, flags;
|
|
588
588
|
git_repository *src;
|
|
589
|
-
|
|
590
|
-
|
|
589
|
+
git_str src_odb = GIT_STR_INIT, dst_odb = GIT_STR_INIT, src_path = GIT_STR_INIT;
|
|
590
|
+
git_str reflog_message = GIT_STR_INIT;
|
|
591
591
|
|
|
592
592
|
GIT_ASSERT_ARG(repo);
|
|
593
593
|
GIT_ASSERT_ARG(remote);
|
|
@@ -602,17 +602,17 @@ static int clone_local_into(git_repository *repo, git_remote *remote, const git_
|
|
|
602
602
|
* repo, if it's not rooted, the path should be relative to
|
|
603
603
|
* the repository's worktree/gitdir.
|
|
604
604
|
*/
|
|
605
|
-
if ((error =
|
|
605
|
+
if ((error = git_fs_path_from_url_or_path(&src_path, git_remote_url(remote))) < 0)
|
|
606
606
|
return error;
|
|
607
607
|
|
|
608
608
|
/* Copy .git/objects/ from the source to the target */
|
|
609
|
-
if ((error = git_repository_open(&src,
|
|
610
|
-
|
|
609
|
+
if ((error = git_repository_open(&src, git_str_cstr(&src_path))) < 0) {
|
|
610
|
+
git_str_dispose(&src_path);
|
|
611
611
|
return error;
|
|
612
612
|
}
|
|
613
613
|
|
|
614
|
-
if (
|
|
615
|
-
|
|
614
|
+
if (git_repository__item_path(&src_odb, src, GIT_REPOSITORY_ITEM_OBJECTS) < 0 ||
|
|
615
|
+
git_repository__item_path(&dst_odb, repo, GIT_REPOSITORY_ITEM_OBJECTS) < 0) {
|
|
616
616
|
error = -1;
|
|
617
617
|
goto cleanup;
|
|
618
618
|
}
|
|
@@ -621,7 +621,7 @@ static int clone_local_into(git_repository *repo, git_remote *remote, const git_
|
|
|
621
621
|
if (can_link(git_repository_path(src), git_repository_path(repo), link))
|
|
622
622
|
flags |= GIT_CPDIR_LINK_FILES;
|
|
623
623
|
|
|
624
|
-
error = git_futils_cp_r(
|
|
624
|
+
error = git_futils_cp_r(git_str_cstr(&src_odb), git_str_cstr(&dst_odb),
|
|
625
625
|
flags, GIT_OBJECT_DIR_MODE);
|
|
626
626
|
|
|
627
627
|
/*
|
|
@@ -631,25 +631,25 @@ static int clone_local_into(git_repository *repo, git_remote *remote, const git_
|
|
|
631
631
|
*/
|
|
632
632
|
if (error < 0 && link) {
|
|
633
633
|
flags &= ~GIT_CPDIR_LINK_FILES;
|
|
634
|
-
error = git_futils_cp_r(
|
|
634
|
+
error = git_futils_cp_r(git_str_cstr(&src_odb), git_str_cstr(&dst_odb),
|
|
635
635
|
flags, GIT_OBJECT_DIR_MODE);
|
|
636
636
|
}
|
|
637
637
|
|
|
638
638
|
if (error < 0)
|
|
639
639
|
goto cleanup;
|
|
640
640
|
|
|
641
|
-
|
|
641
|
+
git_str_printf(&reflog_message, "clone: from %s", git_remote_url(remote));
|
|
642
642
|
|
|
643
|
-
if ((error = git_remote_fetch(remote, NULL, fetch_opts,
|
|
643
|
+
if ((error = git_remote_fetch(remote, NULL, fetch_opts, git_str_cstr(&reflog_message))) != 0)
|
|
644
644
|
goto cleanup;
|
|
645
645
|
|
|
646
|
-
error = checkout_branch(repo, remote, co_opts, branch,
|
|
646
|
+
error = checkout_branch(repo, remote, co_opts, branch, git_str_cstr(&reflog_message));
|
|
647
647
|
|
|
648
648
|
cleanup:
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
649
|
+
git_str_dispose(&reflog_message);
|
|
650
|
+
git_str_dispose(&src_path);
|
|
651
|
+
git_str_dispose(&src_odb);
|
|
652
|
+
git_str_dispose(&dst_odb);
|
|
653
653
|
git_repository_free(src);
|
|
654
654
|
return error;
|
|
655
655
|
}
|