rugged 0.27.7 → 0.27.10
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/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +99 -51
- data/vendor/libgit2/COPYING +28 -0
- data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +29 -0
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +96 -0
- data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
- data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
- data/vendor/libgit2/cmake/Modules/FindIconv.cmake +11 -6
- data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
- data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
- data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
- data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
- data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
- data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
- data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
- data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
- data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
- data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
- data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
- data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
- data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
- data/vendor/libgit2/deps/pcre/COPYING +5 -0
- data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
- data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
- data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
- data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
- data/vendor/libgit2/deps/pcre/config.h.in +57 -0
- data/vendor/libgit2/deps/pcre/pcre.h +641 -0
- data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
- data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
- data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
- data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
- data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
- data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
- data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
- data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
- data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
- data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
- data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
- data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
- data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
- data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
- data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
- data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
- data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
- data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
- data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
- data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
- data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
- data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
- data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
- data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
- data/vendor/libgit2/deps/pcre/ucp.h +224 -0
- data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
- data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
- data/vendor/libgit2/deps/zlib/COPYING +27 -0
- data/vendor/libgit2/deps/zlib/adler32.c +0 -7
- data/vendor/libgit2/deps/zlib/crc32.c +0 -7
- data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
- data/vendor/libgit2/include/git2/apply.h +149 -0
- data/vendor/libgit2/include/git2/attr.h +20 -13
- data/vendor/libgit2/include/git2/blame.h +4 -4
- data/vendor/libgit2/include/git2/blob.h +44 -12
- data/vendor/libgit2/include/git2/buffer.h +20 -26
- data/vendor/libgit2/include/git2/cert.h +135 -0
- data/vendor/libgit2/include/git2/checkout.h +53 -21
- data/vendor/libgit2/include/git2/cherrypick.h +3 -3
- data/vendor/libgit2/include/git2/clone.h +5 -5
- data/vendor/libgit2/include/git2/commit.h +25 -3
- data/vendor/libgit2/include/git2/common.h +35 -10
- data/vendor/libgit2/include/git2/config.h +29 -19
- data/vendor/libgit2/include/git2/cred.h +308 -0
- data/vendor/libgit2/include/git2/deprecated.h +493 -0
- data/vendor/libgit2/include/git2/describe.h +4 -4
- data/vendor/libgit2/include/git2/diff.h +177 -135
- data/vendor/libgit2/include/git2/errors.h +53 -46
- data/vendor/libgit2/include/git2/filter.h +8 -0
- data/vendor/libgit2/include/git2/index.h +74 -52
- data/vendor/libgit2/include/git2/indexer.h +76 -6
- data/vendor/libgit2/include/git2/merge.h +25 -10
- data/vendor/libgit2/include/git2/net.h +0 -5
- data/vendor/libgit2/include/git2/notes.h +1 -1
- data/vendor/libgit2/include/git2/object.h +17 -29
- data/vendor/libgit2/include/git2/odb.h +12 -11
- data/vendor/libgit2/include/git2/odb_backend.h +10 -9
- data/vendor/libgit2/include/git2/oid.h +2 -2
- data/vendor/libgit2/include/git2/pack.h +14 -3
- data/vendor/libgit2/include/git2/proxy.h +5 -3
- data/vendor/libgit2/include/git2/rebase.h +46 -2
- data/vendor/libgit2/include/git2/refs.h +34 -16
- data/vendor/libgit2/include/git2/remote.h +111 -14
- data/vendor/libgit2/include/git2/repository.h +69 -34
- data/vendor/libgit2/include/git2/revert.h +1 -1
- data/vendor/libgit2/include/git2/revwalk.h +7 -7
- data/vendor/libgit2/include/git2/signature.h +2 -2
- data/vendor/libgit2/include/git2/stash.h +5 -5
- data/vendor/libgit2/include/git2/status.h +26 -17
- data/vendor/libgit2/include/git2/submodule.h +23 -6
- data/vendor/libgit2/include/git2/sys/alloc.h +18 -18
- data/vendor/libgit2/include/git2/sys/commit.h +1 -1
- data/vendor/libgit2/include/git2/sys/config.h +13 -13
- data/vendor/libgit2/include/git2/sys/cred.h +90 -0
- data/vendor/libgit2/include/git2/sys/filter.h +6 -6
- data/vendor/libgit2/include/git2/sys/merge.h +3 -3
- data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
- data/vendor/libgit2/include/git2/sys/path.h +14 -5
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
- data/vendor/libgit2/include/git2/sys/repository.h +5 -1
- data/vendor/libgit2/include/git2/sys/stream.h +92 -12
- data/vendor/libgit2/include/git2/sys/transport.h +129 -83
- data/vendor/libgit2/include/git2/tag.h +13 -4
- data/vendor/libgit2/include/git2/trace.h +2 -2
- data/vendor/libgit2/include/git2/transport.h +11 -311
- data/vendor/libgit2/include/git2/tree.h +4 -4
- data/vendor/libgit2/include/git2/types.h +25 -106
- data/vendor/libgit2/include/git2/version.h +3 -3
- data/vendor/libgit2/include/git2/worktree.h +5 -5
- data/vendor/libgit2/include/git2.h +4 -0
- data/vendor/libgit2/src/CMakeLists.txt +104 -235
- data/vendor/libgit2/src/alloc.c +14 -18
- data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +7 -8
- data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
- data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
- data/vendor/libgit2/src/annotated_commit.c +18 -11
- data/vendor/libgit2/src/apply.c +535 -28
- data/vendor/libgit2/src/apply.h +3 -1
- data/vendor/libgit2/src/array.h +2 -2
- data/vendor/libgit2/src/attr.c +77 -71
- data/vendor/libgit2/src/attr_file.c +203 -117
- data/vendor/libgit2/src/attr_file.h +9 -9
- data/vendor/libgit2/src/attrcache.c +49 -51
- data/vendor/libgit2/src/attrcache.h +2 -1
- data/vendor/libgit2/src/blame.c +38 -18
- data/vendor/libgit2/src/blame.h +1 -1
- data/vendor/libgit2/src/blame_git.c +29 -15
- data/vendor/libgit2/src/blob.c +123 -37
- data/vendor/libgit2/src/blob.h +19 -2
- data/vendor/libgit2/src/branch.c +47 -23
- data/vendor/libgit2/src/buf_text.c +7 -6
- data/vendor/libgit2/src/buffer.c +60 -53
- data/vendor/libgit2/src/cache.c +38 -45
- data/vendor/libgit2/src/cache.h +3 -3
- data/vendor/libgit2/src/cc-compat.h +20 -3
- data/vendor/libgit2/src/checkout.c +77 -67
- data/vendor/libgit2/src/cherrypick.c +12 -6
- data/vendor/libgit2/src/clone.c +36 -14
- data/vendor/libgit2/src/clone.h +4 -0
- data/vendor/libgit2/src/commit.c +103 -48
- data/vendor/libgit2/src/commit.h +7 -0
- data/vendor/libgit2/src/commit_list.c +36 -78
- data/vendor/libgit2/src/commit_list.h +2 -2
- data/vendor/libgit2/src/common.h +24 -90
- data/vendor/libgit2/src/config.c +203 -176
- data/vendor/libgit2/src/config.h +8 -20
- data/vendor/libgit2/src/config_backend.h +96 -0
- data/vendor/libgit2/src/config_cache.c +41 -35
- data/vendor/libgit2/src/config_entries.c +229 -0
- data/vendor/libgit2/src/config_entries.h +24 -0
- data/vendor/libgit2/src/config_file.c +422 -680
- data/vendor/libgit2/src/config_mem.c +220 -0
- data/vendor/libgit2/src/config_parse.c +96 -68
- data/vendor/libgit2/src/config_parse.h +15 -14
- data/vendor/libgit2/src/config_snapshot.c +206 -0
- data/vendor/libgit2/src/crlf.c +219 -196
- data/vendor/libgit2/src/delta.c +25 -18
- data/vendor/libgit2/src/describe.c +42 -41
- data/vendor/libgit2/src/diff.c +52 -67
- data/vendor/libgit2/src/diff.h +2 -1
- data/vendor/libgit2/src/diff_driver.c +44 -46
- data/vendor/libgit2/src/diff_file.c +16 -14
- data/vendor/libgit2/src/diff_file.h +1 -1
- data/vendor/libgit2/src/diff_generate.c +158 -103
- data/vendor/libgit2/src/diff_generate.h +3 -3
- data/vendor/libgit2/src/diff_parse.c +4 -4
- data/vendor/libgit2/src/diff_print.c +34 -22
- data/vendor/libgit2/src/diff_stats.c +22 -7
- data/vendor/libgit2/src/diff_tform.c +18 -16
- data/vendor/libgit2/src/diff_xdiff.c +3 -3
- data/vendor/libgit2/src/errors.c +51 -39
- data/vendor/libgit2/src/errors.h +81 -0
- data/vendor/libgit2/src/features.h.in +9 -3
- data/vendor/libgit2/src/fetch.c +8 -3
- data/vendor/libgit2/src/fetchhead.c +12 -12
- data/vendor/libgit2/src/filebuf.c +28 -32
- data/vendor/libgit2/src/filebuf.h +2 -2
- data/vendor/libgit2/src/filter.c +47 -33
- data/vendor/libgit2/src/filter.h +0 -10
- data/vendor/libgit2/src/{fileops.c → futils.c} +70 -63
- data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
- data/vendor/libgit2/src/global.c +35 -55
- data/vendor/libgit2/src/global.h +0 -2
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
- data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
- data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
- data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
- data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
- data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
- data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
- data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -7
- data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
- data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
- data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
- data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
- data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
- data/vendor/libgit2/src/hash/sha1.h +38 -0
- data/vendor/libgit2/src/hash.c +61 -0
- data/vendor/libgit2/src/hash.h +20 -21
- data/vendor/libgit2/src/hashsig.c +5 -5
- data/vendor/libgit2/src/idxmap.c +107 -61
- data/vendor/libgit2/src/idxmap.h +153 -31
- data/vendor/libgit2/src/ignore.c +38 -42
- data/vendor/libgit2/src/index.c +264 -199
- data/vendor/libgit2/src/index.h +7 -1
- data/vendor/libgit2/src/indexer.c +338 -167
- data/vendor/libgit2/src/integer.h +71 -26
- data/vendor/libgit2/src/iterator.c +134 -62
- data/vendor/libgit2/src/iterator.h +15 -0
- data/vendor/libgit2/src/mailmap.c +8 -8
- data/vendor/libgit2/src/map.h +1 -1
- data/vendor/libgit2/src/merge.c +137 -93
- data/vendor/libgit2/src/merge_driver.c +11 -11
- data/vendor/libgit2/src/merge_file.c +2 -2
- data/vendor/libgit2/src/mwindow.c +24 -29
- data/vendor/libgit2/src/mwindow.h +4 -4
- data/vendor/libgit2/src/net.c +184 -0
- data/vendor/libgit2/src/net.h +36 -0
- data/vendor/libgit2/src/netops.c +55 -156
- data/vendor/libgit2/src/netops.h +3 -23
- data/vendor/libgit2/src/notes.c +14 -9
- data/vendor/libgit2/src/object.c +120 -69
- data/vendor/libgit2/src/object.h +22 -9
- data/vendor/libgit2/src/object_api.c +8 -8
- data/vendor/libgit2/src/odb.c +111 -88
- data/vendor/libgit2/src/odb.h +8 -7
- data/vendor/libgit2/src/odb_loose.c +58 -47
- data/vendor/libgit2/src/odb_mempack.c +21 -34
- data/vendor/libgit2/src/odb_pack.c +17 -13
- data/vendor/libgit2/src/offmap.c +53 -35
- data/vendor/libgit2/src/offmap.h +108 -21
- data/vendor/libgit2/src/oid.c +12 -7
- data/vendor/libgit2/src/oidmap.c +49 -47
- data/vendor/libgit2/src/oidmap.h +101 -24
- data/vendor/libgit2/src/pack-objects.c +87 -86
- data/vendor/libgit2/src/pack-objects.h +2 -8
- data/vendor/libgit2/src/pack.c +94 -96
- data/vendor/libgit2/src/pack.h +16 -18
- data/vendor/libgit2/src/parse.c +17 -4
- data/vendor/libgit2/src/parse.h +3 -3
- data/vendor/libgit2/src/patch.c +3 -3
- data/vendor/libgit2/src/patch_generate.c +18 -18
- data/vendor/libgit2/src/patch_parse.c +147 -79
- data/vendor/libgit2/src/path.c +207 -62
- data/vendor/libgit2/src/path.h +14 -0
- data/vendor/libgit2/src/pathspec.c +18 -18
- data/vendor/libgit2/src/pool.c +26 -22
- data/vendor/libgit2/src/pool.h +7 -7
- data/vendor/libgit2/src/posix.c +10 -10
- data/vendor/libgit2/src/posix.h +12 -1
- data/vendor/libgit2/src/proxy.c +8 -3
- data/vendor/libgit2/src/push.c +35 -29
- data/vendor/libgit2/src/push.h +2 -1
- data/vendor/libgit2/src/reader.c +265 -0
- data/vendor/libgit2/src/reader.h +107 -0
- data/vendor/libgit2/src/rebase.c +97 -38
- data/vendor/libgit2/src/refdb.c +15 -3
- data/vendor/libgit2/src/refdb_fs.c +318 -222
- data/vendor/libgit2/src/reflog.c +13 -15
- data/vendor/libgit2/src/refs.c +122 -89
- data/vendor/libgit2/src/refs.h +5 -3
- data/vendor/libgit2/src/refspec.c +27 -33
- data/vendor/libgit2/src/regexp.c +221 -0
- data/vendor/libgit2/src/regexp.h +97 -0
- data/vendor/libgit2/src/remote.c +229 -178
- data/vendor/libgit2/src/remote.h +11 -2
- data/vendor/libgit2/src/repository.c +227 -172
- data/vendor/libgit2/src/repository.h +52 -40
- data/vendor/libgit2/src/reset.c +7 -7
- data/vendor/libgit2/src/revert.c +11 -6
- data/vendor/libgit2/src/revparse.c +46 -46
- data/vendor/libgit2/src/revwalk.c +89 -54
- data/vendor/libgit2/src/revwalk.h +20 -0
- data/vendor/libgit2/src/settings.c +22 -9
- data/vendor/libgit2/src/signature.c +15 -13
- data/vendor/libgit2/src/sortedcache.c +22 -36
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +56 -76
- data/vendor/libgit2/src/status.c +27 -21
- data/vendor/libgit2/src/stream.h +17 -2
- data/vendor/libgit2/src/streams/mbedtls.c +100 -80
- data/vendor/libgit2/src/streams/mbedtls.h +5 -2
- data/vendor/libgit2/src/streams/openssl.c +93 -81
- data/vendor/libgit2/src/streams/openssl.h +5 -2
- data/vendor/libgit2/src/streams/registry.c +118 -0
- data/vendor/libgit2/src/streams/registry.h +19 -0
- data/vendor/libgit2/src/streams/socket.c +55 -30
- data/vendor/libgit2/src/streams/stransport.c +57 -32
- data/vendor/libgit2/src/streams/stransport.h +5 -0
- data/vendor/libgit2/src/streams/tls.c +48 -20
- data/vendor/libgit2/src/streams/tls.h +12 -4
- data/vendor/libgit2/src/strmap.c +47 -74
- data/vendor/libgit2/src/strmap.h +108 -33
- data/vendor/libgit2/src/submodule.c +190 -169
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +25 -15
- data/vendor/libgit2/src/tag.c +39 -26
- data/vendor/libgit2/src/tag.h +2 -1
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +2 -2
- data/vendor/libgit2/src/trailer.c +46 -32
- data/vendor/libgit2/src/transaction.c +30 -29
- data/vendor/libgit2/src/transport.c +3 -3
- data/vendor/libgit2/src/transports/auth.c +14 -10
- data/vendor/libgit2/src/transports/auth.h +10 -3
- data/vendor/libgit2/src/transports/auth_negotiate.c +31 -16
- data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
- data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
- data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
- data/vendor/libgit2/src/transports/cred.c +24 -24
- data/vendor/libgit2/src/transports/git.c +25 -30
- data/vendor/libgit2/src/transports/http.c +871 -335
- data/vendor/libgit2/src/transports/http.h +2 -0
- data/vendor/libgit2/src/transports/local.c +28 -28
- data/vendor/libgit2/src/transports/smart.c +64 -46
- data/vendor/libgit2/src/transports/smart.h +5 -6
- data/vendor/libgit2/src/transports/smart_pkt.c +162 -151
- data/vendor/libgit2/src/transports/smart_protocol.c +64 -94
- data/vendor/libgit2/src/transports/ssh.c +76 -65
- data/vendor/libgit2/src/transports/winhttp.c +328 -319
- data/vendor/libgit2/src/tree-cache.c +21 -14
- data/vendor/libgit2/src/tree.c +119 -112
- data/vendor/libgit2/src/tree.h +1 -0
- data/vendor/libgit2/src/unix/map.c +3 -3
- data/vendor/libgit2/src/unix/posix.h +1 -11
- data/vendor/libgit2/src/userdiff.h +3 -1
- data/vendor/libgit2/src/util.c +154 -93
- data/vendor/libgit2/src/util.h +19 -23
- data/vendor/libgit2/src/vector.c +15 -10
- data/vendor/libgit2/src/wildmatch.c +320 -0
- data/vendor/libgit2/src/wildmatch.h +23 -0
- data/vendor/libgit2/src/win32/dir.c +3 -3
- data/vendor/libgit2/src/win32/findfile.c +1 -1
- data/vendor/libgit2/src/win32/map.c +9 -11
- data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
- data/vendor/libgit2/src/win32/path_w32.c +113 -9
- data/vendor/libgit2/src/win32/path_w32.h +18 -29
- data/vendor/libgit2/src/win32/posix.h +1 -4
- data/vendor/libgit2/src/win32/posix_w32.c +69 -44
- data/vendor/libgit2/src/win32/precompiled.h +0 -2
- data/vendor/libgit2/src/win32/thread.c +5 -10
- data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
- data/vendor/libgit2/src/win32/w32_common.h +39 -0
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -95
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
- data/vendor/libgit2/src/win32/w32_stack.c +6 -11
- data/vendor/libgit2/src/win32/w32_stack.h +3 -3
- data/vendor/libgit2/src/win32/w32_util.c +27 -64
- data/vendor/libgit2/src/win32/w32_util.h +5 -49
- data/vendor/libgit2/src/worktree.c +44 -30
- data/vendor/libgit2/src/xdiff/xdiffi.c +5 -5
- data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
- data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
- data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
- data/vendor/libgit2/src/zstream.c +4 -4
- metadata +115 -38
- data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
- data/vendor/libgit2/deps/regex/config.h +0 -7
- data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
- data/vendor/libgit2/deps/regex/regex.c +0 -92
- data/vendor/libgit2/deps/regex/regex.h +0 -582
- data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
- data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
- data/vendor/libgit2/deps/regex/regexec.c +0 -4369
- data/vendor/libgit2/include/git2/inttypes.h +0 -309
- data/vendor/libgit2/include/git2/sys/time.h +0 -31
- data/vendor/libgit2/libgit2.pc.in +0 -13
- data/vendor/libgit2/src/config_file.h +0 -73
- data/vendor/libgit2/src/fnmatch.c +0 -248
- data/vendor/libgit2/src/fnmatch.h +0 -48
- data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
- data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
- data/vendor/libgit2/src/streams/curl.c +0 -385
- data/vendor/libgit2/src/streams/curl.h +0 -17
- /data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
|
@@ -20,19 +20,19 @@ int git_sortedcache_new(
|
|
|
20
20
|
|
|
21
21
|
pathlen = path ? strlen(path) : 0;
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, sizeof(git_sortedcache), pathlen);
|
|
24
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, alloclen, 1);
|
|
25
25
|
sc = git__calloc(1, alloclen);
|
|
26
|
-
|
|
26
|
+
GIT_ERROR_CHECK_ALLOC(sc);
|
|
27
27
|
|
|
28
28
|
git_pool_init(&sc->pool, 1);
|
|
29
29
|
|
|
30
30
|
if (git_vector_init(&sc->items, 4, item_cmp) < 0 ||
|
|
31
|
-
|
|
31
|
+
git_strmap_new(&sc->map) < 0)
|
|
32
32
|
goto fail;
|
|
33
33
|
|
|
34
34
|
if (git_rwlock_init(&sc->lock)) {
|
|
35
|
-
|
|
35
|
+
git_error_set(GIT_ERROR_OS, "failed to initialize lock");
|
|
36
36
|
goto fail;
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -167,7 +167,7 @@ int git_sortedcache_wlock(git_sortedcache *sc)
|
|
|
167
167
|
GIT_UNUSED(sc); /* prevent warning when compiled w/o threads */
|
|
168
168
|
|
|
169
169
|
if (git_rwlock_wrlock(&sc->lock) < 0) {
|
|
170
|
-
|
|
170
|
+
git_error_set(GIT_ERROR_OS, "unable to acquire write lock on cache");
|
|
171
171
|
return -1;
|
|
172
172
|
}
|
|
173
173
|
return 0;
|
|
@@ -186,7 +186,7 @@ int git_sortedcache_rlock(git_sortedcache *sc)
|
|
|
186
186
|
GIT_UNUSED(sc); /* prevent warning when compiled w/o threads */
|
|
187
187
|
|
|
188
188
|
if (git_rwlock_rdlock(&sc->lock) < 0) {
|
|
189
|
-
|
|
189
|
+
git_error_set(GIT_ERROR_OS, "unable to acquire read lock on cache");
|
|
190
190
|
return -1;
|
|
191
191
|
}
|
|
192
192
|
return 0;
|
|
@@ -219,14 +219,14 @@ int git_sortedcache_lockandload(git_sortedcache *sc, git_buf *buf)
|
|
|
219
219
|
}
|
|
220
220
|
|
|
221
221
|
if (p_fstat(fd, &st) < 0) {
|
|
222
|
-
|
|
222
|
+
git_error_set(GIT_ERROR_OS, "failed to stat file");
|
|
223
223
|
error = -1;
|
|
224
224
|
(void)p_close(fd);
|
|
225
225
|
goto unlock;
|
|
226
226
|
}
|
|
227
227
|
|
|
228
228
|
if (!git__is_sizet(st.st_size)) {
|
|
229
|
-
|
|
229
|
+
git_error_set(GIT_ERROR_INVALID, "unable to load file larger than size_t");
|
|
230
230
|
error = -1;
|
|
231
231
|
(void)p_close(fd);
|
|
232
232
|
goto unlock;
|
|
@@ -270,24 +270,20 @@ int git_sortedcache_clear(git_sortedcache *sc, bool wlock)
|
|
|
270
270
|
/* find and/or insert item, returning pointer to item data */
|
|
271
271
|
int git_sortedcache_upsert(void **out, git_sortedcache *sc, const char *key)
|
|
272
272
|
{
|
|
273
|
-
int error = 0;
|
|
274
|
-
khiter_t pos;
|
|
275
|
-
void *item;
|
|
276
273
|
size_t keylen, itemlen;
|
|
274
|
+
int error = 0;
|
|
277
275
|
char *item_key;
|
|
276
|
+
void *item;
|
|
278
277
|
|
|
279
|
-
|
|
280
|
-
if (git_strmap_valid_index(sc->map, pos)) {
|
|
281
|
-
item = git_strmap_value_at(sc->map, pos);
|
|
278
|
+
if ((item = git_strmap_get(sc->map, key)) != NULL)
|
|
282
279
|
goto done;
|
|
283
|
-
}
|
|
284
280
|
|
|
285
281
|
keylen = strlen(key);
|
|
286
282
|
itemlen = sc->item_path_offset + keylen + 1;
|
|
287
283
|
itemlen = (itemlen + 7) & ~7;
|
|
288
284
|
|
|
289
|
-
if ((item = git_pool_mallocz(&sc->pool,
|
|
290
|
-
/* don't use
|
|
285
|
+
if ((item = git_pool_mallocz(&sc->pool, itemlen)) == NULL) {
|
|
286
|
+
/* don't use GIT_ERROR_CHECK_ALLOC b/c of lock */
|
|
291
287
|
error = -1;
|
|
292
288
|
goto done;
|
|
293
289
|
}
|
|
@@ -299,17 +295,11 @@ int git_sortedcache_upsert(void **out, git_sortedcache *sc, const char *key)
|
|
|
299
295
|
item_key = ((char *)item) + sc->item_path_offset;
|
|
300
296
|
memcpy(item_key, key, keylen);
|
|
301
297
|
|
|
302
|
-
|
|
303
|
-
if (error < 0)
|
|
298
|
+
if ((error = git_strmap_set(sc->map, item_key, item)) < 0)
|
|
304
299
|
goto done;
|
|
305
300
|
|
|
306
|
-
if (
|
|
307
|
-
|
|
308
|
-
git_strmap_set_value_at(sc->map, pos, item);
|
|
309
|
-
|
|
310
|
-
error = git_vector_insert(&sc->items, item);
|
|
311
|
-
if (error < 0)
|
|
312
|
-
git_strmap_delete_at(sc->map, pos);
|
|
301
|
+
if ((error = git_vector_insert(&sc->items, item)) < 0)
|
|
302
|
+
git_strmap_delete(sc->map, item_key);
|
|
313
303
|
|
|
314
304
|
done:
|
|
315
305
|
if (out)
|
|
@@ -320,10 +310,7 @@ done:
|
|
|
320
310
|
/* lookup item by key */
|
|
321
311
|
void *git_sortedcache_lookup(const git_sortedcache *sc, const char *key)
|
|
322
312
|
{
|
|
323
|
-
|
|
324
|
-
if (git_strmap_valid_index(sc->map, pos))
|
|
325
|
-
return git_strmap_value_at(sc->map, pos);
|
|
326
|
-
return NULL;
|
|
313
|
+
return git_strmap_get(sc->map, key);
|
|
327
314
|
}
|
|
328
315
|
|
|
329
316
|
/* find out how many items are in the cache */
|
|
@@ -371,21 +358,20 @@ int git_sortedcache_lookup_index(
|
|
|
371
358
|
int git_sortedcache_remove(git_sortedcache *sc, size_t pos)
|
|
372
359
|
{
|
|
373
360
|
char *item;
|
|
374
|
-
khiter_t mappos;
|
|
375
361
|
|
|
376
|
-
/*
|
|
362
|
+
/*
|
|
363
|
+
* Because of pool allocation, this can't actually remove the item,
|
|
377
364
|
* but we can remove it from the items vector and the hash table.
|
|
378
365
|
*/
|
|
379
366
|
|
|
380
367
|
if ((item = git_vector_get(&sc->items, pos)) == NULL) {
|
|
381
|
-
|
|
368
|
+
git_error_set(GIT_ERROR_INVALID, "removing item out of range");
|
|
382
369
|
return GIT_ENOTFOUND;
|
|
383
370
|
}
|
|
384
371
|
|
|
385
372
|
(void)git_vector_remove(&sc->items, pos);
|
|
386
373
|
|
|
387
|
-
|
|
388
|
-
git_strmap_delete_at(sc->map, mappos);
|
|
374
|
+
git_strmap_delete(sc->map, item + sc->item_path_offset);
|
|
389
375
|
|
|
390
376
|
if (sc->free_item)
|
|
391
377
|
sc->free_item(sc->free_item_payload, item);
|
data/vendor/libgit2/src/stash.c
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
|
|
30
30
|
static int create_error(int error, const char *msg)
|
|
31
31
|
{
|
|
32
|
-
|
|
32
|
+
git_error_set(GIT_ERROR_STASH, "cannot stash changes - %s", msg);
|
|
33
33
|
return error;
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -48,7 +48,7 @@ static int append_abbreviated_oid(git_buf *out, const git_oid *b_commit)
|
|
|
48
48
|
char *formatted_oid;
|
|
49
49
|
|
|
50
50
|
formatted_oid = git_oid_allocfmt(b_commit);
|
|
51
|
-
|
|
51
|
+
GIT_ERROR_CHECK_ALLOC(formatted_oid);
|
|
52
52
|
|
|
53
53
|
git_buf_put(out, formatted_oid, 7);
|
|
54
54
|
git__free(formatted_oid);
|
|
@@ -59,7 +59,7 @@ static int append_abbreviated_oid(git_buf *out, const git_oid *b_commit)
|
|
|
59
59
|
static int append_commit_description(git_buf *out, git_commit* commit)
|
|
60
60
|
{
|
|
61
61
|
const char *summary = git_commit_summary(commit);
|
|
62
|
-
|
|
62
|
+
GIT_ERROR_CHECK_ALLOC(summary);
|
|
63
63
|
|
|
64
64
|
if (append_abbreviated_oid(out, git_commit_id(commit)) < 0)
|
|
65
65
|
return -1;
|
|
@@ -233,8 +233,8 @@ static int stash_update_index_from_diff(
|
|
|
233
233
|
|
|
234
234
|
default:
|
|
235
235
|
/* Unimplemented */
|
|
236
|
-
|
|
237
|
-
|
|
236
|
+
git_error_set(
|
|
237
|
+
GIT_ERROR_INVALID,
|
|
238
238
|
"cannot update index. Unimplemented status (%d)",
|
|
239
239
|
delta->status);
|
|
240
240
|
return -1;
|
|
@@ -398,28 +398,23 @@ static int commit_worktree(
|
|
|
398
398
|
git_commit *b_commit,
|
|
399
399
|
git_commit *u_commit)
|
|
400
400
|
{
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
int ignorecase;
|
|
401
|
+
const git_commit *parents[] = { NULL, NULL, NULL };
|
|
402
|
+
git_index *i_index = NULL, *r_index = NULL;
|
|
403
|
+
git_tree *w_tree = NULL;
|
|
404
|
+
int error = 0, ignorecase;
|
|
406
405
|
|
|
407
406
|
parents[0] = b_commit;
|
|
408
407
|
parents[1] = i_commit;
|
|
409
408
|
parents[2] = u_commit;
|
|
410
409
|
|
|
411
|
-
if ((error =
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
(error = git_repository__cvar(&ignorecase, repo, GIT_CVAR_IGNORECASE)) < 0)
|
|
410
|
+
if ((error = git_repository_index(&r_index, repo) < 0) ||
|
|
411
|
+
(error = git_index_new(&i_index)) < 0 ||
|
|
412
|
+
(error = git_index__fill(i_index, &r_index->entries) < 0) ||
|
|
413
|
+
(error = git_repository__configmap_lookup(&ignorecase, repo, GIT_CONFIGMAP_IGNORECASE)) < 0)
|
|
416
414
|
goto cleanup;
|
|
417
415
|
|
|
418
416
|
git_index__set_ignore_case(i_index, ignorecase);
|
|
419
417
|
|
|
420
|
-
if ((error = git_index_read_tree(i_index, i_tree)) < 0)
|
|
421
|
-
goto cleanup;
|
|
422
|
-
|
|
423
418
|
if ((error = build_workdir_tree(&w_tree, repo, i_index, b_commit)) < 0)
|
|
424
419
|
goto cleanup;
|
|
425
420
|
|
|
@@ -436,42 +431,39 @@ static int commit_worktree(
|
|
|
436
431
|
parents);
|
|
437
432
|
|
|
438
433
|
cleanup:
|
|
439
|
-
git_tree_free(i_tree);
|
|
440
434
|
git_tree_free(w_tree);
|
|
441
435
|
git_index_free(i_index);
|
|
436
|
+
git_index_free(r_index);
|
|
442
437
|
return error;
|
|
443
438
|
}
|
|
444
439
|
|
|
445
|
-
static int prepare_worktree_commit_message(
|
|
446
|
-
git_buf* msg,
|
|
447
|
-
const char *user_message)
|
|
440
|
+
static int prepare_worktree_commit_message(git_buf *out, const char *user_message)
|
|
448
441
|
{
|
|
449
442
|
git_buf buf = GIT_BUF_INIT;
|
|
450
|
-
int error;
|
|
451
|
-
|
|
452
|
-
if ((error = git_buf_set(&buf, git_buf_cstr(msg), git_buf_len(msg))) < 0)
|
|
453
|
-
return error;
|
|
454
|
-
|
|
455
|
-
git_buf_clear(msg);
|
|
443
|
+
int error = 0;
|
|
456
444
|
|
|
457
|
-
if (!user_message)
|
|
458
|
-
git_buf_printf(
|
|
459
|
-
else {
|
|
445
|
+
if (!user_message) {
|
|
446
|
+
git_buf_printf(&buf, "WIP on %s", git_buf_cstr(out));
|
|
447
|
+
} else {
|
|
460
448
|
const char *colon;
|
|
461
449
|
|
|
462
|
-
if ((colon = strchr(git_buf_cstr(
|
|
450
|
+
if ((colon = strchr(git_buf_cstr(out), ':')) == NULL)
|
|
463
451
|
goto cleanup;
|
|
464
452
|
|
|
465
|
-
git_buf_puts(
|
|
466
|
-
git_buf_put(
|
|
467
|
-
git_buf_printf(
|
|
453
|
+
git_buf_puts(&buf, "On ");
|
|
454
|
+
git_buf_put(&buf, git_buf_cstr(out), colon - out->ptr);
|
|
455
|
+
git_buf_printf(&buf, ": %s\n", user_message);
|
|
468
456
|
}
|
|
469
457
|
|
|
470
|
-
|
|
458
|
+
if (git_buf_oom(&buf)) {
|
|
459
|
+
error = -1;
|
|
460
|
+
goto cleanup;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
git_buf_swap(out, &buf);
|
|
471
464
|
|
|
472
465
|
cleanup:
|
|
473
466
|
git_buf_dispose(&buf);
|
|
474
|
-
|
|
475
467
|
return error;
|
|
476
468
|
}
|
|
477
469
|
|
|
@@ -502,10 +494,7 @@ static int is_dirty_cb(const char *path, unsigned int status, void *payload)
|
|
|
502
494
|
return GIT_PASSTHROUGH;
|
|
503
495
|
}
|
|
504
496
|
|
|
505
|
-
static int ensure_there_are_changes_to_stash(
|
|
506
|
-
git_repository *repo,
|
|
507
|
-
bool include_untracked_files,
|
|
508
|
-
bool include_ignored_files)
|
|
497
|
+
static int ensure_there_are_changes_to_stash(git_repository *repo, uint32_t flags)
|
|
509
498
|
{
|
|
510
499
|
int error;
|
|
511
500
|
git_status_options opts = GIT_STATUS_OPTIONS_INIT;
|
|
@@ -513,11 +502,11 @@ static int ensure_there_are_changes_to_stash(
|
|
|
513
502
|
opts.show = GIT_STATUS_SHOW_INDEX_AND_WORKDIR;
|
|
514
503
|
opts.flags = GIT_STATUS_OPT_EXCLUDE_SUBMODULES;
|
|
515
504
|
|
|
516
|
-
if (
|
|
505
|
+
if (flags & GIT_STASH_INCLUDE_UNTRACKED)
|
|
517
506
|
opts.flags |= GIT_STATUS_OPT_INCLUDE_UNTRACKED |
|
|
518
507
|
GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS;
|
|
519
508
|
|
|
520
|
-
if (
|
|
509
|
+
if (flags & GIT_STASH_INCLUDE_IGNORED)
|
|
521
510
|
opts.flags |= GIT_STATUS_OPT_INCLUDE_IGNORED |
|
|
522
511
|
GIT_STATUS_OPT_RECURSE_IGNORED_DIRS;
|
|
523
512
|
|
|
@@ -532,20 +521,14 @@ static int ensure_there_are_changes_to_stash(
|
|
|
532
521
|
return error;
|
|
533
522
|
}
|
|
534
523
|
|
|
535
|
-
static int reset_index_and_workdir(
|
|
536
|
-
git_repository *repo,
|
|
537
|
-
git_commit *commit,
|
|
538
|
-
bool remove_untracked,
|
|
539
|
-
bool remove_ignored)
|
|
524
|
+
static int reset_index_and_workdir(git_repository *repo, git_commit *commit, uint32_t flags)
|
|
540
525
|
{
|
|
541
526
|
git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT;
|
|
542
527
|
|
|
543
528
|
opts.checkout_strategy = GIT_CHECKOUT_FORCE;
|
|
544
|
-
|
|
545
|
-
if (remove_untracked)
|
|
529
|
+
if (flags & GIT_STASH_INCLUDE_UNTRACKED)
|
|
546
530
|
opts.checkout_strategy |= GIT_CHECKOUT_REMOVE_UNTRACKED;
|
|
547
|
-
|
|
548
|
-
if (remove_ignored)
|
|
531
|
+
if (flags & GIT_STASH_INCLUDE_IGNORED)
|
|
549
532
|
opts.checkout_strategy |= GIT_CHECKOUT_REMOVE_IGNORED;
|
|
550
533
|
|
|
551
534
|
return git_checkout_tree(repo, (git_object *)commit, &opts);
|
|
@@ -571,31 +554,26 @@ int git_stash_save(
|
|
|
571
554
|
if ((error = retrieve_base_commit_and_message(&b_commit, &msg, repo)) < 0)
|
|
572
555
|
goto cleanup;
|
|
573
556
|
|
|
574
|
-
if ((error = ensure_there_are_changes_to_stash(
|
|
575
|
-
repo,
|
|
576
|
-
(flags & GIT_STASH_INCLUDE_UNTRACKED) != 0,
|
|
577
|
-
(flags & GIT_STASH_INCLUDE_IGNORED) != 0)) < 0)
|
|
557
|
+
if ((error = ensure_there_are_changes_to_stash(repo, flags)) < 0)
|
|
578
558
|
goto cleanup;
|
|
579
559
|
|
|
580
560
|
if ((error = git_repository_index(&index, repo)) < 0)
|
|
581
561
|
goto cleanup;
|
|
582
562
|
|
|
583
|
-
if ((error = commit_index(
|
|
584
|
-
|
|
563
|
+
if ((error = commit_index(&i_commit, repo, index, stasher,
|
|
564
|
+
git_buf_cstr(&msg), b_commit)) < 0)
|
|
585
565
|
goto cleanup;
|
|
586
566
|
|
|
587
567
|
if ((flags & (GIT_STASH_INCLUDE_UNTRACKED | GIT_STASH_INCLUDE_IGNORED)) &&
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
i_commit, flags)) < 0)
|
|
568
|
+
(error = commit_untracked(&u_commit, repo, stasher,
|
|
569
|
+
git_buf_cstr(&msg), i_commit, flags)) < 0)
|
|
591
570
|
goto cleanup;
|
|
592
571
|
|
|
593
572
|
if ((error = prepare_worktree_commit_message(&msg, message)) < 0)
|
|
594
573
|
goto cleanup;
|
|
595
574
|
|
|
596
|
-
if ((error = commit_worktree(
|
|
597
|
-
|
|
598
|
-
i_commit, b_commit, u_commit)) < 0)
|
|
575
|
+
if ((error = commit_worktree(out, repo, stasher, git_buf_cstr(&msg),
|
|
576
|
+
i_commit, b_commit, u_commit)) < 0)
|
|
599
577
|
goto cleanup;
|
|
600
578
|
|
|
601
579
|
git_buf_rtrim(&msg);
|
|
@@ -603,11 +581,8 @@ int git_stash_save(
|
|
|
603
581
|
if ((error = update_reflog(out, repo, git_buf_cstr(&msg))) < 0)
|
|
604
582
|
goto cleanup;
|
|
605
583
|
|
|
606
|
-
if ((error = reset_index_and_workdir(
|
|
607
|
-
|
|
608
|
-
((flags & GIT_STASH_KEEP_INDEX) != 0) ? i_commit : b_commit,
|
|
609
|
-
(flags & GIT_STASH_INCLUDE_UNTRACKED) != 0,
|
|
610
|
-
(flags & GIT_STASH_INCLUDE_IGNORED) != 0)) < 0)
|
|
584
|
+
if ((error = reset_index_and_workdir(repo, (flags & GIT_STASH_KEEP_INDEX) ? i_commit : b_commit,
|
|
585
|
+
flags)) < 0)
|
|
611
586
|
goto cleanup;
|
|
612
587
|
|
|
613
588
|
cleanup:
|
|
@@ -641,7 +616,7 @@ static int retrieve_stash_commit(
|
|
|
641
616
|
max = git_reflog_entrycount(reflog);
|
|
642
617
|
if (!max || index > max - 1) {
|
|
643
618
|
error = GIT_ENOTFOUND;
|
|
644
|
-
|
|
619
|
+
git_error_set(GIT_ERROR_STASH, "no stashed state at position %" PRIuZ, index);
|
|
645
620
|
goto cleanup;
|
|
646
621
|
}
|
|
647
622
|
|
|
@@ -794,13 +769,18 @@ static void normalize_apply_options(
|
|
|
794
769
|
opts->checkout_options.their_label = "Stashed changes";
|
|
795
770
|
}
|
|
796
771
|
|
|
797
|
-
int
|
|
772
|
+
int git_stash_apply_options_init(git_stash_apply_options *opts, unsigned int version)
|
|
798
773
|
{
|
|
799
774
|
GIT_INIT_STRUCTURE_FROM_TEMPLATE(
|
|
800
775
|
opts, version, git_stash_apply_options, GIT_STASH_APPLY_OPTIONS_INIT);
|
|
801
776
|
return 0;
|
|
802
777
|
}
|
|
803
778
|
|
|
779
|
+
int git_stash_apply_init_options(git_stash_apply_options *opts, unsigned int version)
|
|
780
|
+
{
|
|
781
|
+
return git_stash_apply_options_init(opts, version);
|
|
782
|
+
}
|
|
783
|
+
|
|
804
784
|
#define NOTIFY_PROGRESS(opts, progress_type) \
|
|
805
785
|
do { \
|
|
806
786
|
if ((opts).progress_cb && \
|
|
@@ -822,7 +802,7 @@ static int ensure_clean_index(git_repository *repo, git_index *index)
|
|
|
822
802
|
goto done;
|
|
823
803
|
|
|
824
804
|
if (git_diff_num_deltas(index_diff) > 0) {
|
|
825
|
-
|
|
805
|
+
git_error_set(GIT_ERROR_STASH, "%" PRIuZ " uncommitted changes exist in the index",
|
|
826
806
|
git_diff_num_deltas(index_diff));
|
|
827
807
|
error = GIT_EUNCOMMITTED;
|
|
828
808
|
}
|
|
@@ -894,7 +874,7 @@ int git_stash_apply(
|
|
|
894
874
|
git_index *untracked_index = NULL;
|
|
895
875
|
int error;
|
|
896
876
|
|
|
897
|
-
|
|
877
|
+
GIT_ERROR_CHECK_VERSION(given_opts, GIT_STASH_APPLY_OPTIONS_VERSION, "git_stash_apply_options");
|
|
898
878
|
|
|
899
879
|
normalize_apply_options(&opts, given_opts);
|
|
900
880
|
checkout_strategy = opts.checkout_options.checkout_strategy;
|
|
@@ -1027,7 +1007,7 @@ int git_stash_foreach(
|
|
|
1027
1007
|
|
|
1028
1008
|
error = git_reference_lookup(&stash, repo, GIT_REFS_STASH_FILE);
|
|
1029
1009
|
if (error == GIT_ENOTFOUND) {
|
|
1030
|
-
|
|
1010
|
+
git_error_clear();
|
|
1031
1011
|
return 0;
|
|
1032
1012
|
}
|
|
1033
1013
|
if (error < 0)
|
|
@@ -1046,7 +1026,7 @@ int git_stash_foreach(
|
|
|
1046
1026
|
payload);
|
|
1047
1027
|
|
|
1048
1028
|
if (error) {
|
|
1049
|
-
|
|
1029
|
+
git_error_set_after_callback(error);
|
|
1050
1030
|
break;
|
|
1051
1031
|
}
|
|
1052
1032
|
}
|
|
@@ -1083,7 +1063,7 @@ int git_stash_drop(
|
|
|
1083
1063
|
|
|
1084
1064
|
if (!max || index > max - 1) {
|
|
1085
1065
|
error = GIT_ENOTFOUND;
|
|
1086
|
-
|
|
1066
|
+
git_error_set(GIT_ERROR_STASH, "no stashed state at position %" PRIuZ, index);
|
|
1087
1067
|
goto cleanup;
|
|
1088
1068
|
}
|
|
1089
1069
|
|
data/vendor/libgit2/src/status.c
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
#include "status.h"
|
|
9
9
|
|
|
10
10
|
#include "git2.h"
|
|
11
|
-
#include "
|
|
11
|
+
#include "futils.h"
|
|
12
12
|
#include "hash.h"
|
|
13
13
|
#include "vector.h"
|
|
14
14
|
#include "tree.h"
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
#include "repository.h"
|
|
17
17
|
#include "ignore.h"
|
|
18
18
|
#include "index.h"
|
|
19
|
+
#include "wildmatch.h"
|
|
19
20
|
|
|
20
21
|
#include "git2/diff.h"
|
|
21
22
|
#include "diff.h"
|
|
@@ -85,14 +86,14 @@ static unsigned int workdir_delta2status(
|
|
|
85
86
|
/* if OIDs don't match, we might need to calculate them now to
|
|
86
87
|
* discern between RENAMED vs RENAMED+MODIFED
|
|
87
88
|
*/
|
|
88
|
-
if (
|
|
89
|
+
if (git_oid_is_zero(&idx2wd->old_file.id) &&
|
|
89
90
|
diff->old_src == GIT_ITERATOR_TYPE_WORKDIR &&
|
|
90
91
|
!git_diff__oid_for_file(
|
|
91
92
|
&idx2wd->old_file.id, diff, idx2wd->old_file.path,
|
|
92
93
|
idx2wd->old_file.mode, idx2wd->old_file.size))
|
|
93
94
|
idx2wd->old_file.flags |= GIT_DIFF_FLAG_VALID_ID;
|
|
94
95
|
|
|
95
|
-
if (
|
|
96
|
+
if (git_oid_is_zero(&idx2wd->new_file.id) &&
|
|
96
97
|
diff->new_src == GIT_ITERATOR_TYPE_WORKDIR &&
|
|
97
98
|
!git_diff__oid_for_file(
|
|
98
99
|
&idx2wd->new_file.id, diff, idx2wd->new_file.path,
|
|
@@ -174,7 +175,7 @@ static int status_collect(
|
|
|
174
175
|
return 0;
|
|
175
176
|
|
|
176
177
|
status_entry = git__malloc(sizeof(git_status_entry));
|
|
177
|
-
|
|
178
|
+
GIT_ERROR_CHECK_ALLOC(status_entry);
|
|
178
179
|
|
|
179
180
|
status_entry->status = status_compute(status, head2idx, idx2wd);
|
|
180
181
|
status_entry->head_to_index = head2idx;
|
|
@@ -240,16 +241,16 @@ static int status_validate_options(const git_status_options *opts)
|
|
|
240
241
|
if (!opts)
|
|
241
242
|
return 0;
|
|
242
243
|
|
|
243
|
-
|
|
244
|
+
GIT_ERROR_CHECK_VERSION(opts, GIT_STATUS_OPTIONS_VERSION, "git_status_options");
|
|
244
245
|
|
|
245
246
|
if (opts->show > GIT_STATUS_SHOW_WORKDIR_ONLY) {
|
|
246
|
-
|
|
247
|
+
git_error_set(GIT_ERROR_INVALID, "unknown status 'show' option");
|
|
247
248
|
return -1;
|
|
248
249
|
}
|
|
249
250
|
|
|
250
251
|
if ((opts->flags & GIT_STATUS_OPT_NO_REFRESH) != 0 &&
|
|
251
252
|
(opts->flags & GIT_STATUS_OPT_UPDATE_INDEX) != 0) {
|
|
252
|
-
|
|
253
|
+
git_error_set(GIT_ERROR_INVALID, "updating index from status "
|
|
253
254
|
"is not allowed when index refresh is disabled");
|
|
254
255
|
return -1;
|
|
255
256
|
}
|
|
@@ -280,7 +281,7 @@ int git_status_list_new(
|
|
|
280
281
|
if ((error = git_repository__ensure_not_bare(repo, "status")) < 0 ||
|
|
281
282
|
(error = git_repository_index(&index, repo)) < 0)
|
|
282
283
|
return error;
|
|
283
|
-
|
|
284
|
+
|
|
284
285
|
if (opts != NULL && opts->baseline != NULL) {
|
|
285
286
|
head = opts->baseline;
|
|
286
287
|
} else {
|
|
@@ -288,17 +289,17 @@ int git_status_list_new(
|
|
|
288
289
|
if ((error = git_repository_head_tree(&head, repo)) < 0) {
|
|
289
290
|
if (error != GIT_ENOTFOUND && error != GIT_EUNBORNBRANCH)
|
|
290
291
|
goto done;
|
|
291
|
-
|
|
292
|
+
git_error_clear();
|
|
292
293
|
}
|
|
293
294
|
}
|
|
294
295
|
|
|
295
296
|
/* refresh index from disk unless prevented */
|
|
296
297
|
if ((flags & GIT_STATUS_OPT_NO_REFRESH) == 0 &&
|
|
297
298
|
git_index_read_safely(index) < 0)
|
|
298
|
-
|
|
299
|
+
git_error_clear();
|
|
299
300
|
|
|
300
301
|
status = git_status_list_alloc(index);
|
|
301
|
-
|
|
302
|
+
GIT_ERROR_CHECK_ALLOC(status);
|
|
302
303
|
|
|
303
304
|
if (opts) {
|
|
304
305
|
memcpy(&status->opts, opts, sizeof(git_status_options));
|
|
@@ -437,7 +438,7 @@ int git_status_foreach_ext(
|
|
|
437
438
|
status_entry->index_to_workdir->old_file.path;
|
|
438
439
|
|
|
439
440
|
if ((error = cb(path, status_entry->status, payload)) != 0) {
|
|
440
|
-
|
|
441
|
+
git_error_set_after_callback(error);
|
|
441
442
|
break;
|
|
442
443
|
}
|
|
443
444
|
}
|
|
@@ -456,7 +457,7 @@ struct status_file_info {
|
|
|
456
457
|
char *expected;
|
|
457
458
|
unsigned int count;
|
|
458
459
|
unsigned int status;
|
|
459
|
-
int
|
|
460
|
+
int wildmatch_flags;
|
|
460
461
|
int ambiguous;
|
|
461
462
|
};
|
|
462
463
|
|
|
@@ -468,14 +469,14 @@ static int get_one_status(const char *path, unsigned int status, void *data)
|
|
|
468
469
|
sfi->count++;
|
|
469
470
|
sfi->status = status;
|
|
470
471
|
|
|
471
|
-
strcomp = (sfi->
|
|
472
|
+
strcomp = (sfi->wildmatch_flags & WM_CASEFOLD) ? git__strcasecmp : git__strcmp;
|
|
472
473
|
|
|
473
474
|
if (sfi->count > 1 ||
|
|
474
475
|
(strcomp(sfi->expected, path) != 0 &&
|
|
475
|
-
|
|
476
|
+
wildmatch(sfi->expected, path, sfi->wildmatch_flags) != 0))
|
|
476
477
|
{
|
|
477
478
|
sfi->ambiguous = true;
|
|
478
|
-
return GIT_EAMBIGUOUS; /*
|
|
479
|
+
return GIT_EAMBIGUOUS; /* git_error_set will be done by caller */
|
|
479
480
|
}
|
|
480
481
|
|
|
481
482
|
return 0;
|
|
@@ -499,7 +500,7 @@ int git_status_file(
|
|
|
499
500
|
if ((sfi.expected = git__strdup(path)) == NULL)
|
|
500
501
|
return -1;
|
|
501
502
|
if (index->ignore_case)
|
|
502
|
-
sfi.
|
|
503
|
+
sfi.wildmatch_flags = WM_CASEFOLD;
|
|
503
504
|
|
|
504
505
|
opts.show = GIT_STATUS_SHOW_INDEX_AND_WORKDIR;
|
|
505
506
|
opts.flags = GIT_STATUS_OPT_INCLUDE_IGNORED |
|
|
@@ -514,13 +515,13 @@ int git_status_file(
|
|
|
514
515
|
error = git_status_foreach_ext(repo, &opts, get_one_status, &sfi);
|
|
515
516
|
|
|
516
517
|
if (error < 0 && sfi.ambiguous) {
|
|
517
|
-
|
|
518
|
+
git_error_set(GIT_ERROR_INVALID,
|
|
518
519
|
"ambiguous path '%s' given to git_status_file", sfi.expected);
|
|
519
520
|
error = GIT_EAMBIGUOUS;
|
|
520
521
|
}
|
|
521
522
|
|
|
522
523
|
if (!error && !sfi.count) {
|
|
523
|
-
|
|
524
|
+
git_error_set(GIT_ERROR_INVALID,
|
|
524
525
|
"attempt to get status of nonexistent file '%s'", path);
|
|
525
526
|
error = GIT_ENOTFOUND;
|
|
526
527
|
}
|
|
@@ -540,18 +541,23 @@ int git_status_should_ignore(
|
|
|
540
541
|
return git_ignore_path_is_ignored(ignored, repo, path);
|
|
541
542
|
}
|
|
542
543
|
|
|
543
|
-
int
|
|
544
|
+
int git_status_options_init(git_status_options *opts, unsigned int version)
|
|
544
545
|
{
|
|
545
546
|
GIT_INIT_STRUCTURE_FROM_TEMPLATE(
|
|
546
547
|
opts, version, git_status_options, GIT_STATUS_OPTIONS_INIT);
|
|
547
548
|
return 0;
|
|
548
549
|
}
|
|
549
550
|
|
|
551
|
+
int git_status_init_options(git_status_options *opts, unsigned int version)
|
|
552
|
+
{
|
|
553
|
+
return git_status_options_init(opts, version);
|
|
554
|
+
}
|
|
555
|
+
|
|
550
556
|
int git_status_list_get_perfdata(
|
|
551
557
|
git_diff_perfdata *out, const git_status_list *status)
|
|
552
558
|
{
|
|
553
559
|
assert(out);
|
|
554
|
-
|
|
560
|
+
GIT_ERROR_CHECK_VERSION(out, GIT_DIFF_PERFDATA_VERSION, "git_diff_perfdata");
|
|
555
561
|
|
|
556
562
|
out->stat_calls = 0;
|
|
557
563
|
out->oid_calculations = 0;
|
data/vendor/libgit2/src/stream.h
CHANGED
|
@@ -23,7 +23,7 @@ GIT_INLINE(int) git_stream_is_encrypted(git_stream *st)
|
|
|
23
23
|
GIT_INLINE(int) git_stream_certificate(git_cert **out, git_stream *st)
|
|
24
24
|
{
|
|
25
25
|
if (!st->encrypted) {
|
|
26
|
-
|
|
26
|
+
git_error_set(GIT_ERROR_INVALID, "an unencrypted stream does not have a certificate");
|
|
27
27
|
return -1;
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -38,7 +38,7 @@ GIT_INLINE(int) git_stream_supports_proxy(git_stream *st)
|
|
|
38
38
|
GIT_INLINE(int) git_stream_set_proxy(git_stream *st, const git_proxy_options *proxy_opts)
|
|
39
39
|
{
|
|
40
40
|
if (!st->proxy_support) {
|
|
41
|
-
|
|
41
|
+
git_error_set(GIT_ERROR_INVALID, "proxy not supported on this stream");
|
|
42
42
|
return -1;
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -55,6 +55,21 @@ GIT_INLINE(ssize_t) git_stream_write(git_stream *st, const char *data, size_t le
|
|
|
55
55
|
return st->write(st, data, len, flags);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
GIT_INLINE(int) git_stream__write_full(git_stream *st, const char *data, size_t len, int flags)
|
|
59
|
+
{
|
|
60
|
+
size_t total_written = 0;
|
|
61
|
+
|
|
62
|
+
while (total_written < len) {
|
|
63
|
+
ssize_t written = git_stream_write(st, data + total_written, len - total_written, flags);
|
|
64
|
+
if (written <= 0)
|
|
65
|
+
return -1;
|
|
66
|
+
|
|
67
|
+
total_written += written;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return 0;
|
|
71
|
+
}
|
|
72
|
+
|
|
58
73
|
GIT_INLINE(int) git_stream_close(git_stream *st)
|
|
59
74
|
{
|
|
60
75
|
return st->close(st);
|