rugged 0.24.6.1 → 0.25.0b1
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/rugged_repo.c +44 -36
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +10 -21
- data/vendor/libgit2/include/git2/checkout.h +0 -7
- data/vendor/libgit2/include/git2/commit.h +46 -0
- data/vendor/libgit2/include/git2/common.h +1 -16
- data/vendor/libgit2/include/git2/odb.h +47 -1
- data/vendor/libgit2/include/git2/version.h +2 -2
- data/vendor/libgit2/src/array.h +0 -40
- data/vendor/libgit2/src/blame.c +3 -8
- data/vendor/libgit2/src/blame_git.c +9 -20
- data/vendor/libgit2/src/checkout.c +5 -13
- data/vendor/libgit2/src/commit.c +132 -52
- data/vendor/libgit2/src/common.h +1 -1
- data/vendor/libgit2/src/config_cache.c +1 -2
- data/vendor/libgit2/src/config_file.c +20 -14
- data/vendor/libgit2/src/delta-apply.c +5 -36
- data/vendor/libgit2/src/delta-apply.h +0 -12
- data/vendor/libgit2/src/describe.c +1 -2
- data/vendor/libgit2/src/diff_tform.c +3 -5
- data/vendor/libgit2/src/filebuf.c +1 -6
- data/vendor/libgit2/src/global.c +8 -28
- data/vendor/libgit2/src/global.h +0 -1
- data/vendor/libgit2/src/ignore.c +19 -56
- data/vendor/libgit2/src/index.c +8 -27
- data/vendor/libgit2/src/indexer.c +7 -11
- data/vendor/libgit2/src/iterator.c +2 -2
- data/vendor/libgit2/src/merge.c +0 -1
- data/vendor/libgit2/src/mwindow.c +19 -8
- data/vendor/libgit2/src/mwindow.h +2 -1
- data/vendor/libgit2/src/object.c +6 -3
- data/vendor/libgit2/src/odb.c +188 -48
- data/vendor/libgit2/src/odb_loose.c +1 -1
- data/vendor/libgit2/src/odb_pack.c +3 -0
- data/vendor/libgit2/src/openssl_stream.c +27 -60
- data/vendor/libgit2/src/openssl_stream.h +0 -106
- data/vendor/libgit2/src/pack-objects.c +2 -4
- data/vendor/libgit2/src/pack.c +9 -5
- data/vendor/libgit2/src/posix.c +0 -7
- data/vendor/libgit2/src/posix.h +0 -1
- data/vendor/libgit2/src/push.c +6 -6
- data/vendor/libgit2/src/refdb_fs.c +0 -1
- data/vendor/libgit2/src/refs.c +0 -3
- data/vendor/libgit2/src/refspec.c +2 -4
- data/vendor/libgit2/src/remote.c +5 -15
- data/vendor/libgit2/src/repository.c +21 -29
- data/vendor/libgit2/src/settings.c +1 -23
- data/vendor/libgit2/src/stransport_stream.c +9 -15
- data/vendor/libgit2/src/submodule.c +2 -3
- data/vendor/libgit2/src/sysdir.c +47 -41
- data/vendor/libgit2/src/sysdir.h +5 -0
- data/vendor/libgit2/src/tag.c +2 -8
- data/vendor/libgit2/src/thread-utils.h +51 -5
- data/vendor/libgit2/src/transports/http.c +3 -3
- data/vendor/libgit2/src/transports/smart_pkt.c +4 -13
- data/vendor/libgit2/src/transports/smart_protocol.c +17 -61
- data/vendor/libgit2/src/tree.c +100 -83
- data/vendor/libgit2/src/tree.h +5 -4
- data/vendor/libgit2/src/unix/map.c +0 -5
- data/vendor/libgit2/src/util.c +3 -3
- data/vendor/libgit2/src/win32/map.c +5 -24
- data/vendor/libgit2/src/win32/precompiled.h +1 -1
- data/vendor/libgit2/src/win32/{thread.c → pthread.c} +80 -50
- data/vendor/libgit2/src/win32/pthread.h +92 -0
- data/vendor/libgit2/src/xdiff/xprepare.c +1 -2
- metadata +7 -8
- data/vendor/libgit2/src/unix/pthread.h +0 -54
- data/vendor/libgit2/src/win32/thread.h +0 -62
@@ -13,7 +13,6 @@
|
|
13
13
|
#include "posix.h"
|
14
14
|
#include "stream.h"
|
15
15
|
#include "socket_stream.h"
|
16
|
-
#include "openssl_stream.h"
|
17
16
|
#include "netops.h"
|
18
17
|
#include "git2/transport.h"
|
19
18
|
#include "git2/sys/openssl.h"
|
@@ -35,8 +34,6 @@
|
|
35
34
|
|
36
35
|
SSL_CTX *git__ssl_ctx;
|
37
36
|
|
38
|
-
#define GIT_SSL_DEFAULT_CIPHERS "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-DSS-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA256:DHE-DSS-AES128-SHA:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA"
|
39
|
-
|
40
37
|
#ifdef GIT_THREADS
|
41
38
|
|
42
39
|
static git_mutex *openssl_locks;
|
@@ -72,20 +69,12 @@ static void shutdown_ssl_locking(void)
|
|
72
69
|
|
73
70
|
#endif /* GIT_THREADS */
|
74
71
|
|
75
|
-
static BIO_METHOD *git_stream_bio_method;
|
76
|
-
static int init_bio_method(void);
|
77
|
-
|
78
72
|
/**
|
79
73
|
* This function aims to clean-up the SSL context which
|
80
74
|
* we allocated.
|
81
75
|
*/
|
82
76
|
static void shutdown_ssl(void)
|
83
77
|
{
|
84
|
-
if (git_stream_bio_method) {
|
85
|
-
BIO_meth_free(git_stream_bio_method);
|
86
|
-
git_stream_bio_method = NULL;
|
87
|
-
}
|
88
|
-
|
89
78
|
if (git__ssl_ctx) {
|
90
79
|
SSL_CTX_free(git__ssl_ctx);
|
91
80
|
git__ssl_ctx = NULL;
|
@@ -96,7 +85,6 @@ int git_openssl_stream_global_init(void)
|
|
96
85
|
{
|
97
86
|
#ifdef GIT_OPENSSL
|
98
87
|
long ssl_opts = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3;
|
99
|
-
const char *ciphers = git_libgit2__ssl_ciphers();
|
100
88
|
|
101
89
|
/* Older OpenSSL and MacOS OpenSSL doesn't have this */
|
102
90
|
#ifdef SSL_OP_NO_COMPRESSION
|
@@ -120,23 +108,6 @@ int git_openssl_stream_global_init(void)
|
|
120
108
|
git__ssl_ctx = NULL;
|
121
109
|
return -1;
|
122
110
|
}
|
123
|
-
|
124
|
-
if (!ciphers) {
|
125
|
-
ciphers = GIT_SSL_DEFAULT_CIPHERS;
|
126
|
-
}
|
127
|
-
|
128
|
-
if(!SSL_CTX_set_cipher_list(git__ssl_ctx, ciphers)) {
|
129
|
-
SSL_CTX_free(git__ssl_ctx);
|
130
|
-
git__ssl_ctx = NULL;
|
131
|
-
return -1;
|
132
|
-
}
|
133
|
-
|
134
|
-
if (init_bio_method() < 0) {
|
135
|
-
SSL_CTX_free(git__ssl_ctx);
|
136
|
-
git__ssl_ctx = NULL;
|
137
|
-
return -1;
|
138
|
-
}
|
139
|
-
|
140
111
|
#endif
|
141
112
|
|
142
113
|
git__on_shutdown(shutdown_ssl);
|
@@ -172,8 +143,10 @@ int git_openssl_set_locking(void)
|
|
172
143
|
|
173
144
|
static int bio_create(BIO *b)
|
174
145
|
{
|
175
|
-
|
176
|
-
|
146
|
+
b->init = 1;
|
147
|
+
b->num = 0;
|
148
|
+
b->ptr = NULL;
|
149
|
+
b->flags = 0;
|
177
150
|
|
178
151
|
return 1;
|
179
152
|
}
|
@@ -183,22 +156,23 @@ static int bio_destroy(BIO *b)
|
|
183
156
|
if (!b)
|
184
157
|
return 0;
|
185
158
|
|
186
|
-
|
159
|
+
b->init = 0;
|
160
|
+
b->num = 0;
|
161
|
+
b->ptr = NULL;
|
162
|
+
b->flags = 0;
|
187
163
|
|
188
164
|
return 1;
|
189
165
|
}
|
190
166
|
|
191
167
|
static int bio_read(BIO *b, char *buf, int len)
|
192
168
|
{
|
193
|
-
git_stream *io = (git_stream *)
|
194
|
-
|
169
|
+
git_stream *io = (git_stream *) b->ptr;
|
195
170
|
return (int) git_stream_read(io, buf, len);
|
196
171
|
}
|
197
172
|
|
198
173
|
static int bio_write(BIO *b, const char *buf, int len)
|
199
174
|
{
|
200
|
-
git_stream *io = (git_stream *)
|
201
|
-
|
175
|
+
git_stream *io = (git_stream *) b->ptr;
|
202
176
|
return (int) git_stream_write(io, buf, len, 0);
|
203
177
|
}
|
204
178
|
|
@@ -227,22 +201,17 @@ static int bio_puts(BIO *b, const char *str)
|
|
227
201
|
return bio_write(b, str, strlen(str));
|
228
202
|
}
|
229
203
|
|
230
|
-
static
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
BIO_meth_set_create(git_stream_bio_method, bio_create);
|
242
|
-
BIO_meth_set_destroy(git_stream_bio_method, bio_destroy);
|
243
|
-
|
244
|
-
return 0;
|
245
|
-
}
|
204
|
+
static BIO_METHOD git_stream_bio_method = {
|
205
|
+
BIO_TYPE_SOURCE_SINK,
|
206
|
+
"git_stream",
|
207
|
+
bio_write,
|
208
|
+
bio_read,
|
209
|
+
bio_puts,
|
210
|
+
bio_gets,
|
211
|
+
bio_ctrl,
|
212
|
+
bio_create,
|
213
|
+
bio_destroy
|
214
|
+
};
|
246
215
|
|
247
216
|
static int ssl_set_error(SSL *ssl, int error)
|
248
217
|
{
|
@@ -357,7 +326,7 @@ static int verify_server_cert(SSL *ssl, const char *host)
|
|
357
326
|
num = sk_GENERAL_NAME_num(alts);
|
358
327
|
for (i = 0; i < num && matched != 1; i++) {
|
359
328
|
const GENERAL_NAME *gn = sk_GENERAL_NAME_value(alts, i);
|
360
|
-
const char *name = (char *)
|
329
|
+
const char *name = (char *) ASN1_STRING_data(gn->d.ia5);
|
361
330
|
size_t namelen = (size_t) ASN1_STRING_length(gn->d.ia5);
|
362
331
|
|
363
332
|
/* Skip any names of a type we're not looking for */
|
@@ -412,7 +381,7 @@ static int verify_server_cert(SSL *ssl, const char *host)
|
|
412
381
|
if (size > 0) {
|
413
382
|
peer_cn = OPENSSL_malloc(size + 1);
|
414
383
|
GITERR_CHECK_ALLOC(peer_cn);
|
415
|
-
memcpy(peer_cn,
|
384
|
+
memcpy(peer_cn, ASN1_STRING_data(str), size);
|
416
385
|
peer_cn[size] = '\0';
|
417
386
|
} else {
|
418
387
|
goto cert_fail_name;
|
@@ -463,12 +432,11 @@ int openssl_connect(git_stream *stream)
|
|
463
432
|
|
464
433
|
st->connected = true;
|
465
434
|
|
466
|
-
bio = BIO_new(git_stream_bio_method);
|
435
|
+
bio = BIO_new(&git_stream_bio_method);
|
467
436
|
GITERR_CHECK_ALLOC(bio);
|
437
|
+
bio->ptr = st->io;
|
468
438
|
|
469
|
-
BIO_set_data(bio, st->io);
|
470
439
|
SSL_set_bio(st->ssl, bio, bio);
|
471
|
-
|
472
440
|
/* specify the host in case SNI is needed */
|
473
441
|
#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
|
474
442
|
SSL_set_tlsext_host_name(st->ssl, st->host);
|
@@ -541,9 +509,8 @@ ssize_t openssl_read(git_stream *stream, void *data, size_t len)
|
|
541
509
|
openssl_stream *st = (openssl_stream *) stream;
|
542
510
|
int ret;
|
543
511
|
|
544
|
-
if ((ret = SSL_read(st->ssl, data, len)) <= 0)
|
545
|
-
|
546
|
-
}
|
512
|
+
if ((ret = SSL_read(st->ssl, data, len)) <= 0)
|
513
|
+
ssl_set_error(st->ssl, ret);
|
547
514
|
|
548
515
|
return ret;
|
549
516
|
}
|
@@ -13,110 +13,4 @@ extern int git_openssl_stream_global_init(void);
|
|
13
13
|
|
14
14
|
extern int git_openssl_stream_new(git_stream **out, const char *host, const char *port);
|
15
15
|
|
16
|
-
/*
|
17
|
-
* OpenSSL 1.1 made BIO opaque so we have to use functions to interact with it
|
18
|
-
* which do not exist in previous versions. We define these inline functions so
|
19
|
-
* we can program against the interface instead of littering the implementation
|
20
|
-
* with ifdefs.
|
21
|
-
*/
|
22
|
-
#ifdef GIT_OPENSSL
|
23
|
-
# include <openssl/ssl.h>
|
24
|
-
# include <openssl/err.h>
|
25
|
-
# include <openssl/x509v3.h>
|
26
|
-
# include <openssl/bio.h>
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
# if OPENSSL_VERSION_NUMBER < 0x10100000L
|
31
|
-
|
32
|
-
GIT_INLINE(BIO_METHOD*) BIO_meth_new(int type, const char *name)
|
33
|
-
{
|
34
|
-
BIO_METHOD *meth = git__calloc(1, sizeof(BIO_METHOD));
|
35
|
-
if (!meth) {
|
36
|
-
return NULL;
|
37
|
-
}
|
38
|
-
|
39
|
-
meth->type = type;
|
40
|
-
meth->name = name;
|
41
|
-
|
42
|
-
return meth;
|
43
|
-
}
|
44
|
-
|
45
|
-
GIT_INLINE(void) BIO_meth_free(BIO_METHOD *biom)
|
46
|
-
{
|
47
|
-
git__free(biom);
|
48
|
-
}
|
49
|
-
|
50
|
-
GIT_INLINE(int) BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int))
|
51
|
-
{
|
52
|
-
biom->bwrite = write;
|
53
|
-
return 1;
|
54
|
-
}
|
55
|
-
|
56
|
-
GIT_INLINE(int) BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int))
|
57
|
-
{
|
58
|
-
biom->bread = read;
|
59
|
-
return 1;
|
60
|
-
}
|
61
|
-
|
62
|
-
GIT_INLINE(int) BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *))
|
63
|
-
{
|
64
|
-
biom->bputs = puts;
|
65
|
-
return 1;
|
66
|
-
}
|
67
|
-
|
68
|
-
GIT_INLINE(int) BIO_meth_set_gets(BIO_METHOD *biom, int (*gets) (BIO *, char *, int))
|
69
|
-
|
70
|
-
{
|
71
|
-
biom->bgets = gets;
|
72
|
-
return 1;
|
73
|
-
}
|
74
|
-
|
75
|
-
GIT_INLINE(int) BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *))
|
76
|
-
{
|
77
|
-
biom->ctrl = ctrl;
|
78
|
-
return 1;
|
79
|
-
}
|
80
|
-
|
81
|
-
GIT_INLINE(int) BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *))
|
82
|
-
{
|
83
|
-
biom->create = create;
|
84
|
-
return 1;
|
85
|
-
}
|
86
|
-
|
87
|
-
GIT_INLINE(int) BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *))
|
88
|
-
{
|
89
|
-
biom->destroy = destroy;
|
90
|
-
return 1;
|
91
|
-
}
|
92
|
-
|
93
|
-
GIT_INLINE(int) BIO_get_new_index(void)
|
94
|
-
{
|
95
|
-
/* This exists as of 1.1 so before we'd just have 0 */
|
96
|
-
return 0;
|
97
|
-
}
|
98
|
-
|
99
|
-
GIT_INLINE(void) BIO_set_init(BIO *b, int init)
|
100
|
-
{
|
101
|
-
b->init = init;
|
102
|
-
}
|
103
|
-
|
104
|
-
GIT_INLINE(void) BIO_set_data(BIO *a, void *ptr)
|
105
|
-
{
|
106
|
-
a->ptr = ptr;
|
107
|
-
}
|
108
|
-
|
109
|
-
GIT_INLINE(void*) BIO_get_data(BIO *a)
|
110
|
-
{
|
111
|
-
return a->ptr;
|
112
|
-
}
|
113
|
-
|
114
|
-
GIT_INLINE(const unsigned char *) ASN1_STRING_get0_data(const ASN1_STRING *x)
|
115
|
-
{
|
116
|
-
return ASN1_STRING_data((ASN1_STRING *)x);
|
117
|
-
}
|
118
|
-
|
119
|
-
# endif // OpenSSL < 1.1
|
120
|
-
#endif // GIT_OPENSSL
|
121
|
-
|
122
16
|
#endif
|
@@ -848,10 +848,8 @@ static int try_delta(git_packbuilder *pb, struct unpacked *trg,
|
|
848
848
|
|
849
849
|
git_packbuilder__cache_unlock(pb);
|
850
850
|
|
851
|
-
if (overflow)
|
852
|
-
git__free(delta_buf);
|
851
|
+
if (overflow)
|
853
852
|
return -1;
|
854
|
-
}
|
855
853
|
|
856
854
|
trg_object->delta_data = git__realloc(delta_buf, delta_size);
|
857
855
|
GITERR_CHECK_ALLOC(trg_object->delta_data);
|
@@ -1186,7 +1184,7 @@ static int ll_find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
1186
1184
|
git_mutex_init(&p[i].mutex);
|
1187
1185
|
git_cond_init(&p[i].cond);
|
1188
1186
|
|
1189
|
-
ret = git_thread_create(&p[i].thread,
|
1187
|
+
ret = git_thread_create(&p[i].thread, NULL,
|
1190
1188
|
threaded_find_deltas, &p[i]);
|
1191
1189
|
if (ret) {
|
1192
1190
|
giterr_set(GITERR_THREAD, "unable to create thread");
|
data/vendor/libgit2/src/pack.c
CHANGED
@@ -494,19 +494,21 @@ int git_packfile_resolve_header(
|
|
494
494
|
int error;
|
495
495
|
|
496
496
|
error = git_packfile_unpack_header(&size, &type, &p->mwf, &w_curs, &curpos);
|
497
|
+
git_mwindow_close(&w_curs);
|
497
498
|
if (error < 0)
|
498
499
|
return error;
|
499
500
|
|
500
501
|
if (type == GIT_OBJ_OFS_DELTA || type == GIT_OBJ_REF_DELTA) {
|
501
502
|
size_t base_size;
|
502
|
-
|
503
|
-
|
503
|
+
git_rawobj delta;
|
504
504
|
base_offset = get_delta_base(p, &w_curs, &curpos, type, offset);
|
505
505
|
git_mwindow_close(&w_curs);
|
506
|
-
|
506
|
+
error = packfile_unpack_compressed(&delta, p, &w_curs, &curpos, size, type);
|
507
|
+
git_mwindow_close(&w_curs);
|
508
|
+
if (error < 0)
|
507
509
|
return error;
|
508
|
-
error =
|
509
|
-
|
510
|
+
error = git__delta_read_header(delta.data, delta.len, &base_size, size_p);
|
511
|
+
git__free(delta.data);
|
510
512
|
if (error < 0)
|
511
513
|
return error;
|
512
514
|
} else
|
@@ -515,6 +517,7 @@ int git_packfile_resolve_header(
|
|
515
517
|
while (type == GIT_OBJ_OFS_DELTA || type == GIT_OBJ_REF_DELTA) {
|
516
518
|
curpos = base_offset;
|
517
519
|
error = git_packfile_unpack_header(&size, &type, &p->mwf, &w_curs, &curpos);
|
520
|
+
git_mwindow_close(&w_curs);
|
518
521
|
if (error < 0)
|
519
522
|
return error;
|
520
523
|
if (type != GIT_OBJ_OFS_DELTA && type != GIT_OBJ_REF_DELTA)
|
@@ -582,6 +585,7 @@ static int pack_dependency_chain(git_dependency_chain *chain_out,
|
|
582
585
|
elem->base_key = obj_offset;
|
583
586
|
|
584
587
|
error = git_packfile_unpack_header(&size, &type, &p->mwf, &w_curs, &curpos);
|
588
|
+
git_mwindow_close(&w_curs);
|
585
589
|
|
586
590
|
if (error < 0)
|
587
591
|
goto on_error;
|
data/vendor/libgit2/src/posix.c
CHANGED
@@ -224,13 +224,6 @@ int git__page_size(size_t *page_size)
|
|
224
224
|
return 0;
|
225
225
|
}
|
226
226
|
|
227
|
-
int git__mmap_alignment(size_t *alignment)
|
228
|
-
{
|
229
|
-
/* dummy; here we don't need any alignment anyway */
|
230
|
-
*alignment = 4096;
|
231
|
-
return 0;
|
232
|
-
}
|
233
|
-
|
234
227
|
|
235
228
|
int p_mmap(git_map *out, size_t len, int prot, int flags, int fd, git_off_t offset)
|
236
229
|
{
|
data/vendor/libgit2/src/posix.h
CHANGED
@@ -109,7 +109,6 @@ extern int p_getcwd(char *buffer_out, size_t size);
|
|
109
109
|
extern int p_rename(const char *from, const char *to);
|
110
110
|
|
111
111
|
extern int git__page_size(size_t *page_size);
|
112
|
-
extern int git__mmap_alignment(size_t *page_size);
|
113
112
|
|
114
113
|
/**
|
115
114
|
* Platform-dependent methods
|
data/vendor/libgit2/src/push.c
CHANGED
@@ -374,9 +374,9 @@ static int enqueue_object(
|
|
374
374
|
case GIT_OBJ_COMMIT:
|
375
375
|
return 0;
|
376
376
|
case GIT_OBJ_TREE:
|
377
|
-
return git_packbuilder_insert_tree(pb, entry->oid);
|
377
|
+
return git_packbuilder_insert_tree(pb, &entry->oid);
|
378
378
|
default:
|
379
|
-
return git_packbuilder_insert(pb, entry->oid, entry->filename);
|
379
|
+
return git_packbuilder_insert(pb, &entry->oid, entry->filename);
|
380
380
|
}
|
381
381
|
}
|
382
382
|
|
@@ -396,7 +396,7 @@ static int queue_differences(
|
|
396
396
|
const git_tree_entry *d_entry = git_tree_entry_byindex(delta, j);
|
397
397
|
int cmp = 0;
|
398
398
|
|
399
|
-
if (!git_oid__cmp(b_entry->oid, d_entry->oid))
|
399
|
+
if (!git_oid__cmp(&b_entry->oid, &d_entry->oid))
|
400
400
|
goto loop;
|
401
401
|
|
402
402
|
cmp = strcmp(b_entry->filename, d_entry->filename);
|
@@ -407,15 +407,15 @@ static int queue_differences(
|
|
407
407
|
git_tree_entry__is_tree(b_entry) &&
|
408
408
|
git_tree_entry__is_tree(d_entry)) {
|
409
409
|
/* Add the right-hand entry */
|
410
|
-
if ((error = git_packbuilder_insert(pb, d_entry->oid,
|
410
|
+
if ((error = git_packbuilder_insert(pb, &d_entry->oid,
|
411
411
|
d_entry->filename)) < 0)
|
412
412
|
goto on_error;
|
413
413
|
|
414
414
|
/* Acquire the subtrees and recurse */
|
415
415
|
if ((error = git_tree_lookup(&b_child,
|
416
|
-
git_tree_owner(base), b_entry->oid)) < 0 ||
|
416
|
+
git_tree_owner(base), &b_entry->oid)) < 0 ||
|
417
417
|
(error = git_tree_lookup(&d_child,
|
418
|
-
git_tree_owner(delta), d_entry->oid)) < 0 ||
|
418
|
+
git_tree_owner(delta), &d_entry->oid)) < 0 ||
|
419
419
|
(error = queue_differences(b_child, d_child, pb)) < 0)
|
420
420
|
goto on_error;
|
421
421
|
|
@@ -962,7 +962,6 @@ static int packed_write(refdb_fs_backend *backend)
|
|
962
962
|
|
963
963
|
for (i = 0; i < git_sortedcache_entrycount(refcache); ++i) {
|
964
964
|
struct packref *ref = git_sortedcache_entry(refcache, i);
|
965
|
-
assert(ref);
|
966
965
|
|
967
966
|
if (packed_find_peel(backend, ref) < 0)
|
968
967
|
goto fail;
|
data/vendor/libgit2/src/refs.c
CHANGED
@@ -289,9 +289,6 @@ cleanup:
|
|
289
289
|
"Could not use '%s' as valid reference name", git_buf_cstr(&name));
|
290
290
|
}
|
291
291
|
|
292
|
-
if (error == GIT_ENOTFOUND)
|
293
|
-
giterr_set(GITERR_REFERENCE, "no reference found for shorthand '%s'", refname);
|
294
|
-
|
295
292
|
git_buf_free(&name);
|
296
293
|
git_buf_free(&refnamebuf);
|
297
294
|
return error;
|
@@ -53,10 +53,8 @@ int git_refspec__parse(git_refspec *refspec, const char *input, bool is_fetch)
|
|
53
53
|
|
54
54
|
if (rhs) {
|
55
55
|
size_t rlen = strlen(++rhs);
|
56
|
-
|
57
|
-
|
58
|
-
refspec->dst = git__strndup(rhs, rlen);
|
59
|
-
}
|
56
|
+
is_glob = (1 <= rlen && strchr(rhs, '*'));
|
57
|
+
refspec->dst = git__strndup(rhs, rlen);
|
60
58
|
}
|
61
59
|
|
62
60
|
llen = (rhs ? (size_t)(rhs - lhs - 1) : strlen(lhs));
|