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
|
@@ -7,6 +7,16 @@
|
|
|
7
7
|
|
|
8
8
|
#include "common.h"
|
|
9
9
|
|
|
10
|
+
#include "pack-objects.h"
|
|
11
|
+
#include "refs.h"
|
|
12
|
+
#include "posix.h"
|
|
13
|
+
#include "fs_path.h"
|
|
14
|
+
#include "repository.h"
|
|
15
|
+
#include "odb.h"
|
|
16
|
+
#include "push.h"
|
|
17
|
+
#include "remote.h"
|
|
18
|
+
#include "proxy.h"
|
|
19
|
+
|
|
10
20
|
#include "git2/types.h"
|
|
11
21
|
#include "git2/net.h"
|
|
12
22
|
#include "git2/repository.h"
|
|
@@ -18,29 +28,16 @@
|
|
|
18
28
|
#include "git2/pack.h"
|
|
19
29
|
#include "git2/commit.h"
|
|
20
30
|
#include "git2/revparse.h"
|
|
21
|
-
|
|
22
|
-
#include "pack-objects.h"
|
|
23
|
-
#include "refs.h"
|
|
24
|
-
#include "posix.h"
|
|
25
|
-
#include "path.h"
|
|
26
|
-
#include "buffer.h"
|
|
27
|
-
#include "repository.h"
|
|
28
|
-
#include "odb.h"
|
|
29
|
-
#include "push.h"
|
|
30
|
-
#include "remote.h"
|
|
31
|
-
#include "proxy.h"
|
|
31
|
+
#include "git2/sys/remote.h"
|
|
32
32
|
|
|
33
33
|
typedef struct {
|
|
34
34
|
git_transport parent;
|
|
35
35
|
git_remote *owner;
|
|
36
36
|
char *url;
|
|
37
37
|
int direction;
|
|
38
|
-
int flags;
|
|
39
38
|
git_atomic32 cancelled;
|
|
40
39
|
git_repository *repo;
|
|
41
|
-
|
|
42
|
-
git_transport_message_cb error_cb;
|
|
43
|
-
void *message_cb_payload;
|
|
40
|
+
git_remote_connect_options connect_opts;
|
|
44
41
|
git_vector refs;
|
|
45
42
|
unsigned connected : 1,
|
|
46
43
|
have_refs : 1;
|
|
@@ -71,7 +68,7 @@ static int add_ref(transport_local *t, const char *name)
|
|
|
71
68
|
git_remote_head *head;
|
|
72
69
|
git_oid obj_id;
|
|
73
70
|
git_object *obj = NULL, *target = NULL;
|
|
74
|
-
|
|
71
|
+
git_str buf = GIT_STR_INIT;
|
|
75
72
|
int error;
|
|
76
73
|
|
|
77
74
|
if ((error = git_reference_lookup(&ref, t->repo, name)) < 0)
|
|
@@ -132,11 +129,11 @@ static int add_ref(transport_local *t, const char *name)
|
|
|
132
129
|
head = git__calloc(1, sizeof(git_remote_head));
|
|
133
130
|
GIT_ERROR_CHECK_ALLOC(head);
|
|
134
131
|
|
|
135
|
-
if (
|
|
132
|
+
if (git_str_join(&buf, 0, name, peeled) < 0) {
|
|
136
133
|
free_head(head);
|
|
137
134
|
return -1;
|
|
138
135
|
}
|
|
139
|
-
head->name =
|
|
136
|
+
head->name = git_str_detach(&buf);
|
|
140
137
|
|
|
141
138
|
if (!(error = git_tag_peel(&target, (git_tag *)obj))) {
|
|
142
139
|
git_oid_cpy(&head->oid, git_object_id(target));
|
|
@@ -201,41 +198,37 @@ on_error:
|
|
|
201
198
|
static int local_connect(
|
|
202
199
|
git_transport *transport,
|
|
203
200
|
const char *url,
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
const git_proxy_options *proxy,
|
|
207
|
-
int direction, int flags)
|
|
201
|
+
int direction,
|
|
202
|
+
const git_remote_connect_options *connect_opts)
|
|
208
203
|
{
|
|
209
204
|
git_repository *repo;
|
|
210
205
|
int error;
|
|
211
|
-
transport_local *t = (transport_local *)
|
|
206
|
+
transport_local *t = (transport_local *)transport;
|
|
212
207
|
const char *path;
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
GIT_UNUSED(cred_acquire_cb);
|
|
216
|
-
GIT_UNUSED(cred_acquire_payload);
|
|
217
|
-
GIT_UNUSED(proxy);
|
|
208
|
+
git_str buf = GIT_STR_INIT;
|
|
218
209
|
|
|
219
210
|
if (t->connected)
|
|
220
211
|
return 0;
|
|
221
212
|
|
|
213
|
+
if (git_remote_connect_options_normalize(&t->connect_opts, t->owner->repo, connect_opts) < 0)
|
|
214
|
+
return -1;
|
|
215
|
+
|
|
222
216
|
free_heads(&t->refs);
|
|
223
217
|
|
|
224
218
|
t->url = git__strdup(url);
|
|
225
219
|
GIT_ERROR_CHECK_ALLOC(t->url);
|
|
226
220
|
t->direction = direction;
|
|
227
|
-
t->flags = flags;
|
|
228
221
|
|
|
229
222
|
/* 'url' may be a url or path; convert to a path */
|
|
230
|
-
if ((error =
|
|
231
|
-
|
|
223
|
+
if ((error = git_fs_path_from_url_or_path(&buf, url)) < 0) {
|
|
224
|
+
git_str_dispose(&buf);
|
|
232
225
|
return error;
|
|
233
226
|
}
|
|
234
|
-
path =
|
|
227
|
+
path = git_str_cstr(&buf);
|
|
235
228
|
|
|
236
229
|
error = git_repository_open(&repo, path);
|
|
237
230
|
|
|
238
|
-
|
|
231
|
+
git_str_dispose(&buf);
|
|
239
232
|
|
|
240
233
|
if (error < 0)
|
|
241
234
|
return -1;
|
|
@@ -250,6 +243,29 @@ static int local_connect(
|
|
|
250
243
|
return 0;
|
|
251
244
|
}
|
|
252
245
|
|
|
246
|
+
static int local_set_connect_opts(
|
|
247
|
+
git_transport *transport,
|
|
248
|
+
const git_remote_connect_options *connect_opts)
|
|
249
|
+
{
|
|
250
|
+
transport_local *t = (transport_local *)transport;
|
|
251
|
+
|
|
252
|
+
if (!t->connected) {
|
|
253
|
+
git_error_set(GIT_ERROR_NET, "cannot reconfigure a transport that is not connected");
|
|
254
|
+
return -1;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
return git_remote_connect_options_normalize(&t->connect_opts, t->owner->repo, connect_opts);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
static int local_capabilities(unsigned int *capabilities, git_transport *transport)
|
|
261
|
+
{
|
|
262
|
+
GIT_UNUSED(transport);
|
|
263
|
+
|
|
264
|
+
*capabilities = GIT_REMOTE_CAPABILITY_TIP_OID |
|
|
265
|
+
GIT_REMOTE_CAPABILITY_REACHABLE_OID;
|
|
266
|
+
return 0;
|
|
267
|
+
}
|
|
268
|
+
|
|
253
269
|
static int local_ls(const git_remote_head ***out, size_t *size, git_transport *transport)
|
|
254
270
|
{
|
|
255
271
|
transport_local *t = (transport_local *)transport;
|
|
@@ -338,30 +354,28 @@ static int transfer_to_push_transfer(const git_indexer_progress *stats, void *pa
|
|
|
338
354
|
|
|
339
355
|
static int local_push(
|
|
340
356
|
git_transport *transport,
|
|
341
|
-
git_push *push
|
|
342
|
-
const git_remote_callbacks *cbs)
|
|
357
|
+
git_push *push)
|
|
343
358
|
{
|
|
344
359
|
transport_local *t = (transport_local *)transport;
|
|
360
|
+
git_remote_callbacks *cbs = &t->connect_opts.callbacks;
|
|
345
361
|
git_repository *remote_repo = NULL;
|
|
346
362
|
push_spec *spec;
|
|
347
363
|
char *url = NULL;
|
|
348
364
|
const char *path;
|
|
349
|
-
|
|
365
|
+
git_str buf = GIT_STR_INIT, odb_path = GIT_STR_INIT;
|
|
350
366
|
int error;
|
|
351
367
|
size_t j;
|
|
352
368
|
|
|
353
|
-
GIT_UNUSED(cbs);
|
|
354
|
-
|
|
355
369
|
/* 'push->remote->url' may be a url or path; convert to a path */
|
|
356
|
-
if ((error =
|
|
357
|
-
|
|
370
|
+
if ((error = git_fs_path_from_url_or_path(&buf, push->remote->url)) < 0) {
|
|
371
|
+
git_str_dispose(&buf);
|
|
358
372
|
return error;
|
|
359
373
|
}
|
|
360
|
-
path =
|
|
374
|
+
path = git_str_cstr(&buf);
|
|
361
375
|
|
|
362
376
|
error = git_repository_open(&remote_repo, path);
|
|
363
377
|
|
|
364
|
-
|
|
378
|
+
git_str_dispose(&buf);
|
|
365
379
|
|
|
366
380
|
if (error < 0)
|
|
367
381
|
return error;
|
|
@@ -378,12 +392,12 @@ static int local_push(
|
|
|
378
392
|
goto on_error;
|
|
379
393
|
}
|
|
380
394
|
|
|
381
|
-
if ((error =
|
|
382
|
-
|| (error =
|
|
395
|
+
if ((error = git_repository__item_path(&odb_path, remote_repo, GIT_REPOSITORY_ITEM_OBJECTS)) < 0
|
|
396
|
+
|| (error = git_str_joinpath(&odb_path, odb_path.ptr, "pack")) < 0)
|
|
383
397
|
goto on_error;
|
|
384
398
|
|
|
385
399
|
error = git_packbuilder_write(push->pb, odb_path.ptr, 0, transfer_to_push_transfer, (void *) cbs);
|
|
386
|
-
|
|
400
|
+
git_str_dispose(&odb_path);
|
|
387
401
|
|
|
388
402
|
if (error < 0)
|
|
389
403
|
goto on_error;
|
|
@@ -441,12 +455,11 @@ static int local_push(
|
|
|
441
455
|
}
|
|
442
456
|
|
|
443
457
|
if (push->specs.length) {
|
|
444
|
-
int flags = t->flags;
|
|
445
458
|
url = git__strdup(t->url);
|
|
446
459
|
|
|
447
460
|
if (!url || t->parent.close(&t->parent) < 0 ||
|
|
448
461
|
t->parent.connect(&t->parent, url,
|
|
449
|
-
|
|
462
|
+
GIT_DIRECTION_PUSH, NULL))
|
|
450
463
|
goto on_error;
|
|
451
464
|
}
|
|
452
465
|
|
|
@@ -479,31 +492,41 @@ static const char *compressing_objects_fmt = "Compressing objects: %.0f%% (%d/%d
|
|
|
479
492
|
|
|
480
493
|
static int local_counting(int stage, unsigned int current, unsigned int total, void *payload)
|
|
481
494
|
{
|
|
482
|
-
|
|
495
|
+
git_str progress_info = GIT_STR_INIT;
|
|
483
496
|
transport_local *t = payload;
|
|
484
497
|
int error;
|
|
485
498
|
|
|
486
|
-
if (!t->
|
|
499
|
+
if (!t->connect_opts.callbacks.sideband_progress)
|
|
487
500
|
return 0;
|
|
488
501
|
|
|
489
502
|
if (stage == GIT_PACKBUILDER_ADDING_OBJECTS) {
|
|
490
|
-
|
|
503
|
+
git_str_printf(&progress_info, counting_objects_fmt, current);
|
|
491
504
|
} else if (stage == GIT_PACKBUILDER_DELTAFICATION) {
|
|
492
505
|
float perc = (((float) current) / total) * 100;
|
|
493
|
-
|
|
506
|
+
git_str_printf(&progress_info, compressing_objects_fmt, perc, current, total);
|
|
494
507
|
if (current == total)
|
|
495
|
-
|
|
508
|
+
git_str_printf(&progress_info, ", done\n");
|
|
496
509
|
else
|
|
497
|
-
|
|
510
|
+
git_str_putc(&progress_info, '\r');
|
|
498
511
|
|
|
499
512
|
}
|
|
500
513
|
|
|
501
|
-
if (
|
|
514
|
+
if (git_str_oom(&progress_info))
|
|
515
|
+
return -1;
|
|
516
|
+
|
|
517
|
+
if (progress_info.size > INT_MAX) {
|
|
518
|
+
git_error_set(GIT_ERROR_NET, "remote sent overly large progress data");
|
|
519
|
+
git_str_dispose(&progress_info);
|
|
502
520
|
return -1;
|
|
521
|
+
}
|
|
522
|
+
|
|
503
523
|
|
|
504
|
-
error = t->
|
|
505
|
-
|
|
524
|
+
error = t->connect_opts.callbacks.sideband_progress(
|
|
525
|
+
progress_info.ptr,
|
|
526
|
+
(int)progress_info.size,
|
|
527
|
+
t->connect_opts.callbacks.payload);
|
|
506
528
|
|
|
529
|
+
git_str_dispose(&progress_info);
|
|
507
530
|
return error;
|
|
508
531
|
}
|
|
509
532
|
|
|
@@ -533,9 +556,7 @@ static int foreach_reference_cb(git_reference *reference, void *payload)
|
|
|
533
556
|
static int local_download_pack(
|
|
534
557
|
git_transport *transport,
|
|
535
558
|
git_repository *repo,
|
|
536
|
-
git_indexer_progress *stats
|
|
537
|
-
git_indexer_progress_cb progress_cb,
|
|
538
|
-
void *progress_payload)
|
|
559
|
+
git_indexer_progress *stats)
|
|
539
560
|
{
|
|
540
561
|
transport_local *t = (transport_local*)transport;
|
|
541
562
|
git_revwalk *walk = NULL;
|
|
@@ -545,10 +566,12 @@ static int local_download_pack(
|
|
|
545
566
|
git_packbuilder *pack = NULL;
|
|
546
567
|
git_odb_writepack *writepack = NULL;
|
|
547
568
|
git_odb *odb = NULL;
|
|
548
|
-
|
|
569
|
+
git_str progress_info = GIT_STR_INIT;
|
|
570
|
+
foreach_data data = {0};
|
|
549
571
|
|
|
550
572
|
if ((error = git_revwalk_new(&walk, t->repo)) < 0)
|
|
551
573
|
goto cleanup;
|
|
574
|
+
|
|
552
575
|
git_revwalk_sorting(walk, GIT_SORT_TIME);
|
|
553
576
|
|
|
554
577
|
if ((error = git_packbuilder_new(&pack, t->repo)) < 0)
|
|
@@ -584,73 +607,67 @@ static int local_download_pack(
|
|
|
584
607
|
if ((error = git_packbuilder_insert_walk(pack, walk)))
|
|
585
608
|
goto cleanup;
|
|
586
609
|
|
|
587
|
-
if (
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
610
|
+
if (t->connect_opts.callbacks.sideband_progress) {
|
|
611
|
+
if ((error = git_str_printf(
|
|
612
|
+
&progress_info,
|
|
613
|
+
counting_objects_fmt,
|
|
614
|
+
git_packbuilder_object_count(pack))) < 0 ||
|
|
615
|
+
(error = t->connect_opts.callbacks.sideband_progress(
|
|
616
|
+
progress_info.ptr,
|
|
617
|
+
(int)progress_info.size,
|
|
618
|
+
t->connect_opts.callbacks.payload)) < 0)
|
|
619
|
+
goto cleanup;
|
|
620
|
+
}
|
|
593
621
|
|
|
594
622
|
/* Walk the objects, building a packfile */
|
|
595
623
|
if ((error = git_repository_odb__weakptr(&odb, repo)) < 0)
|
|
596
624
|
goto cleanup;
|
|
597
625
|
|
|
598
626
|
/* One last one with the newline */
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
627
|
+
if (t->connect_opts.callbacks.sideband_progress) {
|
|
628
|
+
git_str_clear(&progress_info);
|
|
629
|
+
|
|
630
|
+
if ((error = git_str_printf(
|
|
631
|
+
&progress_info,
|
|
632
|
+
counting_objects_fmt,
|
|
633
|
+
git_packbuilder_object_count(pack))) < 0 ||
|
|
634
|
+
(error = git_str_putc(&progress_info, '\n')) < 0 ||
|
|
635
|
+
(error = t->connect_opts.callbacks.sideband_progress(
|
|
636
|
+
progress_info.ptr,
|
|
637
|
+
(int)progress_info.size,
|
|
638
|
+
t->connect_opts.callbacks.payload)) < 0)
|
|
639
|
+
goto cleanup;
|
|
640
|
+
}
|
|
607
641
|
|
|
608
|
-
if ((error = git_odb_write_pack(
|
|
642
|
+
if ((error = git_odb_write_pack(
|
|
643
|
+
&writepack,
|
|
644
|
+
odb,
|
|
645
|
+
t->connect_opts.callbacks.transfer_progress,
|
|
646
|
+
t->connect_opts.callbacks.payload)) < 0)
|
|
609
647
|
goto cleanup;
|
|
610
648
|
|
|
611
649
|
/* Write the data to the ODB */
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
data.progress_payload = progress_payload;
|
|
617
|
-
data.writepack = writepack;
|
|
650
|
+
data.stats = stats;
|
|
651
|
+
data.progress_cb = t->connect_opts.callbacks.transfer_progress;
|
|
652
|
+
data.progress_payload = t->connect_opts.callbacks.payload;
|
|
653
|
+
data.writepack = writepack;
|
|
618
654
|
|
|
619
|
-
|
|
620
|
-
|
|
655
|
+
/* autodetect */
|
|
656
|
+
git_packbuilder_set_threads(pack, 0);
|
|
621
657
|
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
}
|
|
658
|
+
if ((error = git_packbuilder_foreach(pack, foreach_cb, &data)) != 0)
|
|
659
|
+
goto cleanup;
|
|
625
660
|
|
|
626
661
|
error = writepack->commit(writepack, stats);
|
|
627
662
|
|
|
628
663
|
cleanup:
|
|
629
664
|
if (writepack) writepack->free(writepack);
|
|
630
|
-
|
|
665
|
+
git_str_dispose(&progress_info);
|
|
631
666
|
git_packbuilder_free(pack);
|
|
632
667
|
git_revwalk_free(walk);
|
|
633
668
|
return error;
|
|
634
669
|
}
|
|
635
670
|
|
|
636
|
-
static int local_set_callbacks(
|
|
637
|
-
git_transport *transport,
|
|
638
|
-
git_transport_message_cb progress_cb,
|
|
639
|
-
git_transport_message_cb error_cb,
|
|
640
|
-
git_transport_certificate_check_cb certificate_check_cb,
|
|
641
|
-
void *message_cb_payload)
|
|
642
|
-
{
|
|
643
|
-
transport_local *t = (transport_local *)transport;
|
|
644
|
-
|
|
645
|
-
GIT_UNUSED(certificate_check_cb);
|
|
646
|
-
|
|
647
|
-
t->progress_cb = progress_cb;
|
|
648
|
-
t->error_cb = error_cb;
|
|
649
|
-
t->message_cb_payload = message_cb_payload;
|
|
650
|
-
|
|
651
|
-
return 0;
|
|
652
|
-
}
|
|
653
|
-
|
|
654
671
|
static int local_is_connected(git_transport *transport)
|
|
655
672
|
{
|
|
656
673
|
transport_local *t = (transport_local *)transport;
|
|
@@ -658,15 +675,6 @@ static int local_is_connected(git_transport *transport)
|
|
|
658
675
|
return t->connected;
|
|
659
676
|
}
|
|
660
677
|
|
|
661
|
-
static int local_read_flags(git_transport *transport, int *flags)
|
|
662
|
-
{
|
|
663
|
-
transport_local *t = (transport_local *)transport;
|
|
664
|
-
|
|
665
|
-
*flags = t->flags;
|
|
666
|
-
|
|
667
|
-
return 0;
|
|
668
|
-
}
|
|
669
|
-
|
|
670
678
|
static void local_cancel(git_transport *transport)
|
|
671
679
|
{
|
|
672
680
|
transport_local *t = (transport_local *)transport;
|
|
@@ -721,8 +729,9 @@ int git_transport_local(git_transport **out, git_remote *owner, void *param)
|
|
|
721
729
|
GIT_ERROR_CHECK_ALLOC(t);
|
|
722
730
|
|
|
723
731
|
t->parent.version = GIT_TRANSPORT_VERSION;
|
|
724
|
-
t->parent.set_callbacks = local_set_callbacks;
|
|
725
732
|
t->parent.connect = local_connect;
|
|
733
|
+
t->parent.set_connect_opts = local_set_connect_opts;
|
|
734
|
+
t->parent.capabilities = local_capabilities;
|
|
726
735
|
t->parent.negotiate_fetch = local_negotiate_fetch;
|
|
727
736
|
t->parent.download_pack = local_download_pack;
|
|
728
737
|
t->parent.push = local_push;
|
|
@@ -730,7 +739,6 @@ int git_transport_local(git_transport **out, git_remote *owner, void *param)
|
|
|
730
739
|
t->parent.free = local_free;
|
|
731
740
|
t->parent.ls = local_ls;
|
|
732
741
|
t->parent.is_connected = local_is_connected;
|
|
733
|
-
t->parent.read_flags = local_read_flags;
|
|
734
742
|
t->parent.cancel = local_cancel;
|
|
735
743
|
|
|
736
744
|
if ((error = git_vector_init(&t->refs, 0, NULL)) < 0) {
|