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
         |