rugged 0.17.0.b7 → 0.18.0.b1
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.
- data/LICENSE +1 -1
- data/README.md +88 -32
- data/ext/rugged/extconf.rb +4 -2
- data/ext/rugged/rugged.c +72 -10
- data/ext/rugged/rugged.h +14 -10
- data/ext/rugged/rugged_blob.c +8 -10
- data/ext/rugged/rugged_branch.c +11 -14
- data/ext/rugged/rugged_commit.c +31 -24
- data/ext/rugged/rugged_config.c +2 -2
- data/ext/rugged/rugged_index.c +133 -198
- data/ext/rugged/rugged_note.c +372 -0
- data/ext/rugged/rugged_object.c +50 -22
- data/ext/rugged/rugged_reference.c +122 -130
- data/ext/rugged/rugged_remote.c +72 -29
- data/ext/rugged/rugged_repo.c +402 -20
- data/ext/rugged/rugged_revwalk.c +7 -3
- data/ext/rugged/rugged_settings.c +110 -0
- data/ext/rugged/rugged_signature.c +23 -7
- data/ext/rugged/rugged_tag.c +32 -16
- data/ext/rugged/rugged_tree.c +44 -15
- data/lib/rugged.rb +1 -0
- data/lib/rugged/index.rb +8 -0
- data/lib/rugged/remote.rb +13 -0
- data/lib/rugged/repository.rb +3 -3
- data/lib/rugged/version.rb +1 -1
- data/test/blob_test.rb +13 -15
- data/test/branch_test.rb +32 -67
- data/test/commit_test.rb +50 -12
- data/test/config_test.rb +12 -11
- data/test/coverage/HEAD.json +1 -1
- data/test/coverage/cover.rb +40 -21
- data/test/errors_test.rb +34 -0
- data/test/fixtures/alternate/objects/14/6ae76773c91e3b1d00cf7a338ec55ae58297e2 +0 -0
- data/test/fixtures/alternate/objects/14/9c32d47e99d0a3572ff1e70a2e0051bbf347a9 +0 -0
- data/test/fixtures/alternate/objects/14/fb3108588f9421bf764041e5e3ac305eb6277f +0 -0
- data/test/fixtures/testrepo.git/logs/refs/notes/commits +1 -0
- data/test/fixtures/testrepo.git/objects/44/1034f860c1d5d90e4188d11ae0d325176869a8 +1 -0
- data/test/fixtures/testrepo.git/objects/60/d415052a33de2150bf68757f6461df4f563ae4 +0 -0
- data/test/fixtures/testrepo.git/objects/68/8a8f4ef7496901d15322972f96e212a9e466cc +1 -0
- data/test/fixtures/testrepo.git/objects/94/eca2de348d5f672faf56b0decafa5937e3235e +0 -0
- data/test/fixtures/testrepo.git/objects/9b/7384fe1676186192842f5d3e129457b62db9e3 +0 -0
- data/test/fixtures/testrepo.git/objects/b7/4713326bc972cc15751ed504dca6f6f3b91f7a +3 -0
- data/test/fixtures/testrepo.git/refs/notes/commits +1 -0
- data/test/index_test.rb +65 -69
- data/test/lib_test.rb +76 -11
- data/test/note_test.rb +158 -0
- data/test/object_test.rb +8 -11
- data/test/reference_test.rb +77 -85
- data/test/remote_test.rb +86 -8
- data/test/repo_pack_test.rb +9 -7
- data/test/repo_reset_test.rb +80 -0
- data/test/repo_test.rb +176 -53
- data/test/tag_test.rb +44 -7
- data/test/test_helper.rb +63 -35
- data/test/tree_test.rb +34 -13
- data/test/walker_test.rb +14 -14
- data/vendor/libgit2/Makefile.embed +1 -1
- data/vendor/libgit2/deps/http-parser/http_parser.c +974 -578
- data/vendor/libgit2/deps/http-parser/http_parser.h +106 -70
- data/vendor/libgit2/deps/regex/regcomp.c +7 -6
- data/vendor/libgit2/deps/regex/regex_internal.c +1 -1
- data/vendor/libgit2/deps/regex/regex_internal.h +12 -3
- data/vendor/libgit2/deps/regex/regexec.c +5 -5
- data/vendor/libgit2/include/git2.h +5 -1
- data/vendor/libgit2/include/git2/attr.h +4 -2
- data/vendor/libgit2/include/git2/blob.h +39 -12
- data/vendor/libgit2/include/git2/branch.h +123 -35
- data/vendor/libgit2/include/git2/checkout.h +206 -48
- data/vendor/libgit2/include/git2/clone.h +72 -27
- data/vendor/libgit2/include/git2/commit.h +20 -17
- data/vendor/libgit2/include/git2/common.h +67 -1
- data/vendor/libgit2/include/git2/config.h +81 -60
- data/vendor/libgit2/include/git2/cred_helpers.h +53 -0
- data/vendor/libgit2/include/git2/diff.h +459 -150
- data/vendor/libgit2/include/git2/errors.h +9 -1
- data/vendor/libgit2/include/git2/graph.h +41 -0
- data/vendor/libgit2/include/git2/ignore.h +7 -6
- data/vendor/libgit2/include/git2/index.h +323 -97
- data/vendor/libgit2/include/git2/indexer.h +27 -59
- data/vendor/libgit2/include/git2/inttypes.h +4 -0
- data/vendor/libgit2/include/git2/merge.h +13 -3
- data/vendor/libgit2/include/git2/message.h +14 -8
- data/vendor/libgit2/include/git2/net.h +9 -7
- data/vendor/libgit2/include/git2/notes.h +88 -29
- data/vendor/libgit2/include/git2/object.h +16 -6
- data/vendor/libgit2/include/git2/odb.h +80 -17
- data/vendor/libgit2/include/git2/odb_backend.h +47 -11
- data/vendor/libgit2/include/git2/oid.h +26 -17
- data/vendor/libgit2/include/git2/pack.h +62 -8
- data/vendor/libgit2/include/git2/push.h +131 -0
- data/vendor/libgit2/include/git2/refdb.h +103 -0
- data/vendor/libgit2/include/git2/refdb_backend.h +109 -0
- data/vendor/libgit2/include/git2/reflog.h +30 -21
- data/vendor/libgit2/include/git2/refs.h +215 -193
- data/vendor/libgit2/include/git2/refspec.h +22 -2
- data/vendor/libgit2/include/git2/remote.h +158 -37
- data/vendor/libgit2/include/git2/repository.h +150 -31
- data/vendor/libgit2/include/git2/reset.h +43 -9
- data/vendor/libgit2/include/git2/revparse.h +48 -4
- data/vendor/libgit2/include/git2/revwalk.h +25 -10
- data/vendor/libgit2/include/git2/signature.h +20 -12
- data/vendor/libgit2/include/git2/stash.h +121 -0
- data/vendor/libgit2/include/git2/status.h +122 -53
- data/vendor/libgit2/include/git2/strarray.h +17 -11
- data/vendor/libgit2/include/git2/submodule.h +42 -7
- data/vendor/libgit2/include/git2/tag.h +72 -59
- data/vendor/libgit2/include/git2/threads.h +4 -2
- data/vendor/libgit2/include/git2/trace.h +68 -0
- data/vendor/libgit2/include/git2/transport.h +328 -0
- data/vendor/libgit2/include/git2/tree.h +149 -120
- data/vendor/libgit2/include/git2/types.h +13 -12
- data/vendor/libgit2/include/git2/version.h +3 -3
- data/vendor/libgit2/src/amiga/map.c +2 -2
- data/vendor/libgit2/src/attr.c +58 -48
- data/vendor/libgit2/src/attr.h +4 -18
- data/vendor/libgit2/src/attr_file.c +30 -6
- data/vendor/libgit2/src/attr_file.h +6 -8
- data/vendor/libgit2/src/attrcache.h +24 -0
- data/vendor/libgit2/src/blob.c +30 -7
- data/vendor/libgit2/src/blob.h +1 -1
- data/vendor/libgit2/src/branch.c +361 -68
- data/vendor/libgit2/src/branch.h +17 -0
- data/vendor/libgit2/src/bswap.h +1 -1
- data/vendor/libgit2/src/buf_text.c +291 -0
- data/vendor/libgit2/src/buf_text.h +122 -0
- data/vendor/libgit2/src/buffer.c +27 -101
- data/vendor/libgit2/src/buffer.h +54 -39
- data/vendor/libgit2/src/cache.c +15 -6
- data/vendor/libgit2/src/cache.h +1 -1
- data/vendor/libgit2/src/cc-compat.h +3 -1
- data/vendor/libgit2/src/checkout.c +1165 -222
- data/vendor/libgit2/src/checkout.h +24 -0
- data/vendor/libgit2/src/clone.c +171 -86
- data/vendor/libgit2/src/commit.c +44 -45
- data/vendor/libgit2/src/commit.h +3 -3
- data/vendor/libgit2/src/commit_list.c +194 -0
- data/vendor/libgit2/src/commit_list.h +49 -0
- data/vendor/libgit2/src/common.h +44 -10
- data/vendor/libgit2/src/compress.c +1 -1
- data/vendor/libgit2/src/compress.h +1 -1
- data/vendor/libgit2/src/config.c +211 -124
- data/vendor/libgit2/src/config.h +23 -4
- data/vendor/libgit2/src/config_cache.c +2 -2
- data/vendor/libgit2/src/config_file.c +129 -53
- data/vendor/libgit2/src/config_file.h +10 -8
- data/vendor/libgit2/src/crlf.c +66 -67
- data/vendor/libgit2/src/date.c +12 -12
- data/vendor/libgit2/src/delta-apply.c +14 -1
- data/vendor/libgit2/src/delta-apply.h +18 -1
- data/vendor/libgit2/src/delta.c +40 -107
- data/vendor/libgit2/src/delta.h +19 -17
- data/vendor/libgit2/src/diff.c +347 -496
- data/vendor/libgit2/src/diff.h +27 -1
- data/vendor/libgit2/src/diff_output.c +564 -249
- data/vendor/libgit2/src/diff_output.h +15 -8
- data/vendor/libgit2/src/diff_tform.c +687 -0
- data/vendor/libgit2/src/errors.c +27 -36
- data/vendor/libgit2/src/fetch.c +13 -351
- data/vendor/libgit2/src/fetch.h +13 -3
- data/vendor/libgit2/src/fetchhead.c +295 -0
- data/vendor/libgit2/src/fetchhead.h +34 -0
- data/vendor/libgit2/src/filebuf.c +42 -15
- data/vendor/libgit2/src/filebuf.h +4 -2
- data/vendor/libgit2/src/fileops.c +466 -113
- data/vendor/libgit2/src/fileops.h +154 -28
- data/vendor/libgit2/src/filter.c +3 -75
- data/vendor/libgit2/src/filter.h +1 -29
- data/vendor/libgit2/src/fnmatch.c +1 -1
- data/vendor/libgit2/src/fnmatch.h +1 -1
- data/vendor/libgit2/src/global.c +54 -10
- data/vendor/libgit2/src/global.h +10 -1
- data/vendor/libgit2/src/graph.c +178 -0
- data/vendor/libgit2/src/hash.c +25 -52
- data/vendor/libgit2/src/hash.h +21 -9
- data/vendor/libgit2/src/{sha1/sha1.c → hash/hash_generic.c} +20 -12
- data/vendor/libgit2/src/hash/hash_generic.h +24 -0
- data/vendor/libgit2/src/hash/hash_openssl.h +45 -0
- data/vendor/libgit2/src/hash/hash_win32.c +291 -0
- data/vendor/libgit2/src/hash/hash_win32.h +140 -0
- data/vendor/libgit2/src/hashsig.c +368 -0
- data/vendor/libgit2/src/hashsig.h +72 -0
- data/vendor/libgit2/src/ignore.c +22 -15
- data/vendor/libgit2/src/ignore.h +6 -1
- data/vendor/libgit2/src/index.c +770 -171
- data/vendor/libgit2/src/index.h +13 -5
- data/vendor/libgit2/src/indexer.c +286 -431
- data/vendor/libgit2/src/iterator.c +854 -466
- data/vendor/libgit2/src/iterator.h +134 -109
- data/vendor/libgit2/src/map.h +1 -1
- data/vendor/libgit2/src/merge.c +296 -0
- data/vendor/libgit2/src/merge.h +22 -0
- data/vendor/libgit2/src/message.c +1 -1
- data/vendor/libgit2/src/message.h +1 -1
- data/vendor/libgit2/src/mwindow.c +35 -30
- data/vendor/libgit2/src/mwindow.h +2 -2
- data/vendor/libgit2/src/netops.c +162 -98
- data/vendor/libgit2/src/netops.h +50 -15
- data/vendor/libgit2/src/notes.c +109 -58
- data/vendor/libgit2/src/notes.h +2 -1
- data/vendor/libgit2/src/object.c +46 -57
- data/vendor/libgit2/src/object.h +1 -8
- data/vendor/libgit2/src/odb.c +151 -40
- data/vendor/libgit2/src/odb.h +5 -1
- data/vendor/libgit2/src/odb_loose.c +4 -5
- data/vendor/libgit2/src/odb_pack.c +122 -80
- data/vendor/libgit2/src/offmap.h +65 -0
- data/vendor/libgit2/src/oid.c +12 -4
- data/vendor/libgit2/src/oidmap.h +1 -1
- data/vendor/libgit2/src/pack-objects.c +88 -61
- data/vendor/libgit2/src/pack-objects.h +8 -8
- data/vendor/libgit2/src/pack.c +293 -28
- data/vendor/libgit2/src/pack.h +49 -4
- data/vendor/libgit2/src/path.c +103 -14
- data/vendor/libgit2/src/path.h +23 -7
- data/vendor/libgit2/src/pathspec.c +168 -0
- data/vendor/libgit2/src/pathspec.h +40 -0
- data/vendor/libgit2/src/pool.c +29 -4
- data/vendor/libgit2/src/pool.h +8 -1
- data/vendor/libgit2/src/posix.c +26 -27
- data/vendor/libgit2/src/posix.h +2 -3
- data/vendor/libgit2/src/pqueue.c +23 -1
- data/vendor/libgit2/src/pqueue.h +23 -1
- data/vendor/libgit2/src/push.c +653 -0
- data/vendor/libgit2/src/push.h +51 -0
- data/vendor/libgit2/src/refdb.c +185 -0
- data/vendor/libgit2/src/refdb.h +46 -0
- data/vendor/libgit2/src/refdb_fs.c +1024 -0
- data/vendor/libgit2/src/refdb_fs.h +15 -0
- data/vendor/libgit2/src/reflog.c +77 -45
- data/vendor/libgit2/src/reflog.h +1 -3
- data/vendor/libgit2/src/refs.c +366 -1326
- data/vendor/libgit2/src/refs.h +22 -13
- data/vendor/libgit2/src/refspec.c +46 -7
- data/vendor/libgit2/src/refspec.h +11 -1
- data/vendor/libgit2/src/remote.c +758 -120
- data/vendor/libgit2/src/remote.h +10 -5
- data/vendor/libgit2/src/repo_template.h +6 -6
- data/vendor/libgit2/src/repository.c +315 -96
- data/vendor/libgit2/src/repository.h +5 -3
- data/vendor/libgit2/src/reset.c +99 -81
- data/vendor/libgit2/src/revparse.c +157 -84
- data/vendor/libgit2/src/revwalk.c +68 -470
- data/vendor/libgit2/src/revwalk.h +44 -0
- data/vendor/libgit2/src/sha1_lookup.c +1 -1
- data/vendor/libgit2/src/sha1_lookup.h +1 -1
- data/vendor/libgit2/src/signature.c +68 -200
- data/vendor/libgit2/src/signature.h +1 -1
- data/vendor/libgit2/src/stash.c +663 -0
- data/vendor/libgit2/src/status.c +101 -79
- data/vendor/libgit2/src/strmap.h +1 -1
- data/vendor/libgit2/src/submodule.c +67 -51
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/tag.c +35 -29
- data/vendor/libgit2/src/tag.h +1 -1
- data/vendor/libgit2/src/thread-utils.c +1 -1
- data/vendor/libgit2/src/thread-utils.h +2 -2
- data/vendor/libgit2/src/trace.c +39 -0
- data/vendor/libgit2/src/trace.h +56 -0
- data/vendor/libgit2/src/transport.c +81 -34
- data/vendor/libgit2/src/transports/cred.c +60 -0
- data/vendor/libgit2/src/transports/cred_helpers.c +49 -0
- data/vendor/libgit2/src/transports/git.c +234 -127
- data/vendor/libgit2/src/transports/http.c +761 -433
- data/vendor/libgit2/src/transports/local.c +460 -64
- data/vendor/libgit2/src/transports/smart.c +345 -0
- data/vendor/libgit2/src/transports/smart.h +179 -0
- data/vendor/libgit2/src/{pkt.c → transports/smart_pkt.c} +131 -12
- data/vendor/libgit2/src/transports/smart_protocol.c +856 -0
- data/vendor/libgit2/src/transports/winhttp.c +1136 -0
- data/vendor/libgit2/src/tree-cache.c +2 -2
- data/vendor/libgit2/src/tree-cache.h +1 -1
- data/vendor/libgit2/src/tree.c +239 -166
- data/vendor/libgit2/src/tree.h +11 -2
- data/vendor/libgit2/src/tsort.c +39 -23
- data/vendor/libgit2/src/unix/map.c +1 -1
- data/vendor/libgit2/src/unix/posix.h +12 -2
- data/vendor/libgit2/src/unix/realpath.c +30 -0
- data/vendor/libgit2/src/util.c +250 -13
- data/vendor/libgit2/src/util.h +71 -14
- data/vendor/libgit2/src/vector.c +123 -60
- data/vendor/libgit2/src/vector.h +24 -22
- data/vendor/libgit2/src/win32/dir.c +1 -1
- data/vendor/libgit2/src/win32/dir.h +1 -1
- data/vendor/libgit2/src/win32/error.c +77 -0
- data/vendor/libgit2/src/win32/error.h +13 -0
- data/vendor/libgit2/src/win32/findfile.c +143 -54
- data/vendor/libgit2/src/win32/findfile.h +10 -6
- data/vendor/libgit2/src/win32/map.c +1 -1
- data/vendor/libgit2/src/win32/mingw-compat.h +1 -1
- data/vendor/libgit2/src/win32/msvc-compat.h +10 -1
- data/vendor/libgit2/src/win32/posix.h +10 -1
- data/vendor/libgit2/src/win32/posix_w32.c +132 -63
- data/vendor/libgit2/src/win32/precompiled.c +1 -1
- data/vendor/libgit2/src/win32/pthread.c +1 -1
- data/vendor/libgit2/src/win32/pthread.h +1 -1
- data/vendor/libgit2/src/win32/utf-conv.c +5 -5
- data/vendor/libgit2/src/win32/utf-conv.h +3 -3
- data/vendor/libgit2/src/win32/version.h +20 -0
- metadata +308 -252
- data/test/fixtures/testrepo.git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 +0 -0
- data/test/fixtures/testrepo.git/objects/7f/043268ea43ce18e3540acaabf9e090c91965b0 +0 -0
- data/test/fixtures/testrepo.git/objects/a3/e05719b428a2d0ed7a55c4ce53dcc5768c6d5e +0 -0
- data/test/index_test.rb~ +0 -218
- data/vendor/libgit2/src/pkt.h +0 -91
- data/vendor/libgit2/src/ppc/sha1.c +0 -70
- data/vendor/libgit2/src/ppc/sha1.h +0 -26
- data/vendor/libgit2/src/protocol.c +0 -110
- data/vendor/libgit2/src/protocol.h +0 -21
- data/vendor/libgit2/src/sha1.h +0 -33
- data/vendor/libgit2/src/transport.h +0 -148
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2009-2012 the libgit2 contributors
|
|
3
|
-
*
|
|
4
|
-
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
-
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
-
*/
|
|
7
|
-
#ifndef INCLUDE_protocol_h__
|
|
8
|
-
#define INCLUDE_protocol_h__
|
|
9
|
-
|
|
10
|
-
#include "transport.h"
|
|
11
|
-
#include "buffer.h"
|
|
12
|
-
#include "pkt.h"
|
|
13
|
-
|
|
14
|
-
int git_protocol_store_refs(git_transport *t, int flushes);
|
|
15
|
-
int git_protocol_detect_caps(git_pkt_ref *pkt, git_transport_caps *caps);
|
|
16
|
-
|
|
17
|
-
#define GIT_SIDE_BAND_DATA 1
|
|
18
|
-
#define GIT_SIDE_BAND_PROGRESS 2
|
|
19
|
-
#define GIT_SIDE_BAND_ERROR 3
|
|
20
|
-
|
|
21
|
-
#endif
|
data/vendor/libgit2/src/sha1.h
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2009-2012 the libgit2 contributors
|
|
3
|
-
*
|
|
4
|
-
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
-
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
#ifndef INCLUDE_sha1_h__
|
|
9
|
-
#define INCLUDE_sha1_h__
|
|
10
|
-
|
|
11
|
-
#ifdef OPENSSL_SHA
|
|
12
|
-
# include <openssl/sha.h>
|
|
13
|
-
|
|
14
|
-
#else
|
|
15
|
-
typedef struct {
|
|
16
|
-
unsigned long long size;
|
|
17
|
-
unsigned int H[5];
|
|
18
|
-
unsigned int W[16];
|
|
19
|
-
} blk_SHA_CTX;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
void git__blk_SHA1_Init(blk_SHA_CTX *ctx);
|
|
23
|
-
void git__blk_SHA1_Update(blk_SHA_CTX *ctx, const void *dataIn, size_t len);
|
|
24
|
-
void git__blk_SHA1_Final(unsigned char hashout[20], blk_SHA_CTX *ctx);
|
|
25
|
-
|
|
26
|
-
#define SHA_CTX blk_SHA_CTX
|
|
27
|
-
#define SHA1_Init git__blk_SHA1_Init
|
|
28
|
-
#define SHA1_Update git__blk_SHA1_Update
|
|
29
|
-
#define SHA1_Final git__blk_SHA1_Final
|
|
30
|
-
|
|
31
|
-
#endif // OPENSSL_SHA
|
|
32
|
-
|
|
33
|
-
#endif
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2009-2012 the libgit2 contributors
|
|
3
|
-
*
|
|
4
|
-
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
-
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
-
*/
|
|
7
|
-
#ifndef INCLUDE_transport_h__
|
|
8
|
-
#define INCLUDE_transport_h__
|
|
9
|
-
|
|
10
|
-
#include "git2/net.h"
|
|
11
|
-
#include "git2/indexer.h"
|
|
12
|
-
#include "vector.h"
|
|
13
|
-
#include "posix.h"
|
|
14
|
-
#include "common.h"
|
|
15
|
-
#include "netops.h"
|
|
16
|
-
#ifdef GIT_SSL
|
|
17
|
-
# include <openssl/ssl.h>
|
|
18
|
-
# include <openssl/err.h>
|
|
19
|
-
#endif
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
#define GIT_CAP_OFS_DELTA "ofs-delta"
|
|
23
|
-
#define GIT_CAP_MULTI_ACK "multi_ack"
|
|
24
|
-
#define GIT_CAP_SIDE_BAND "side-band"
|
|
25
|
-
#define GIT_CAP_SIDE_BAND_64K "side-band-64k"
|
|
26
|
-
#define GIT_CAP_INCLUDE_TAG "include-tag"
|
|
27
|
-
|
|
28
|
-
typedef struct git_transport_caps {
|
|
29
|
-
int common:1,
|
|
30
|
-
ofs_delta:1,
|
|
31
|
-
multi_ack: 1,
|
|
32
|
-
side_band:1,
|
|
33
|
-
side_band_64k:1,
|
|
34
|
-
include_tag:1;
|
|
35
|
-
} git_transport_caps;
|
|
36
|
-
|
|
37
|
-
#ifdef GIT_SSL
|
|
38
|
-
typedef struct gitno_ssl {
|
|
39
|
-
SSL_CTX *ctx;
|
|
40
|
-
SSL *ssl;
|
|
41
|
-
} gitno_ssl;
|
|
42
|
-
#endif
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
/*
|
|
46
|
-
* A day in the life of a network operation
|
|
47
|
-
* ========================================
|
|
48
|
-
*
|
|
49
|
-
* The library gets told to ls-remote/push/fetch on/to/from some
|
|
50
|
-
* remote. We look at the URL of the remote and fill the function
|
|
51
|
-
* table with whatever is appropriate (the remote may be git over git,
|
|
52
|
-
* ssh or http(s). It may even be an hg or svn repository, the library
|
|
53
|
-
* at this level doesn't care, it just calls the helpers.
|
|
54
|
-
*
|
|
55
|
-
* The first call is to ->connect() which connects to the remote,
|
|
56
|
-
* making use of the direction if necessary. This function must also
|
|
57
|
-
* store the remote heads and any other information it needs.
|
|
58
|
-
*
|
|
59
|
-
* The next useful step is to call ->ls() to get the list of
|
|
60
|
-
* references available to the remote. These references may have been
|
|
61
|
-
* collected on connect, or we may build them now. For ls-remote,
|
|
62
|
-
* nothing else is needed other than closing the connection.
|
|
63
|
-
* Otherwise, the higher leves decide which objects we want to
|
|
64
|
-
* have. ->send_have() is used to tell the other end what we have. If
|
|
65
|
-
* we do need to download a pack, ->download_pack() is called.
|
|
66
|
-
*
|
|
67
|
-
* When we're done, we call ->close() to close the
|
|
68
|
-
* connection. ->free() takes care of freeing all the resources.
|
|
69
|
-
*/
|
|
70
|
-
|
|
71
|
-
struct git_transport {
|
|
72
|
-
/**
|
|
73
|
-
* Where the repo lives
|
|
74
|
-
*/
|
|
75
|
-
char *url;
|
|
76
|
-
/**
|
|
77
|
-
* Whether we want to push or fetch
|
|
78
|
-
*/
|
|
79
|
-
int direction : 1, /* 0 fetch, 1 push */
|
|
80
|
-
connected : 1,
|
|
81
|
-
check_cert: 1,
|
|
82
|
-
use_ssl : 1,
|
|
83
|
-
own_logic: 1, /* transitional */
|
|
84
|
-
rpc: 1; /* git-speak for the HTTP transport */
|
|
85
|
-
#ifdef GIT_SSL
|
|
86
|
-
struct gitno_ssl ssl;
|
|
87
|
-
#endif
|
|
88
|
-
git_vector refs;
|
|
89
|
-
git_vector common;
|
|
90
|
-
gitno_buffer buffer;
|
|
91
|
-
GIT_SOCKET socket;
|
|
92
|
-
git_transport_caps caps;
|
|
93
|
-
void *cb_data;
|
|
94
|
-
git_atomic cancel;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Connect and store the remote heads
|
|
98
|
-
*/
|
|
99
|
-
int (*connect)(struct git_transport *transport, int dir);
|
|
100
|
-
/**
|
|
101
|
-
* Send our side of a negotiation
|
|
102
|
-
*/
|
|
103
|
-
int (*negotiation_step)(struct git_transport *transport, void *data, size_t len);
|
|
104
|
-
/**
|
|
105
|
-
* Push the changes over
|
|
106
|
-
*/
|
|
107
|
-
int (*push)(struct git_transport *transport);
|
|
108
|
-
/**
|
|
109
|
-
* Negotiate the minimal amount of objects that need to be
|
|
110
|
-
* retrieved
|
|
111
|
-
*/
|
|
112
|
-
int (*negotiate_fetch)(struct git_transport *transport, git_repository *repo, const git_vector *wants);
|
|
113
|
-
/**
|
|
114
|
-
* Download the packfile
|
|
115
|
-
*/
|
|
116
|
-
int (*download_pack)(struct git_transport *transport, git_repository *repo, git_off_t *bytes, git_indexer_stats *stats);
|
|
117
|
-
/**
|
|
118
|
-
* Close the connection
|
|
119
|
-
*/
|
|
120
|
-
int (*close)(struct git_transport *transport);
|
|
121
|
-
/**
|
|
122
|
-
* Free the associated resources
|
|
123
|
-
*/
|
|
124
|
-
void (*free)(struct git_transport *transport);
|
|
125
|
-
/**
|
|
126
|
-
* Callbacks for the progress and error output
|
|
127
|
-
*/
|
|
128
|
-
void (*progress_cb)(const char *str, int len, void *data);
|
|
129
|
-
void (*error_cb)(const char *str, int len, void *data);
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
int git_transport_new(struct git_transport **transport, const char *url);
|
|
134
|
-
int git_transport_local(struct git_transport **transport);
|
|
135
|
-
int git_transport_git(struct git_transport **transport);
|
|
136
|
-
int git_transport_http(struct git_transport **transport);
|
|
137
|
-
int git_transport_https(struct git_transport **transport);
|
|
138
|
-
int git_transport_dummy(struct git_transport **transport);
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
Returns true if the passed URL is valid (a URL with a Git supported scheme,
|
|
142
|
-
or pointing to an existing path)
|
|
143
|
-
*/
|
|
144
|
-
int git_transport_valid_url(const char *url);
|
|
145
|
-
|
|
146
|
-
typedef int (*git_transport_cb)(git_transport **transport);
|
|
147
|
-
|
|
148
|
-
#endif
|