rugged 0.23.0 → 0.23.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/rugged/rugged_remote.c +1 -8
- data/ext/rugged/rugged_submodule_collection.c +3 -3
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +3 -1
- data/vendor/libgit2/include/git2/diff.h +19 -0
- data/vendor/libgit2/include/git2/errors.h +1 -12
- data/vendor/libgit2/include/git2/remote.h +9 -1
- data/vendor/libgit2/include/git2/repository.h +1 -1
- data/vendor/libgit2/include/git2/sys/config.h +1 -1
- data/vendor/libgit2/include/git2/sys/diff.h +4 -4
- data/vendor/libgit2/include/git2/sys/filter.h +4 -1
- data/vendor/libgit2/include/git2/sys/odb_backend.h +1 -1
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +4 -3
- data/vendor/libgit2/include/git2/transport.h +14 -21
- data/vendor/libgit2/src/blame_git.c +10 -15
- data/vendor/libgit2/src/blob.c +6 -0
- data/vendor/libgit2/src/branch.c +1 -12
- data/vendor/libgit2/src/cache.c +4 -4
- data/vendor/libgit2/src/checkout.c +2 -2
- data/vendor/libgit2/src/clone.c +2 -2
- data/vendor/libgit2/src/common.h +13 -4
- data/vendor/libgit2/src/curl_stream.c +7 -7
- data/vendor/libgit2/src/describe.c +1 -1
- data/vendor/libgit2/src/diff.c +25 -0
- data/vendor/libgit2/src/errors.c +75 -40
- data/vendor/libgit2/src/filebuf.c +6 -1
- data/vendor/libgit2/src/filebuf.h +2 -0
- data/vendor/libgit2/src/filter.c +14 -9
- data/vendor/libgit2/src/global.c +25 -9
- data/vendor/libgit2/src/global.h +1 -0
- data/vendor/libgit2/src/index.c +75 -2
- data/vendor/libgit2/src/indexer.c +1 -1
- data/vendor/libgit2/src/iterator.c +6 -3
- data/vendor/libgit2/src/khash.h +1 -1
- data/vendor/libgit2/src/merge.c +3 -3
- data/vendor/libgit2/src/openssl_stream.c +5 -2
- data/vendor/libgit2/src/pack-objects.c +1 -1
- data/vendor/libgit2/src/pack.c +2 -2
- data/vendor/libgit2/src/path.c +25 -4
- data/vendor/libgit2/src/path.h +6 -1
- data/vendor/libgit2/src/push.h +3 -1
- data/vendor/libgit2/src/rebase.c +2 -2
- data/vendor/libgit2/src/refdb_fs.c +7 -0
- data/vendor/libgit2/src/remote.c +18 -9
- data/vendor/libgit2/src/revwalk.c +1 -1
- data/vendor/libgit2/src/stash.c +1 -1
- data/vendor/libgit2/src/stransport_stream.c +1 -1
- data/vendor/libgit2/src/submodule.c +12 -1
- data/vendor/libgit2/src/sysdir.c +22 -8
- data/vendor/libgit2/src/thread-utils.c +2 -0
- data/vendor/libgit2/src/transports/git.c +2 -0
- data/vendor/libgit2/src/transports/http.c +2 -2
- data/vendor/libgit2/src/transports/smart_pkt.c +1 -1
- data/vendor/libgit2/src/transports/ssh.c +4 -2
- data/vendor/libgit2/src/transports/winhttp.c +1 -1
- data/vendor/libgit2/src/util.c +48 -0
- data/vendor/libgit2/src/util.h +13 -5
- data/vendor/libgit2/src/win32/posix_w32.c +2 -0
- data/vendor/libgit2/src/win32/{buffer.c → w32_buffer.c} +1 -2
- data/vendor/libgit2/src/win32/{buffer.h → w32_buffer.h} +0 -0
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +343 -0
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +93 -0
- data/vendor/libgit2/src/win32/w32_stack.c +192 -0
- data/vendor/libgit2/src/win32/w32_stack.h +138 -0
- data/vendor/libgit2/src/xdiff/xdiff.h +10 -6
- data/vendor/libgit2/src/xdiff/xdiffi.c +46 -4
- data/vendor/libgit2/src/xdiff/xdiffi.h +1 -0
- data/vendor/libgit2/src/xdiff/xemit.c +43 -6
- data/vendor/libgit2/src/xdiff/xemit.h +1 -1
- data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
- data/vendor/libgit2/src/xdiff/xmerge.c +2 -2
- data/vendor/libgit2/src/xdiff/xpatience.c +1 -1
- data/vendor/libgit2/src/xdiff/xprepare.c +10 -11
- data/vendor/libgit2/src/xdiff/xutils.c +13 -29
- data/vendor/libgit2/src/xdiff/xutils.h +1 -0
- metadata +84 -80
data/vendor/libgit2/src/global.h
CHANGED
data/vendor/libgit2/src/index.c
CHANGED
@@ -1228,6 +1228,45 @@ int git_index_add_frombuffer(
|
|
1228
1228
|
return 0;
|
1229
1229
|
}
|
1230
1230
|
|
1231
|
+
static int add_repo_as_submodule(git_index_entry **out, git_index *index, const char *path)
|
1232
|
+
{
|
1233
|
+
git_repository *sub;
|
1234
|
+
git_buf abspath = GIT_BUF_INIT;
|
1235
|
+
git_repository *repo = INDEX_OWNER(index);
|
1236
|
+
git_reference *head;
|
1237
|
+
git_index_entry *entry;
|
1238
|
+
struct stat st;
|
1239
|
+
int error;
|
1240
|
+
|
1241
|
+
if (index_entry_create(&entry, INDEX_OWNER(index), path) < 0)
|
1242
|
+
return -1;
|
1243
|
+
|
1244
|
+
if ((error = git_buf_joinpath(&abspath, git_repository_workdir(repo), path)) < 0)
|
1245
|
+
return error;
|
1246
|
+
|
1247
|
+
if ((error = p_stat(abspath.ptr, &st)) < 0) {
|
1248
|
+
giterr_set(GITERR_OS, "failed to stat repository dir");
|
1249
|
+
return -1;
|
1250
|
+
}
|
1251
|
+
|
1252
|
+
git_index_entry__init_from_stat(entry, &st, !index->distrust_filemode);
|
1253
|
+
|
1254
|
+
if ((error = git_repository_open(&sub, abspath.ptr)) < 0)
|
1255
|
+
return error;
|
1256
|
+
|
1257
|
+
if ((error = git_repository_head(&head, sub)) < 0)
|
1258
|
+
return error;
|
1259
|
+
|
1260
|
+
git_oid_cpy(&entry->id, git_reference_target(head));
|
1261
|
+
entry->mode = GIT_FILEMODE_COMMIT;
|
1262
|
+
|
1263
|
+
git_reference_free(head);
|
1264
|
+
git_repository_free(sub);
|
1265
|
+
git_buf_free(&abspath);
|
1266
|
+
|
1267
|
+
*out = entry;
|
1268
|
+
return 0;
|
1269
|
+
}
|
1231
1270
|
|
1232
1271
|
int git_index_add_bypath(git_index *index, const char *path)
|
1233
1272
|
{
|
@@ -1236,10 +1275,44 @@ int git_index_add_bypath(git_index *index, const char *path)
|
|
1236
1275
|
|
1237
1276
|
assert(index && path);
|
1238
1277
|
|
1239
|
-
if ((ret = index_entry_init(&entry, index, path))
|
1240
|
-
|
1278
|
+
if ((ret = index_entry_init(&entry, index, path)) == 0)
|
1279
|
+
ret = index_insert(index, &entry, 1, false);
|
1280
|
+
|
1281
|
+
/* If we were given a directory, let's see if it's a submodule */
|
1282
|
+
if (ret < 0 && ret != GIT_EDIRECTORY)
|
1241
1283
|
return ret;
|
1242
1284
|
|
1285
|
+
if (ret == GIT_EDIRECTORY) {
|
1286
|
+
git_submodule *sm;
|
1287
|
+
git_error_state err;
|
1288
|
+
|
1289
|
+
giterr_state_capture(&err, ret);
|
1290
|
+
|
1291
|
+
ret = git_submodule_lookup(&sm, INDEX_OWNER(index), path);
|
1292
|
+
if (ret == GIT_ENOTFOUND)
|
1293
|
+
return giterr_state_restore(&err);
|
1294
|
+
|
1295
|
+
giterr_state_free(&err);
|
1296
|
+
|
1297
|
+
/*
|
1298
|
+
* EEXISTS means that there is a repository at that path, but it's not known
|
1299
|
+
* as a submodule. We add its HEAD as an entry and don't register it.
|
1300
|
+
*/
|
1301
|
+
if (ret == GIT_EEXISTS) {
|
1302
|
+
if ((ret = add_repo_as_submodule(&entry, index, path)) < 0)
|
1303
|
+
return ret;
|
1304
|
+
|
1305
|
+
if ((ret = index_insert(index, &entry, 1, false)) < 0)
|
1306
|
+
return ret;
|
1307
|
+
} else if (ret < 0) {
|
1308
|
+
return ret;
|
1309
|
+
} else {
|
1310
|
+
ret = git_submodule_add_to_index(sm, false);
|
1311
|
+
git_submodule_free(sm);
|
1312
|
+
return ret;
|
1313
|
+
}
|
1314
|
+
}
|
1315
|
+
|
1243
1316
|
/* Adding implies conflict was resolved, move conflict entries to REUC */
|
1244
1317
|
if ((ret = index_conflict_to_reuc(index, path)) < 0 && ret != GIT_ENOTFOUND)
|
1245
1318
|
return ret;
|
@@ -1027,8 +1027,11 @@ static int dirload_with_stat(
|
|
1027
1027
|
strncomp = (flags & GIT_PATH_DIR_IGNORE_CASE) != 0 ?
|
1028
1028
|
git__strncasecmp : git__strncmp;
|
1029
1029
|
|
1030
|
-
|
1030
|
+
/* Any error here is equivalent to the dir not existing, skip over it */
|
1031
|
+
if ((error = git_path_diriter_init(&diriter, dirpath, flags)) < 0) {
|
1032
|
+
error = GIT_ENOTFOUND;
|
1031
1033
|
goto done;
|
1034
|
+
}
|
1032
1035
|
|
1033
1036
|
while ((error = git_path_diriter_next(&diriter)) == 0) {
|
1034
1037
|
if ((error = git_path_diriter_fullpath(&path, &path_len, &diriter)) < 0)
|
@@ -1117,7 +1120,7 @@ static int fs_iterator__expand_dir(fs_iterator *fi)
|
|
1117
1120
|
|
1118
1121
|
if (error < 0) {
|
1119
1122
|
git_error_state last_error = { 0 };
|
1120
|
-
|
1123
|
+
giterr_state_capture(&last_error, error);
|
1121
1124
|
|
1122
1125
|
/* these callbacks may clear the error message */
|
1123
1126
|
fs_iterator__free_frame(ff);
|
@@ -1125,7 +1128,7 @@ static int fs_iterator__expand_dir(fs_iterator *fi)
|
|
1125
1128
|
/* next time return value we skipped to */
|
1126
1129
|
fi->base.flags &= ~GIT_ITERATOR_FIRST_ACCESS;
|
1127
1130
|
|
1128
|
-
return
|
1131
|
+
return giterr_state_restore(&last_error);
|
1129
1132
|
}
|
1130
1133
|
|
1131
1134
|
if (ff->entries.length == 0) {
|
data/vendor/libgit2/src/khash.h
CHANGED
data/vendor/libgit2/src/merge.c
CHANGED
@@ -79,7 +79,7 @@ int merge_bases_many(git_commit_list **out, git_revwalk **walk_out, git_reposito
|
|
79
79
|
unsigned int i;
|
80
80
|
|
81
81
|
if (length < 2) {
|
82
|
-
giterr_set(GITERR_INVALID, "At least two commits are required to find an ancestor. Provided 'length' was %
|
82
|
+
giterr_set(GITERR_INVALID, "At least two commits are required to find an ancestor. Provided 'length' was %" PRIuZ ".", length);
|
83
83
|
return -1;
|
84
84
|
}
|
85
85
|
|
@@ -185,7 +185,7 @@ int git_merge_base_octopus(git_oid *out, git_repository *repo, size_t length, co
|
|
185
185
|
assert(out && repo && input_array);
|
186
186
|
|
187
187
|
if (length < 2) {
|
188
|
-
giterr_set(GITERR_INVALID, "At least two commits are required to find an ancestor. Provided 'length' was %
|
188
|
+
giterr_set(GITERR_INVALID, "At least two commits are required to find an ancestor. Provided 'length' was %" PRIuZ ".", length);
|
189
189
|
return -1;
|
190
190
|
}
|
191
191
|
|
@@ -2451,7 +2451,7 @@ int git_merge__check_result(git_repository *repo, git_index *index_new)
|
|
2451
2451
|
goto done;
|
2452
2452
|
|
2453
2453
|
if ((conflicts = index_conflicts + wd_conflicts) > 0) {
|
2454
|
-
giterr_set(GITERR_MERGE, "%
|
2454
|
+
giterr_set(GITERR_MERGE, "%" PRIuZ " uncommitted change%s would be overwritten by merge",
|
2455
2455
|
conflicts, (conflicts != 1) ? "s" : "");
|
2456
2456
|
error = GIT_ECONFLICT;
|
2457
2457
|
}
|
@@ -324,7 +324,9 @@ int openssl_connect(git_stream *stream)
|
|
324
324
|
|
325
325
|
SSL_set_bio(st->ssl, bio, bio);
|
326
326
|
/* specify the host in case SNI is needed */
|
327
|
+
#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
|
327
328
|
SSL_set_tlsext_host_name(st->ssl, st->host);
|
329
|
+
#endif
|
328
330
|
|
329
331
|
if ((ret = SSL_connect(st->ssl)) <= 0)
|
330
332
|
return ssl_set_error(st->ssl, ret);
|
@@ -358,11 +360,12 @@ int openssl_certificate(git_cert **out, git_stream *stream)
|
|
358
360
|
return -1;
|
359
361
|
}
|
360
362
|
|
361
|
-
st->cert_info.cert_type = GIT_CERT_X509;
|
363
|
+
st->cert_info.parent.cert_type = GIT_CERT_X509;
|
362
364
|
st->cert_info.data = encoded_cert;
|
363
365
|
st->cert_info.len = len;
|
364
366
|
|
365
|
-
*out =
|
367
|
+
*out = &st->cert_info.parent;
|
368
|
+
|
366
369
|
return 0;
|
367
370
|
}
|
368
371
|
|
data/vendor/libgit2/src/pack.c
CHANGED
data/vendor/libgit2/src/path.c
CHANGED
@@ -10,8 +10,9 @@
|
|
10
10
|
#include "repository.h"
|
11
11
|
#ifdef GIT_WIN32
|
12
12
|
#include "win32/posix.h"
|
13
|
-
#include "win32/
|
13
|
+
#include "win32/w32_buffer.h"
|
14
14
|
#include "win32/w32_util.h"
|
15
|
+
#include "win32/version.h"
|
15
16
|
#else
|
16
17
|
#include <dirent.h>
|
17
18
|
#endif
|
@@ -1085,7 +1086,7 @@ int git_path_direach(
|
|
1085
1086
|
#if defined(GIT_WIN32) && !defined(__MINGW32__)
|
1086
1087
|
|
1087
1088
|
/* Using _FIND_FIRST_EX_LARGE_FETCH may increase performance in Windows 7
|
1088
|
-
* and better.
|
1089
|
+
* and better.
|
1089
1090
|
*/
|
1090
1091
|
#ifndef FIND_FIRST_EX_LARGE_FETCH
|
1091
1092
|
# define FIND_FIRST_EX_LARGE_FETCH 2
|
@@ -1099,6 +1100,10 @@ int git_path_diriter_init(
|
|
1099
1100
|
git_win32_path path_filter;
|
1100
1101
|
git_buf hack = {0};
|
1101
1102
|
|
1103
|
+
static int is_win7_or_later = -1;
|
1104
|
+
if (is_win7_or_later < 0)
|
1105
|
+
is_win7_or_later = git_has_win32_version(6, 1, 0);
|
1106
|
+
|
1102
1107
|
assert(diriter && path);
|
1103
1108
|
|
1104
1109
|
memset(diriter, 0, sizeof(git_path_diriter));
|
@@ -1122,11 +1127,11 @@ int git_path_diriter_init(
|
|
1122
1127
|
|
1123
1128
|
diriter->handle = FindFirstFileExW(
|
1124
1129
|
path_filter,
|
1125
|
-
FindExInfoBasic,
|
1130
|
+
is_win7_or_later ? FindExInfoBasic : FindExInfoStandard,
|
1126
1131
|
&diriter->current,
|
1127
1132
|
FindExSearchNameMatch,
|
1128
1133
|
NULL,
|
1129
|
-
FIND_FIRST_EX_LARGE_FETCH);
|
1134
|
+
is_win7_or_later ? FIND_FIRST_EX_LARGE_FETCH : 0);
|
1130
1135
|
|
1131
1136
|
if (diriter->handle == INVALID_HANDLE_VALUE) {
|
1132
1137
|
giterr_set(GITERR_OS, "Could not open directory '%s'", path);
|
@@ -1671,3 +1676,19 @@ bool git_path_isvalid(
|
|
1671
1676
|
|
1672
1677
|
return verify_component(repo, start, (c - start), flags);
|
1673
1678
|
}
|
1679
|
+
|
1680
|
+
int git_path_normalize_slashes(git_buf *out, const char *path)
|
1681
|
+
{
|
1682
|
+
int error;
|
1683
|
+
char *p;
|
1684
|
+
|
1685
|
+
if ((error = git_buf_puts(out, path)) < 0)
|
1686
|
+
return error;
|
1687
|
+
|
1688
|
+
for (p = out->ptr; *p; p++) {
|
1689
|
+
if (*p == '\\')
|
1690
|
+
*p = '/';
|
1691
|
+
}
|
1692
|
+
|
1693
|
+
return 0;
|
1694
|
+
}
|
data/vendor/libgit2/src/path.h
CHANGED
@@ -319,7 +319,7 @@ extern int git_path_cmp(
|
|
319
319
|
* @param callback Function to invoke on each path. Passed the `payload`
|
320
320
|
* and the buffer containing the current path. The path should not
|
321
321
|
* be modified in any way. Return non-zero to stop iteration.
|
322
|
-
* @param
|
322
|
+
* @param payload Passed to fn as the first ath.
|
323
323
|
*/
|
324
324
|
extern int git_path_walk_up(
|
325
325
|
git_buf *pathbuf,
|
@@ -591,4 +591,9 @@ extern bool git_path_isvalid(
|
|
591
591
|
const char *path,
|
592
592
|
unsigned int flags);
|
593
593
|
|
594
|
+
/**
|
595
|
+
* Convert any backslashes into slashes
|
596
|
+
*/
|
597
|
+
int git_path_normalize_slashes(git_buf *out, const char *path);
|
598
|
+
|
594
599
|
#endif
|
data/vendor/libgit2/src/push.h
CHANGED
@@ -83,7 +83,7 @@ int git_push_add_refspec(git_push *push, const char *refspec);
|
|
83
83
|
* Update remote tips after a push
|
84
84
|
*
|
85
85
|
* @param push The push object
|
86
|
-
* @param
|
86
|
+
* @param callbacks the callbacks to use for this connection
|
87
87
|
*
|
88
88
|
* @return 0 or an error code
|
89
89
|
*/
|
@@ -100,6 +100,7 @@ int git_push_update_tips(git_push *push, const git_remote_callbacks *callbacks);
|
|
100
100
|
* order to find out which updates were accepted or rejected.
|
101
101
|
*
|
102
102
|
* @param push The push object
|
103
|
+
* @param callbacks the callbacks to use for this connection
|
103
104
|
*
|
104
105
|
* @return 0 or an error code
|
105
106
|
*/
|
@@ -117,6 +118,7 @@ int git_push_finish(git_push *push, const git_remote_callbacks *callbacks);
|
|
117
118
|
*
|
118
119
|
* @param push The push object
|
119
120
|
* @param cb The callback to call on each object
|
121
|
+
* @param data The payload passed to the callback
|
120
122
|
*
|
121
123
|
* @return 0 on success, non-zero callback return value, or error code
|
122
124
|
*/
|
data/vendor/libgit2/src/rebase.c
CHANGED
@@ -436,7 +436,7 @@ static int rebase_setupfiles_merge(git_rebase *rebase)
|
|
436
436
|
size_t i;
|
437
437
|
int error = 0;
|
438
438
|
|
439
|
-
if ((error = rebase_setupfile(rebase, END_FILE, -1, "%
|
439
|
+
if ((error = rebase_setupfile(rebase, END_FILE, -1, "%" PRIuZ "\n", git_array_size(rebase->operations))) < 0 ||
|
440
440
|
(error = rebase_setupfile(rebase, ONTO_NAME_FILE, -1, "%s\n", rebase->onto_name)) < 0)
|
441
441
|
goto done;
|
442
442
|
|
@@ -789,7 +789,7 @@ static int rebase_next_merge(
|
|
789
789
|
normalize_checkout_options_for_apply(&checkout_opts, rebase, current_commit);
|
790
790
|
|
791
791
|
if ((error = git_indexwriter_init_for_operation(&indexwriter, rebase->repo, &checkout_opts.checkout_strategy)) < 0 ||
|
792
|
-
(error = rebase_setupfile(rebase, MSGNUM_FILE, -1, "%
|
792
|
+
(error = rebase_setupfile(rebase, MSGNUM_FILE, -1, "%" PRIuZ "\n", rebase->current+1)) < 0 ||
|
793
793
|
(error = rebase_setupfile(rebase, CURRENT_FILE, -1, "%.*s\n", GIT_OID_HEXSZ, current_idstr)) < 0 ||
|
794
794
|
(error = git_merge_trees(&index, rebase->repo, parent_tree, head_tree, current_tree, NULL)) < 0 ||
|
795
795
|
(error = git_merge__check_result(rebase->repo, index)) < 0 ||
|
@@ -63,6 +63,8 @@ typedef struct refdb_fs_backend {
|
|
63
63
|
uint32_t direach_flags;
|
64
64
|
} refdb_fs_backend;
|
65
65
|
|
66
|
+
static int refdb_reflog_fs__delete(git_refdb_backend *_backend, const char *name);
|
67
|
+
|
66
68
|
static int packref_cmp(const void *a_, const void *b_)
|
67
69
|
{
|
68
70
|
const struct packref *a = a_, *b = b_;
|
@@ -1217,6 +1219,11 @@ static int refdb_fs_backend__delete(
|
|
1217
1219
|
if ((error = loose_lock(&file, backend, ref_name)) < 0)
|
1218
1220
|
return error;
|
1219
1221
|
|
1222
|
+
if ((error = refdb_reflog_fs__delete(_backend, ref_name)) < 0) {
|
1223
|
+
git_filebuf_cleanup(&file);
|
1224
|
+
return error;
|
1225
|
+
}
|
1226
|
+
|
1220
1227
|
return refdb_fs_backend__delete_tail(_backend, &file, ref_name, old_id, old_target);
|
1221
1228
|
}
|
1222
1229
|
|
data/vendor/libgit2/src/remote.c
CHANGED
@@ -153,7 +153,7 @@ static int get_check_cert(int *out, git_repository *repo)
|
|
153
153
|
* most specific to least specific. */
|
154
154
|
|
155
155
|
/* GIT_SSL_NO_VERIFY environment variable */
|
156
|
-
if ((val =
|
156
|
+
if ((val = p_getenv("GIT_SSL_NO_VERIFY")) != NULL)
|
157
157
|
return git_config_parse_bool(out, val);
|
158
158
|
|
159
159
|
/* http.sslVerify config setting */
|
@@ -759,7 +759,7 @@ int git_remote__get_http_proxy(git_remote *remote, bool use_ssl, char **proxy_ur
|
|
759
759
|
{
|
760
760
|
git_config *cfg;
|
761
761
|
git_config_entry *ce = NULL;
|
762
|
-
|
762
|
+
git_buf val = GIT_BUF_INIT;
|
763
763
|
int error;
|
764
764
|
|
765
765
|
assert(remote);
|
@@ -789,7 +789,7 @@ int git_remote__get_http_proxy(git_remote *remote, bool use_ssl, char **proxy_ur
|
|
789
789
|
return error;
|
790
790
|
|
791
791
|
if (ce && ce->value) {
|
792
|
-
|
792
|
+
*proxy_url = git__strdup(ce->value);
|
793
793
|
goto found;
|
794
794
|
}
|
795
795
|
}
|
@@ -797,19 +797,28 @@ int git_remote__get_http_proxy(git_remote *remote, bool use_ssl, char **proxy_ur
|
|
797
797
|
/* http.proxy config setting */
|
798
798
|
if ((error = git_config__lookup_entry(&ce, cfg, "http.proxy", false)) < 0)
|
799
799
|
return error;
|
800
|
+
|
800
801
|
if (ce && ce->value) {
|
801
|
-
|
802
|
+
*proxy_url = git__strdup(ce->value);
|
802
803
|
goto found;
|
803
804
|
}
|
804
805
|
|
805
806
|
/* HTTP_PROXY / HTTPS_PROXY environment variables */
|
806
|
-
|
807
|
+
error = git__getenv(&val, use_ssl ? "HTTPS_PROXY" : "HTTP_PROXY");
|
807
808
|
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
809
|
+
if (error < 0) {
|
810
|
+
if (error == GIT_ENOTFOUND) {
|
811
|
+
giterr_clear();
|
812
|
+
error = 0;
|
813
|
+
}
|
814
|
+
|
815
|
+
return error;
|
812
816
|
}
|
817
|
+
|
818
|
+
*proxy_url = git_buf_detach(&val);
|
819
|
+
|
820
|
+
found:
|
821
|
+
GITERR_CHECK_ALLOC(*proxy_url);
|
813
822
|
git_config_entry_free(ce);
|
814
823
|
|
815
824
|
return 0;
|
data/vendor/libgit2/src/stash.c
CHANGED
@@ -770,7 +770,7 @@ static int ensure_clean_index(git_repository *repo, git_index *index)
|
|
770
770
|
goto done;
|
771
771
|
|
772
772
|
if (git_diff_num_deltas(index_diff) > 0) {
|
773
|
-
giterr_set(GITERR_STASH, "%
|
773
|
+
giterr_set(GITERR_STASH, "%" PRIuZ " uncommitted changes exist in the index",
|
774
774
|
git_diff_num_deltas(index_diff));
|
775
775
|
error = GIT_EUNCOMMITTED;
|
776
776
|
}
|