rugged 0.27.1 → 0.27.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/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
|