rugged 0.27.1 → 0.27.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +1 -1
- data/vendor/libgit2/cmake/Modules/FindPkgLibraries.cmake +28 -0
- data/vendor/libgit2/include/git2/version.h +2 -2
- data/vendor/libgit2/src/CMakeLists.txt +2 -10
- data/vendor/libgit2/src/attr_file.c +5 -0
- data/vendor/libgit2/src/diff_print.c +1 -0
- data/vendor/libgit2/src/hash/sha1dc/sha1.c +67 -23
- data/vendor/libgit2/src/ignore.c +0 -10
- data/vendor/libgit2/src/odb_mempack.c +1 -0
- data/vendor/libgit2/src/refdb_fs.c +2 -0
- data/vendor/libgit2/src/refs.c +3 -0
- data/vendor/libgit2/src/refs.h +4 -0
- data/vendor/libgit2/src/refspec.c +4 -1
- data/vendor/libgit2/src/remote.c +1 -1
- data/vendor/libgit2/src/revwalk.c +9 -24
- data/vendor/libgit2/src/streams/openssl.c +2 -1
- data/vendor/libgit2/src/streams/openssl.h +2 -1
- data/vendor/libgit2/src/submodule.c +34 -18
- data/vendor/libgit2/src/transports/local.c +7 -1
- data/vendor/libgit2/src/transports/ssh.c +2 -1
- data/vendor/libgit2/src/util.c +5 -0
- data/vendor/libgit2/src/worktree.c +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 279547b58b2ddeab2a82b3c8956db7b1ba159ad77a0bd527834ef6a6003ebe9e
|
4
|
+
data.tar.gz: 1d941b494b23fd0fe8f0f36f461085a42f1a789d6cf3402ee8885f4623f57975
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afd3f7404f9888f844e88d345b6c82afecf95c9fbbe9fc7dbb48c8c1c6c8386a14b3711fedec9aaba17357b57ad4a6cc0350e1b72ba356059f84d8343d58db55
|
7
|
+
data.tar.gz: 796ead0476883663ba081ef0883d05dec3a2f8f9248327f32c998f96e6fd083329f85f6a9603a004b41a178b6c6dc13e0b463c75f19cd4d52fdf3874254cb07f
|
data/lib/rugged/version.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
INCLUDE(FindPkgConfig)
|
2
|
+
|
3
|
+
# This function will find and set up a pkg-config based module.
|
4
|
+
# If a pc-file was found, it will resolve library paths to
|
5
|
+
# absolute paths. Furthermore, the function will automatically
|
6
|
+
# fall back to use static libraries in case no dynamic libraries
|
7
|
+
# were found.
|
8
|
+
FUNCTION(FIND_PKGLIBRARIES prefix package)
|
9
|
+
PKG_CHECK_MODULES(${prefix} ${package})
|
10
|
+
IF(NOT ${prefix}_FOUND)
|
11
|
+
RETURN()
|
12
|
+
ENDIF()
|
13
|
+
|
14
|
+
FOREACH(LIBRARY ${${prefix}_LIBRARIES})
|
15
|
+
FIND_LIBRARY(${LIBRARY}_RESOLVED ${LIBRARY} PATHS ${${prefix}_LIBRARY_DIRS})
|
16
|
+
IF(${${LIBRARY}_RESOLVED} STREQUAL "${LIBRARY}_RESOLVED-NOTFOUND")
|
17
|
+
MESSAGE(FATAL_ERROR "could not resolve ${LIBRARY}")
|
18
|
+
ENDIF()
|
19
|
+
LIST(APPEND RESOLVED_LIBRARIES ${${LIBRARY}_RESOLVED})
|
20
|
+
ENDFOREACH(LIBRARY)
|
21
|
+
|
22
|
+
SET(${prefix}_FOUND 1 PARENT_SCOPE)
|
23
|
+
SET(${prefix}_LIBRARIES ${RESOLVED_LIBRARIES} PARENT_SCOPE)
|
24
|
+
SET(${prefix}_INCLUDE_DIRS ${${prefix}_INCLUDE_DIRS} PARENT_SCOPE)
|
25
|
+
SET(${prefix}_LDFLAGS ${${prefix}_LDFLAGS} PARENT_SCOPE)
|
26
|
+
|
27
|
+
MESSAGE(STATUS " Resolved libraries: ${RESOLVED_LIBRARIES}")
|
28
|
+
ENDFUNCTION()
|
@@ -7,10 +7,10 @@
|
|
7
7
|
#ifndef INCLUDE_git_version_h__
|
8
8
|
#define INCLUDE_git_version_h__
|
9
9
|
|
10
|
-
#define LIBGIT2_VERSION "0.27.
|
10
|
+
#define LIBGIT2_VERSION "0.27.2"
|
11
11
|
#define LIBGIT2_VER_MAJOR 0
|
12
12
|
#define LIBGIT2_VER_MINOR 27
|
13
|
-
#define LIBGIT2_VER_REVISION
|
13
|
+
#define LIBGIT2_VER_REVISION 2
|
14
14
|
#define LIBGIT2_VER_PATCH 0
|
15
15
|
|
16
16
|
#define LIBGIT2_SOVERSION 27
|
@@ -17,7 +17,6 @@ SET(LIBGIT2_INCLUDES
|
|
17
17
|
"${libgit2_SOURCE_DIR}/src"
|
18
18
|
"${libgit2_SOURCE_DIR}/include")
|
19
19
|
SET(LIBGIT2_LIBS "")
|
20
|
-
SET(LIBGIT2_LIBDIRS "")
|
21
20
|
|
22
21
|
# Installation paths
|
23
22
|
#
|
@@ -109,7 +108,6 @@ IF (WIN32 AND WINHTTP)
|
|
109
108
|
ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/winhttp" "${libgit2_BINARY_DIR}/deps/winhttp")
|
110
109
|
LIST(APPEND LIBGIT2_LIBS winhttp)
|
111
110
|
LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/winhttp")
|
112
|
-
LIST(APPEND LIBGIT2_LIBDIRS ${LIBWINHTTP_PATH})
|
113
111
|
ELSE()
|
114
112
|
LIST(APPEND LIBGIT2_LIBS "winhttp")
|
115
113
|
LIST(APPEND LIBGIT2_PC_LIBS "-lwinhttp")
|
@@ -119,13 +117,11 @@ IF (WIN32 AND WINHTTP)
|
|
119
117
|
LIST(APPEND LIBGIT2_PC_LIBS "-lrpcrt4" "-lcrypt32" "-lole32")
|
120
118
|
ELSE ()
|
121
119
|
IF (CURL)
|
122
|
-
|
120
|
+
FIND_PKGLIBRARIES(CURL libcurl)
|
123
121
|
ENDIF ()
|
124
|
-
|
125
122
|
IF (CURL_FOUND)
|
126
123
|
SET(GIT_CURL 1)
|
127
124
|
LIST(APPEND LIBGIT2_INCLUDES ${CURL_INCLUDE_DIRS})
|
128
|
-
LIST(APPEND LIBGIT2_LIBDIRS ${CURL_LIBRARY_DIRS})
|
129
125
|
LIST(APPEND LIBGIT2_LIBS ${CURL_LIBRARIES})
|
130
126
|
LIST(APPEND LIBGIT2_PC_LIBS ${CURL_LDFLAGS})
|
131
127
|
ENDIF()
|
@@ -282,15 +278,13 @@ ENDIF()
|
|
282
278
|
|
283
279
|
# Optional external dependency: libssh2
|
284
280
|
IF (USE_SSH)
|
285
|
-
|
281
|
+
FIND_PKGLIBRARIES(LIBSSH2 libssh2)
|
286
282
|
ENDIF()
|
287
283
|
IF (LIBSSH2_FOUND)
|
288
284
|
SET(GIT_SSH 1)
|
289
285
|
LIST(APPEND LIBGIT2_INCLUDES ${LIBSSH2_INCLUDE_DIRS})
|
290
286
|
LIST(APPEND LIBGIT2_LIBS ${LIBSSH2_LIBRARIES})
|
291
|
-
LIST(APPEND LIBGIT2_LIBDIRS ${LIBSSH2_LIBRARY_DIRS})
|
292
287
|
LIST(APPEND LIBGIT2_PC_LIBS ${LIBSSH2_LDFLAGS})
|
293
|
-
#SET(LIBGIT2_PC_LIBS "${LIBGIT2_PC_LIBS} ${LIBSSH2_LDFLAGS}")
|
294
288
|
|
295
289
|
CHECK_LIBRARY_EXISTS("${LIBSSH2_LIBRARIES}" libssh2_userauth_publickey_frommemory "${LIBSSH2_LIBRARY_DIRS}" HAVE_LIBSSH2_MEMORY_CREDENTIALS)
|
296
290
|
IF (HAVE_LIBSSH2_MEMORY_CREDENTIALS)
|
@@ -404,7 +398,6 @@ ENDIF()
|
|
404
398
|
SET(LIBGIT2_OBJECTS ${LIBGIT2_OBJECTS} PARENT_SCOPE)
|
405
399
|
SET(LIBGIT2_INCLUDES ${LIBGIT2_INCLUDES} PARENT_SCOPE)
|
406
400
|
SET(LIBGIT2_LIBS ${LIBGIT2_LIBS} PARENT_SCOPE)
|
407
|
-
SET(LIBGIT2_LIBDIRS ${LIBGIT2_LIBDIRS} PARENT_SCOPE)
|
408
401
|
|
409
402
|
IF(XCODE_VERSION)
|
410
403
|
# This is required for Xcode to actually link the libgit2 library
|
@@ -414,7 +407,6 @@ IF(XCODE_VERSION)
|
|
414
407
|
ENDIF()
|
415
408
|
|
416
409
|
# Compile and link libgit2
|
417
|
-
LINK_DIRECTORIES(${LIBGIT2_LIBDIRS})
|
418
410
|
ADD_LIBRARY(git2 ${WIN_RC} ${LIBGIT2_OBJECTS})
|
419
411
|
TARGET_LINK_LIBRARIES(git2 ${LIBGIT2_LIBS})
|
420
412
|
|
@@ -633,6 +633,11 @@ int git_attr_fnmatch__parse(
|
|
633
633
|
if (--spec->length == 0)
|
634
634
|
return GIT_ENOTFOUND;
|
635
635
|
|
636
|
+
/* Remove trailing spaces. */
|
637
|
+
while (pattern[spec->length - 1] == ' ' || pattern[spec->length - 1] == '\t')
|
638
|
+
if (--spec->length == 0)
|
639
|
+
return GIT_ENOTFOUND;
|
640
|
+
|
636
641
|
if (pattern[spec->length - 1] == '/') {
|
637
642
|
spec->length--;
|
638
643
|
spec->flags = spec->flags | GIT_ATTR_FNMATCH_DIRECTORY;
|
@@ -130,6 +130,7 @@ char git_diff_status_char(git_delta_t status)
|
|
130
130
|
case GIT_DELTA_COPIED: code = 'C'; break;
|
131
131
|
case GIT_DELTA_IGNORED: code = 'I'; break;
|
132
132
|
case GIT_DELTA_UNTRACKED: code = '?'; break;
|
133
|
+
case GIT_DELTA_TYPECHANGE: code = 'T'; break;
|
133
134
|
case GIT_DELTA_UNREADABLE: code = 'X'; break;
|
134
135
|
default: code = ' '; break;
|
135
136
|
}
|
@@ -10,6 +10,9 @@
|
|
10
10
|
#include <memory.h>
|
11
11
|
#include <stdio.h>
|
12
12
|
#include <stdlib.h>
|
13
|
+
#ifdef __unix__
|
14
|
+
#include <sys/types.h> /* make sure macros like _BIG_ENDIAN visible */
|
15
|
+
#endif
|
13
16
|
#endif
|
14
17
|
|
15
18
|
#ifdef SHA1DC_CUSTOM_INCLUDE_SHA1_C
|
@@ -23,6 +26,13 @@
|
|
23
26
|
#include "sha1.h"
|
24
27
|
#include "ubc_check.h"
|
25
28
|
|
29
|
+
#if (defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || \
|
30
|
+
defined(i386) || defined(__i386) || defined(__i386__) || defined(__i486__) || \
|
31
|
+
defined(__i586__) || defined(__i686__) || defined(_M_IX86) || defined(__X86__) || \
|
32
|
+
defined(_X86_) || defined(__THW_INTEL__) || defined(__I86__) || defined(__INTEL__) || \
|
33
|
+
defined(__386) || defined(_M_X64) || defined(_M_AMD64))
|
34
|
+
#define SHA1DC_ON_INTEL_LIKE_PROCESSOR
|
35
|
+
#endif
|
26
36
|
|
27
37
|
/*
|
28
38
|
Because Little-Endian architectures are most common,
|
@@ -32,29 +42,70 @@
|
|
32
42
|
If you are compiling on a big endian platform and your compiler does not define one of these,
|
33
43
|
you will have to add whatever macros your tool chain defines to indicate Big-Endianness.
|
34
44
|
*/
|
35
|
-
#ifdef SHA1DC_BIGENDIAN
|
36
|
-
#undef SHA1DC_BIGENDIAN
|
37
|
-
#endif
|
38
45
|
|
39
|
-
#if
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
46
|
+
#if defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__)
|
47
|
+
/*
|
48
|
+
* Should detect Big Endian under GCC since at least 4.6.0 (gcc svn
|
49
|
+
* rev #165881). See
|
50
|
+
* https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
|
51
|
+
*
|
52
|
+
* This also works under clang since 3.2, it copied the GCC-ism. See
|
53
|
+
* clang.git's 3b198a97d2 ("Preprocessor: add __BYTE_ORDER__
|
54
|
+
* predefined macro", 2012-07-27)
|
55
|
+
*/
|
56
|
+
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
44
57
|
#define SHA1DC_BIGENDIAN
|
45
58
|
#endif
|
46
59
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
60
|
+
/* Not under GCC-alike */
|
61
|
+
#elif defined(__BYTE_ORDER) && defined(__BIG_ENDIAN)
|
62
|
+
/*
|
63
|
+
* Should detect Big Endian under glibc.git since 14245eb70e ("entered
|
64
|
+
* into RCS", 1992-11-25). Defined in <endian.h> which will have been
|
65
|
+
* brought in by standard headers. See glibc.git and
|
66
|
+
* https://sourceforge.net/p/predef/wiki/Endianness/
|
67
|
+
*/
|
68
|
+
#if __BYTE_ORDER == __BIG_ENDIAN
|
53
69
|
#define SHA1DC_BIGENDIAN
|
54
70
|
#endif
|
55
71
|
|
72
|
+
/* Not under GCC-alike or glibc */
|
73
|
+
#elif defined(_BYTE_ORDER) && defined(_BIG_ENDIAN) && defined(_LITTLE_ENDIAN)
|
74
|
+
/*
|
75
|
+
* *BSD and newlib (embeded linux, cygwin, etc).
|
76
|
+
* the defined(_BIG_ENDIAN) && defined(_LITTLE_ENDIAN) part prevents
|
77
|
+
* this condition from matching with Solaris/sparc.
|
78
|
+
* (Solaris defines only one endian macro)
|
79
|
+
*/
|
80
|
+
#if _BYTE_ORDER == _BIG_ENDIAN
|
81
|
+
#define SHA1DC_BIGENDIAN
|
56
82
|
#endif
|
57
83
|
|
84
|
+
/* Not under GCC-alike or glibc or *BSD or newlib */
|
85
|
+
#elif (defined(__ARMEB__) || defined(__THUMBEB__) || defined(__AARCH64EB__) || \
|
86
|
+
defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || \
|
87
|
+
defined(__sparc))
|
88
|
+
/*
|
89
|
+
* Should define Big Endian for a whitelist of known processors. See
|
90
|
+
* https://sourceforge.net/p/predef/wiki/Endianness/ and
|
91
|
+
* http://www.oracle.com/technetwork/server-storage/solaris/portingtosolaris-138514.html
|
92
|
+
*/
|
93
|
+
#define SHA1DC_BIGENDIAN
|
94
|
+
|
95
|
+
/* Not under GCC-alike or glibc or *BSD or newlib or <processor whitelist> */
|
96
|
+
#elif defined(SHA1DC_ON_INTEL_LIKE_PROCESSOR)
|
97
|
+
/*
|
98
|
+
* As a last resort before we do anything else we're not 100% sure
|
99
|
+
* about below, we blacklist specific processors here. We could add
|
100
|
+
* more, see e.g. https://wiki.debian.org/ArchitectureSpecificsMemo
|
101
|
+
*/
|
102
|
+
#else /* Not under GCC-alike or glibc or *BSD or newlib or <processor whitelist> or <processor blacklist> */
|
103
|
+
|
104
|
+
/* We do nothing more here for now */
|
105
|
+
/*#error "Uncomment this to see if you fall through all the detection"*/
|
106
|
+
|
107
|
+
#endif /* Big Endian detection */
|
108
|
+
|
58
109
|
#if (defined(SHA1DC_FORCE_LITTLEENDIAN) && defined(SHA1DC_BIGENDIAN))
|
59
110
|
#undef SHA1DC_BIGENDIAN
|
60
111
|
#endif
|
@@ -63,15 +114,8 @@
|
|
63
114
|
#endif
|
64
115
|
/*ENDIANNESS SELECTION*/
|
65
116
|
|
66
|
-
#if (
|
67
|
-
defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || \
|
68
|
-
defined(i386) || defined(__i386) || defined(__i386__) || defined(__i486__) || \
|
69
|
-
defined(__i586__) || defined(__i686__) || defined(_M_IX86) || defined(__X86__) || \
|
70
|
-
defined(_X86_) || defined(__THW_INTEL__) || defined(__I86__) || defined(__INTEL__) || \
|
71
|
-
defined(__386) || defined(_M_X64) || defined(_M_AMD64))
|
72
|
-
|
117
|
+
#if defined(SHA1DC_FORCE_UNALIGNED_ACCESS) || defined(SHA1DC_ON_INTEL_LIKE_PROCESSOR)
|
73
118
|
#define SHA1DC_ALLOW_UNALIGNED_ACCESS
|
74
|
-
|
75
119
|
#endif /*UNALIGNMENT DETECTION*/
|
76
120
|
|
77
121
|
|
@@ -918,7 +962,7 @@ static void sha1recompress_fast_ ## t (uint32_t ihvin[5], uint32_t ihvout[5], co
|
|
918
962
|
|
919
963
|
#ifdef _MSC_VER
|
920
964
|
#pragma warning(push)
|
921
|
-
#pragma warning(disable: 4127) /*
|
965
|
+
#pragma warning(disable: 4127) /* Compiler complains about the checks in the above macro being constant. */
|
922
966
|
#endif
|
923
967
|
|
924
968
|
#ifdef DOSTORESTATE0
|
data/vendor/libgit2/src/ignore.c
CHANGED
@@ -213,16 +213,6 @@ static int parse_ignore_file(
|
|
213
213
|
if (ignore_case)
|
214
214
|
match->flags |= GIT_ATTR_FNMATCH_ICASE;
|
215
215
|
|
216
|
-
while (match->length > 0) {
|
217
|
-
if (match->pattern[match->length - 1] == ' ' ||
|
218
|
-
match->pattern[match->length - 1] == '\t') {
|
219
|
-
match->pattern[match->length - 1] = 0;
|
220
|
-
match->length --;
|
221
|
-
} else {
|
222
|
-
break;
|
223
|
-
}
|
224
|
-
}
|
225
|
-
|
226
216
|
scan = git__next_line(scan);
|
227
217
|
|
228
218
|
/*
|
@@ -1603,6 +1603,8 @@ static int create_new_reflog_file(const char *filepath)
|
|
1603
1603
|
|
1604
1604
|
GIT_INLINE(int) retrieve_reflog_path(git_buf *path, git_repository *repo, const char *name)
|
1605
1605
|
{
|
1606
|
+
if (strcmp(name, GIT_HEAD_FILE) == 0)
|
1607
|
+
return git_buf_join3(path, '/', repo->gitdir, GIT_REFLOG_DIR, name);
|
1606
1608
|
return git_buf_join3(path, '/', repo->commondir, GIT_REFLOG_DIR, name);
|
1607
1609
|
}
|
1608
1610
|
|
data/vendor/libgit2/src/refs.c
CHANGED
data/vendor/libgit2/src/refs.h
CHANGED
@@ -116,6 +116,10 @@ int git_reference_lookup_resolved(
|
|
116
116
|
* with the given name pointing to the reference pointed to by
|
117
117
|
* the file. If it is not a symbolic reference, it will return
|
118
118
|
* the resolved reference.
|
119
|
+
*
|
120
|
+
* Note that because the refdb is not involved for symbolic references, they
|
121
|
+
* won't be owned, hence you should either not make the returned reference
|
122
|
+
* 'externally visible', or perform the lookup before returning it to the user.
|
119
123
|
*/
|
120
124
|
int git_reference__read_head(
|
121
125
|
git_reference **out,
|
@@ -304,6 +304,7 @@ int git_refspec__dwim_one(git_vector *out, git_refspec *spec, git_vector *refs)
|
|
304
304
|
git_buf buf = GIT_BUF_INIT;
|
305
305
|
size_t j, pos;
|
306
306
|
git_remote_head key;
|
307
|
+
git_refspec *cur;
|
307
308
|
|
308
309
|
const char* formatters[] = {
|
309
310
|
GIT_REFS_DIR "%s",
|
@@ -312,7 +313,9 @@ int git_refspec__dwim_one(git_vector *out, git_refspec *spec, git_vector *refs)
|
|
312
313
|
NULL
|
313
314
|
};
|
314
315
|
|
315
|
-
|
316
|
+
assert(out && spec && refs);
|
317
|
+
|
318
|
+
cur = git__calloc(1, sizeof(git_refspec));
|
316
319
|
GITERR_CHECK_ALLOC(cur);
|
317
320
|
|
318
321
|
cur->force = spec->force;
|
data/vendor/libgit2/src/remote.c
CHANGED
@@ -237,7 +237,7 @@ static int create_internal(git_remote **out, git_repository *repo, const char *n
|
|
237
237
|
goto on_error;
|
238
238
|
|
239
239
|
/* only write for non-anonymous remotes */
|
240
|
-
if (name && (error = write_add_refspec(repo, name, fetch, true)) < 0)
|
240
|
+
if (repo && name && (error = write_add_refspec(repo, name, fetch, true)) < 0)
|
241
241
|
goto on_error;
|
242
242
|
|
243
243
|
if (repo && (error = lookup_remote_prune_config(remote, config_ro, name)) < 0)
|
@@ -375,20 +375,6 @@ static int add_parents_to_list(git_revwalk *walk, git_commit_list_node *commit,
|
|
375
375
|
return 0;
|
376
376
|
}
|
377
377
|
|
378
|
-
static int everybody_uninteresting(git_commit_list *orig)
|
379
|
-
{
|
380
|
-
git_commit_list *list = orig;
|
381
|
-
|
382
|
-
while (list) {
|
383
|
-
git_commit_list_node *commit = list->item;
|
384
|
-
list = list->next;
|
385
|
-
if (!commit->uninteresting)
|
386
|
-
return 0;
|
387
|
-
}
|
388
|
-
|
389
|
-
return 1;
|
390
|
-
}
|
391
|
-
|
392
378
|
/* How many unintersting commits we want to look at after we run out of interesting ones */
|
393
379
|
#define SLOP 5
|
394
380
|
|
@@ -398,16 +384,15 @@ static int still_interesting(git_commit_list *list, int64_t time, int slop)
|
|
398
384
|
if (!list)
|
399
385
|
return 0;
|
400
386
|
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
return SLOP;
|
387
|
+
for (; list; list = list->next) {
|
388
|
+
/*
|
389
|
+
* If the destination list has commits with an earlier date than
|
390
|
+
* our source or if it still contains interesting commits we
|
391
|
+
* want to continue looking.
|
392
|
+
*/
|
393
|
+
if (!list->item->uninteresting || list->item->time > time)
|
394
|
+
return SLOP;
|
395
|
+
}
|
411
396
|
|
412
397
|
/* Everything's uninteresting, reduce the count */
|
413
398
|
return slop - 1;
|
@@ -104,7 +104,8 @@ int git_openssl_stream_global_init(void)
|
|
104
104
|
ssl_opts |= SSL_OP_NO_COMPRESSION;
|
105
105
|
#endif
|
106
106
|
|
107
|
-
#if OPENSSL_VERSION_NUMBER < 0x10100000L ||
|
107
|
+
#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
|
108
|
+
(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
108
109
|
SSL_load_error_strings();
|
109
110
|
OpenSSL_add_ssl_algorithms();
|
110
111
|
#else
|
@@ -31,7 +31,8 @@ extern int git_openssl__set_cert_location(const char *file, const char *path);
|
|
31
31
|
|
32
32
|
|
33
33
|
|
34
|
-
# if OPENSSL_VERSION_NUMBER < 0x10100000L ||
|
34
|
+
# if OPENSSL_VERSION_NUMBER < 0x10100000L || \
|
35
|
+
(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
35
36
|
|
36
37
|
GIT_INLINE(BIO_METHOD*) BIO_meth_new(int type, const char *name)
|
37
38
|
{
|
@@ -91,7 +91,7 @@ __KHASH_IMPL(
|
|
91
91
|
|
92
92
|
static int submodule_alloc(git_submodule **out, git_repository *repo, const char *name);
|
93
93
|
static git_config_backend *open_gitmodules(git_repository *repo, int gitmod);
|
94
|
-
static
|
94
|
+
static int gitmodules_snapshot(git_config **snap, git_repository *repo);
|
95
95
|
static int get_url_base(git_buf *url, git_repository *repo);
|
96
96
|
static int lookup_head_remote_key(git_buf *remote_key, git_repository *repo);
|
97
97
|
static int lookup_default_remote(git_remote **remote, git_repository *repo);
|
@@ -186,6 +186,13 @@ static int load_submodule_names(git_strmap *out, git_repository *repo, git_confi
|
|
186
186
|
fdot = strchr(entry->name, '.');
|
187
187
|
ldot = strrchr(entry->name, '.');
|
188
188
|
|
189
|
+
if (git_strmap_exists(out, entry->value)) {
|
190
|
+
giterr_set(GITERR_SUBMODULE,
|
191
|
+
"duplicated submodule path '%s'", entry->value);
|
192
|
+
error = -1;
|
193
|
+
goto out;
|
194
|
+
}
|
195
|
+
|
189
196
|
git_buf_clear(&buf);
|
190
197
|
git_buf_put(&buf, fdot + 1, ldot - fdot - 1);
|
191
198
|
isvalid = git_submodule_name_is_valid(repo, buf.ptr, 0);
|
@@ -544,8 +551,11 @@ int git_submodule__map(git_repository *repo, git_strmap *map)
|
|
544
551
|
data.map = map;
|
545
552
|
data.repo = repo;
|
546
553
|
|
547
|
-
if ((
|
554
|
+
if ((error = gitmodules_snapshot(&mods, repo)) < 0) {
|
555
|
+
if (error == GIT_ENOTFOUND)
|
556
|
+
error = 0;
|
548
557
|
goto cleanup;
|
558
|
+
}
|
549
559
|
|
550
560
|
data.mods = mods;
|
551
561
|
if ((error = git_config_foreach(
|
@@ -1552,7 +1562,8 @@ int git_submodule_reload(git_submodule *sm, int force)
|
|
1552
1562
|
|
1553
1563
|
if (!git_repository_is_bare(sm->repo)) {
|
1554
1564
|
/* refresh config data */
|
1555
|
-
|
1565
|
+
if ((error = gitmodules_snapshot(&mods, sm->repo)) < 0 && error != GIT_ENOTFOUND)
|
1566
|
+
return error;
|
1556
1567
|
if (mods != NULL) {
|
1557
1568
|
error = submodule_read_config(sm, mods);
|
1558
1569
|
git_config_free(mods);
|
@@ -1962,32 +1973,37 @@ static int submodule_load_from_wd_lite(git_submodule *sm)
|
|
1962
1973
|
}
|
1963
1974
|
|
1964
1975
|
/**
|
1965
|
-
*
|
1976
|
+
* Requests a snapshot of $WORK_TREE/.gitmodules.
|
1966
1977
|
*
|
1967
|
-
*
|
1978
|
+
* Returns GIT_ENOTFOUND in case no .gitmodules file exist
|
1968
1979
|
*/
|
1969
|
-
static
|
1980
|
+
static int gitmodules_snapshot(git_config **snap, git_repository *repo)
|
1970
1981
|
{
|
1971
1982
|
const char *workdir = git_repository_workdir(repo);
|
1972
|
-
git_config *mods = NULL
|
1983
|
+
git_config *mods = NULL;
|
1973
1984
|
git_buf path = GIT_BUF_INIT;
|
1985
|
+
int error;
|
1974
1986
|
|
1975
|
-
if (workdir
|
1976
|
-
|
1977
|
-
return NULL;
|
1987
|
+
if (!workdir)
|
1988
|
+
return GIT_ENOTFOUND;
|
1978
1989
|
|
1979
|
-
|
1980
|
-
|
1981
|
-
}
|
1990
|
+
if ((error = git_buf_joinpath(&path, workdir, GIT_MODULES_FILE)) < 0)
|
1991
|
+
return error;
|
1982
1992
|
|
1983
|
-
|
1993
|
+
if ((error = git_config_open_ondisk(&mods, path.ptr)) < 0)
|
1994
|
+
goto cleanup;
|
1984
1995
|
|
1985
|
-
if (mods)
|
1986
|
-
|
1996
|
+
if ((error = git_config_snapshot(snap, mods)) < 0)
|
1997
|
+
goto cleanup;
|
1998
|
+
|
1999
|
+
error = 0;
|
2000
|
+
|
2001
|
+
cleanup:
|
2002
|
+
if (mods)
|
1987
2003
|
git_config_free(mods);
|
1988
|
-
|
2004
|
+
git_buf_free(&path);
|
1989
2005
|
|
1990
|
-
return
|
2006
|
+
return error;
|
1991
2007
|
}
|
1992
2008
|
|
1993
2009
|
static git_config_backend *open_gitmodules(
|
@@ -510,8 +510,14 @@ static int local_counting(int stage, unsigned int current, unsigned int total, v
|
|
510
510
|
static int foreach_reference_cb(git_reference *reference, void *payload)
|
511
511
|
{
|
512
512
|
git_revwalk *walk = (git_revwalk *)payload;
|
513
|
+
int error;
|
514
|
+
|
515
|
+
if (git_reference_type(reference) != GIT_REF_OID) {
|
516
|
+
git_reference_free(reference);
|
517
|
+
return 0;
|
518
|
+
}
|
513
519
|
|
514
|
-
|
520
|
+
error = git_revwalk_hide(walk, git_reference_target(reference));
|
515
521
|
/* The reference is in the local repository, so the target may not
|
516
522
|
* exist on the remote. It also may not be a commit. */
|
517
523
|
if (error == GIT_ENOTFOUND || error == GITERR_INVALID) {
|
@@ -212,6 +212,7 @@ static void ssh_stream_free(git_smart_subtransport_stream *stream)
|
|
212
212
|
}
|
213
213
|
|
214
214
|
if (s->session) {
|
215
|
+
libssh2_session_disconnect(s->session, "closing transport");
|
215
216
|
libssh2_session_free(s->session);
|
216
217
|
s->session = NULL;
|
217
218
|
}
|
@@ -489,7 +490,7 @@ static int _git_ssh_session_create(
|
|
489
490
|
}
|
490
491
|
|
491
492
|
do {
|
492
|
-
rc =
|
493
|
+
rc = libssh2_session_handshake(s, socket->s);
|
493
494
|
} while (LIBSSH2_ERROR_EAGAIN == rc || LIBSSH2_ERROR_TIMEOUT == rc);
|
494
495
|
|
495
496
|
if (rc != LIBSSH2_ERROR_NONE) {
|
data/vendor/libgit2/src/util.c
CHANGED
@@ -131,7 +131,7 @@ static int open_worktree_dir(git_worktree **out, const char *parent, const char
|
|
131
131
|
goto out;
|
132
132
|
}
|
133
133
|
|
134
|
-
if ((wt = git__calloc(1, sizeof(
|
134
|
+
if ((wt = git__calloc(1, sizeof(*wt))) == NULL) {
|
135
135
|
error = -1;
|
136
136
|
goto out;
|
137
137
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rugged
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.27.
|
4
|
+
version: 0.27.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Chacon
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-06-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake-compiler
|
@@ -128,6 +128,7 @@ files:
|
|
128
128
|
- vendor/libgit2/cmake/Modules/FindGSSAPI.cmake
|
129
129
|
- vendor/libgit2/cmake/Modules/FindHTTP_Parser.cmake
|
130
130
|
- vendor/libgit2/cmake/Modules/FindIconv.cmake
|
131
|
+
- vendor/libgit2/cmake/Modules/FindPkgLibraries.cmake
|
131
132
|
- vendor/libgit2/cmake/Modules/FindSecurity.cmake
|
132
133
|
- vendor/libgit2/cmake/Modules/FindStatNsec.cmake
|
133
134
|
- vendor/libgit2/cmake/Modules/IdeSplitSources.cmake
|