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
|
@@ -37,34 +37,34 @@ extern bool git_repository__fsync_gitdir;
|
|
|
37
37
|
|
|
38
38
|
/** Cvar cache identifiers */
|
|
39
39
|
typedef enum {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
40
|
+
GIT_CONFIGMAP_AUTO_CRLF = 0, /* core.autocrlf */
|
|
41
|
+
GIT_CONFIGMAP_EOL, /* core.eol */
|
|
42
|
+
GIT_CONFIGMAP_SYMLINKS, /* core.symlinks */
|
|
43
|
+
GIT_CONFIGMAP_IGNORECASE, /* core.ignorecase */
|
|
44
|
+
GIT_CONFIGMAP_FILEMODE, /* core.filemode */
|
|
45
|
+
GIT_CONFIGMAP_IGNORESTAT, /* core.ignorestat */
|
|
46
|
+
GIT_CONFIGMAP_TRUSTCTIME, /* core.trustctime */
|
|
47
|
+
GIT_CONFIGMAP_ABBREV, /* core.abbrev */
|
|
48
|
+
GIT_CONFIGMAP_PRECOMPOSE, /* core.precomposeunicode */
|
|
49
|
+
GIT_CONFIGMAP_SAFE_CRLF, /* core.safecrlf */
|
|
50
|
+
GIT_CONFIGMAP_LOGALLREFUPDATES, /* core.logallrefupdates */
|
|
51
|
+
GIT_CONFIGMAP_PROTECTHFS, /* core.protectHFS */
|
|
52
|
+
GIT_CONFIGMAP_PROTECTNTFS, /* core.protectNTFS */
|
|
53
|
+
GIT_CONFIGMAP_FSYNCOBJECTFILES, /* core.fsyncObjectFiles */
|
|
54
|
+
GIT_CONFIGMAP_CACHE_MAX
|
|
55
|
+
} git_configmap_item;
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
58
|
+
* Configuration map value enumerations
|
|
59
59
|
*
|
|
60
|
-
* These are the values that are actually stored in the
|
|
61
|
-
* of their string equivalents. These values are internal and
|
|
62
|
-
* make sure that none of them is set to `-1`, since that is
|
|
63
|
-
* identifier for "not cached"
|
|
60
|
+
* These are the values that are actually stored in the configmap cache,
|
|
61
|
+
* instead of their string equivalents. These values are internal and
|
|
62
|
+
* symbolic; make sure that none of them is set to `-1`, since that is
|
|
63
|
+
* the unique identifier for "not cached"
|
|
64
64
|
*/
|
|
65
65
|
typedef enum {
|
|
66
66
|
/* The value hasn't been loaded from the cache yet */
|
|
67
|
-
|
|
67
|
+
GIT_CONFIGMAP_NOT_CACHED = -1,
|
|
68
68
|
|
|
69
69
|
/* core.safecrlf: false, 'fail', 'warn' */
|
|
70
70
|
GIT_SAFE_CRLF_FALSE = 0,
|
|
@@ -89,31 +89,34 @@ typedef enum {
|
|
|
89
89
|
GIT_EOL_DEFAULT = GIT_EOL_NATIVE,
|
|
90
90
|
|
|
91
91
|
/* core.symlinks: bool */
|
|
92
|
-
GIT_SYMLINKS_DEFAULT =
|
|
92
|
+
GIT_SYMLINKS_DEFAULT = GIT_CONFIGMAP_TRUE,
|
|
93
93
|
/* core.ignorecase */
|
|
94
|
-
GIT_IGNORECASE_DEFAULT =
|
|
94
|
+
GIT_IGNORECASE_DEFAULT = GIT_CONFIGMAP_FALSE,
|
|
95
95
|
/* core.filemode */
|
|
96
|
-
GIT_FILEMODE_DEFAULT =
|
|
96
|
+
GIT_FILEMODE_DEFAULT = GIT_CONFIGMAP_TRUE,
|
|
97
97
|
/* core.ignorestat */
|
|
98
|
-
GIT_IGNORESTAT_DEFAULT =
|
|
98
|
+
GIT_IGNORESTAT_DEFAULT = GIT_CONFIGMAP_FALSE,
|
|
99
99
|
/* core.trustctime */
|
|
100
|
-
GIT_TRUSTCTIME_DEFAULT =
|
|
100
|
+
GIT_TRUSTCTIME_DEFAULT = GIT_CONFIGMAP_TRUE,
|
|
101
101
|
/* core.abbrev */
|
|
102
102
|
GIT_ABBREV_DEFAULT = 7,
|
|
103
103
|
/* core.precomposeunicode */
|
|
104
|
-
GIT_PRECOMPOSE_DEFAULT =
|
|
104
|
+
GIT_PRECOMPOSE_DEFAULT = GIT_CONFIGMAP_FALSE,
|
|
105
105
|
/* core.safecrlf */
|
|
106
|
-
GIT_SAFE_CRLF_DEFAULT =
|
|
106
|
+
GIT_SAFE_CRLF_DEFAULT = GIT_CONFIGMAP_FALSE,
|
|
107
107
|
/* core.logallrefupdates */
|
|
108
|
+
GIT_LOGALLREFUPDATES_FALSE = GIT_CONFIGMAP_FALSE,
|
|
109
|
+
GIT_LOGALLREFUPDATES_TRUE = GIT_CONFIGMAP_TRUE,
|
|
108
110
|
GIT_LOGALLREFUPDATES_UNSET = 2,
|
|
111
|
+
GIT_LOGALLREFUPDATES_ALWAYS = 3,
|
|
109
112
|
GIT_LOGALLREFUPDATES_DEFAULT = GIT_LOGALLREFUPDATES_UNSET,
|
|
110
113
|
/* core.protectHFS */
|
|
111
|
-
GIT_PROTECTHFS_DEFAULT =
|
|
114
|
+
GIT_PROTECTHFS_DEFAULT = GIT_CONFIGMAP_FALSE,
|
|
112
115
|
/* core.protectNTFS */
|
|
113
|
-
GIT_PROTECTNTFS_DEFAULT =
|
|
116
|
+
GIT_PROTECTNTFS_DEFAULT = GIT_CONFIGMAP_TRUE,
|
|
114
117
|
/* core.fsyncObjectFiles */
|
|
115
|
-
GIT_FSYNCOBJECTFILES_DEFAULT =
|
|
116
|
-
}
|
|
118
|
+
GIT_FSYNCOBJECTFILES_DEFAULT = GIT_CONFIGMAP_FALSE,
|
|
119
|
+
} git_configmap_value;
|
|
117
120
|
|
|
118
121
|
/* internal repository init flags */
|
|
119
122
|
enum {
|
|
@@ -151,7 +154,7 @@ struct git_repository {
|
|
|
151
154
|
|
|
152
155
|
git_atomic attr_session_key;
|
|
153
156
|
|
|
154
|
-
|
|
157
|
+
git_configmap_value configmap_cache[GIT_CONFIGMAP_CACHE_MAX];
|
|
155
158
|
git_strmap *submodule_cache;
|
|
156
159
|
};
|
|
157
160
|
|
|
@@ -173,6 +176,13 @@ int git_repository_create_head(const char *git_dir, const char *ref_name);
|
|
|
173
176
|
*/
|
|
174
177
|
typedef int (*git_repository_foreach_head_cb)(git_repository *repo, const char *path, void *payload);
|
|
175
178
|
|
|
179
|
+
enum {
|
|
180
|
+
/* Skip enumeration of the main repository HEAD */
|
|
181
|
+
GIT_REPOSITORY_FOREACH_HEAD_SKIP_REPO = (1u << 0),
|
|
182
|
+
/* Skip enumeration of worktree HEADs */
|
|
183
|
+
GIT_REPOSITORY_FOREACH_HEAD_SKIP_WORKTREES = (1u << 1),
|
|
184
|
+
};
|
|
185
|
+
|
|
176
186
|
/*
|
|
177
187
|
* Iterate over repository and all worktree HEADs.
|
|
178
188
|
*
|
|
@@ -181,7 +191,9 @@ typedef int (*git_repository_foreach_head_cb)(git_repository *repo, const char *
|
|
|
181
191
|
* executed with the given payload. The return value equals the
|
|
182
192
|
* return value of the last executed callback function.
|
|
183
193
|
*/
|
|
184
|
-
int git_repository_foreach_head(git_repository *repo,
|
|
194
|
+
int git_repository_foreach_head(git_repository *repo,
|
|
195
|
+
git_repository_foreach_head_cb cb,
|
|
196
|
+
int flags, void *payload);
|
|
185
197
|
|
|
186
198
|
/*
|
|
187
199
|
* Weak pointers to repository internals.
|
|
@@ -196,13 +208,13 @@ int git_repository_refdb__weakptr(git_refdb **out, git_repository *repo);
|
|
|
196
208
|
int git_repository_index__weakptr(git_index **out, git_repository *repo);
|
|
197
209
|
|
|
198
210
|
/*
|
|
199
|
-
*
|
|
211
|
+
* Configuration map cache
|
|
200
212
|
*
|
|
201
213
|
* Efficient access to the most used config variables of a repository.
|
|
202
214
|
* The cache is cleared every time the config backend is replaced.
|
|
203
215
|
*/
|
|
204
|
-
int
|
|
205
|
-
void
|
|
216
|
+
int git_repository__configmap_lookup(int *out, git_repository *repo, git_configmap_item item);
|
|
217
|
+
void git_repository__configmap_lookup_cache_clear(git_repository *repo);
|
|
206
218
|
|
|
207
219
|
GIT_INLINE(int) git_repository__ensure_not_bare(
|
|
208
220
|
git_repository *repo,
|
|
@@ -211,8 +223,8 @@ GIT_INLINE(int) git_repository__ensure_not_bare(
|
|
|
211
223
|
if (!git_repository_is_bare(repo))
|
|
212
224
|
return 0;
|
|
213
225
|
|
|
214
|
-
|
|
215
|
-
|
|
226
|
+
git_error_set(
|
|
227
|
+
GIT_ERROR_REPOSITORY,
|
|
216
228
|
"cannot %s. This operation is not allowed against bare repositories.",
|
|
217
229
|
operation_name);
|
|
218
230
|
|
data/vendor/libgit2/src/reset.c
CHANGED
|
@@ -42,12 +42,12 @@ int git_reset_default(
|
|
|
42
42
|
|
|
43
43
|
if (target) {
|
|
44
44
|
if (git_object_owner(target) != repo) {
|
|
45
|
-
|
|
45
|
+
git_error_set(GIT_ERROR_OBJECT,
|
|
46
46
|
"%s_default - The given target does not belong to this repository.", ERROR_MSG);
|
|
47
47
|
return -1;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
if ((error = git_object_peel(&commit, target,
|
|
50
|
+
if ((error = git_object_peel(&commit, target, GIT_OBJECT_COMMIT)) < 0 ||
|
|
51
51
|
(error = git_commit_tree(&tree, (git_commit *)commit)) < 0)
|
|
52
52
|
goto cleanup;
|
|
53
53
|
}
|
|
@@ -70,7 +70,7 @@ int git_reset_default(
|
|
|
70
70
|
error = git_index_conflict_remove(index, delta->old_file.path);
|
|
71
71
|
if (error < 0) {
|
|
72
72
|
if (delta->status == GIT_DELTA_ADDED && error == GIT_ENOTFOUND)
|
|
73
|
-
|
|
73
|
+
git_error_clear();
|
|
74
74
|
else
|
|
75
75
|
goto cleanup;
|
|
76
76
|
}
|
|
@@ -119,7 +119,7 @@ static int reset(
|
|
|
119
119
|
opts = *checkout_opts;
|
|
120
120
|
|
|
121
121
|
if (git_object_owner(target) != repo) {
|
|
122
|
-
|
|
122
|
+
git_error_set(GIT_ERROR_OBJECT,
|
|
123
123
|
"%s - The given target does not belong to this repository.", ERROR_MSG);
|
|
124
124
|
return -1;
|
|
125
125
|
}
|
|
@@ -129,7 +129,7 @@ static int reset(
|
|
|
129
129
|
reset_type == GIT_RESET_MIXED ? "reset mixed" : "reset hard")) < 0)
|
|
130
130
|
return error;
|
|
131
131
|
|
|
132
|
-
if ((error = git_object_peel(&commit, target,
|
|
132
|
+
if ((error = git_object_peel(&commit, target, GIT_OBJECT_COMMIT)) < 0 ||
|
|
133
133
|
(error = git_repository_index(&index, repo)) < 0 ||
|
|
134
134
|
(error = git_commit_tree(&tree, (git_commit *)commit)) < 0)
|
|
135
135
|
goto cleanup;
|
|
@@ -138,7 +138,7 @@ static int reset(
|
|
|
138
138
|
(git_repository_state(repo) == GIT_REPOSITORY_STATE_MERGE ||
|
|
139
139
|
git_index_has_conflicts(index)))
|
|
140
140
|
{
|
|
141
|
-
|
|
141
|
+
git_error_set(GIT_ERROR_OBJECT, "%s (soft) in the middle of a merge", ERROR_MSG);
|
|
142
142
|
error = GIT_EUNMERGED;
|
|
143
143
|
goto cleanup;
|
|
144
144
|
}
|
|
@@ -167,7 +167,7 @@ static int reset(
|
|
|
167
167
|
goto cleanup;
|
|
168
168
|
|
|
169
169
|
if ((error = git_repository_state_cleanup(repo)) < 0) {
|
|
170
|
-
|
|
170
|
+
git_error_set(GIT_ERROR_INDEX, "%s - failed to clean up merge data", ERROR_MSG);
|
|
171
171
|
goto cleanup;
|
|
172
172
|
}
|
|
173
173
|
}
|
data/vendor/libgit2/src/revert.c
CHANGED
|
@@ -29,7 +29,7 @@ static int write_revert_head(
|
|
|
29
29
|
int error = 0;
|
|
30
30
|
|
|
31
31
|
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_REVERT_HEAD_FILE)) >= 0 &&
|
|
32
|
-
(error = git_filebuf_open(&file, file_path.ptr,
|
|
32
|
+
(error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_REVERT_FILE_MODE)) >= 0 &&
|
|
33
33
|
(error = git_filebuf_printf(&file, "%s\n", commit_oidstr)) >= 0)
|
|
34
34
|
error = git_filebuf_commit(&file);
|
|
35
35
|
|
|
@@ -51,7 +51,7 @@ static int write_merge_msg(
|
|
|
51
51
|
int error = 0;
|
|
52
52
|
|
|
53
53
|
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_MSG_FILE)) < 0 ||
|
|
54
|
-
(error = git_filebuf_open(&file, file_path.ptr,
|
|
54
|
+
(error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_REVERT_FILE_MODE)) < 0 ||
|
|
55
55
|
(error = git_filebuf_printf(&file, "Revert \"%s\"\n\nThis reverts commit %s.\n",
|
|
56
56
|
commit_msgline, commit_oidstr)) < 0)
|
|
57
57
|
goto cleanup;
|
|
@@ -112,7 +112,7 @@ static int revert_seterr(git_commit *commit, const char *fmt)
|
|
|
112
112
|
git_oid_fmt(commit_oidstr, git_commit_id(commit));
|
|
113
113
|
commit_oidstr[GIT_OID_HEXSZ] = '\0';
|
|
114
114
|
|
|
115
|
-
|
|
115
|
+
git_error_set(GIT_ERROR_REVERT, fmt, commit_oidstr);
|
|
116
116
|
|
|
117
117
|
return -1;
|
|
118
118
|
}
|
|
@@ -182,7 +182,7 @@ int git_revert(
|
|
|
182
182
|
|
|
183
183
|
assert(repo && commit);
|
|
184
184
|
|
|
185
|
-
|
|
185
|
+
GIT_ERROR_CHECK_VERSION(given_opts, GIT_REVERT_OPTIONS_VERSION, "git_revert_options");
|
|
186
186
|
|
|
187
187
|
if ((error = git_repository__ensure_not_bare(repo, "revert")) < 0)
|
|
188
188
|
return error;
|
|
@@ -201,7 +201,7 @@ int git_revert(
|
|
|
201
201
|
(error = write_revert_head(repo, commit_oidstr)) < 0 ||
|
|
202
202
|
(error = write_merge_msg(repo, commit_oidstr, commit_msg)) < 0 ||
|
|
203
203
|
(error = git_repository_head(&our_ref, repo)) < 0 ||
|
|
204
|
-
(error = git_reference_peel((git_object **)&our_commit, our_ref,
|
|
204
|
+
(error = git_reference_peel((git_object **)&our_commit, our_ref, GIT_OBJECT_COMMIT)) < 0 ||
|
|
205
205
|
(error = git_revert_commit(&index, repo, commit, our_commit, opts.mainline, &opts.merge_opts)) < 0 ||
|
|
206
206
|
(error = git_merge__check_result(repo, index)) < 0 ||
|
|
207
207
|
(error = git_merge__append_conflicts_to_merge_msg(repo, index)) < 0 ||
|
|
@@ -224,9 +224,14 @@ done:
|
|
|
224
224
|
return error;
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
-
int
|
|
227
|
+
int git_revert_options_init(git_revert_options *opts, unsigned int version)
|
|
228
228
|
{
|
|
229
229
|
GIT_INIT_STRUCTURE_FROM_TEMPLATE(
|
|
230
230
|
opts, version, git_revert_options, GIT_REVERT_OPTIONS_INIT);
|
|
231
231
|
return 0;
|
|
232
232
|
}
|
|
233
|
+
|
|
234
|
+
int git_revert_init_options(git_revert_options *opts, unsigned int version)
|
|
235
|
+
{
|
|
236
|
+
return git_revert_options_init(opts, version);
|
|
237
|
+
}
|
|
@@ -7,11 +7,10 @@
|
|
|
7
7
|
|
|
8
8
|
#include "common.h"
|
|
9
9
|
|
|
10
|
-
#include <assert.h>
|
|
11
|
-
|
|
12
10
|
#include "buffer.h"
|
|
13
11
|
#include "tree.h"
|
|
14
12
|
#include "refdb.h"
|
|
13
|
+
#include "regexp.h"
|
|
15
14
|
|
|
16
15
|
#include "git2.h"
|
|
17
16
|
|
|
@@ -22,7 +21,7 @@ static int maybe_sha_or_abbrev(git_object** out, git_repository *repo, const cha
|
|
|
22
21
|
if (git_oid_fromstrn(&oid, spec, speclen) < 0)
|
|
23
22
|
return GIT_ENOTFOUND;
|
|
24
23
|
|
|
25
|
-
return git_object_lookup_prefix(out, repo, &oid, speclen,
|
|
24
|
+
return git_object_lookup_prefix(out, repo, &oid, speclen, GIT_OBJECT_ANY);
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
static int maybe_sha(git_object** out, git_repository *repo, const char *spec)
|
|
@@ -42,22 +41,20 @@ static int maybe_abbrev(git_object** out, git_repository *repo, const char *spec
|
|
|
42
41
|
return maybe_sha_or_abbrev(out, repo, spec, speclen);
|
|
43
42
|
}
|
|
44
43
|
|
|
45
|
-
static int build_regex(
|
|
44
|
+
static int build_regex(git_regexp *regex, const char *pattern)
|
|
46
45
|
{
|
|
47
46
|
int error;
|
|
48
47
|
|
|
49
48
|
if (*pattern == '\0') {
|
|
50
|
-
|
|
49
|
+
git_error_set(GIT_ERROR_REGEX, "empty pattern");
|
|
51
50
|
return GIT_EINVALIDSPEC;
|
|
52
51
|
}
|
|
53
52
|
|
|
54
|
-
error =
|
|
53
|
+
error = git_regexp_compile(regex, pattern, 0);
|
|
55
54
|
if (!error)
|
|
56
55
|
return 0;
|
|
57
56
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
regfree(regex);
|
|
57
|
+
git_regexp_dispose(regex);
|
|
61
58
|
|
|
62
59
|
return error;
|
|
63
60
|
}
|
|
@@ -66,7 +63,7 @@ static int maybe_describe(git_object**out, git_repository *repo, const char *spe
|
|
|
66
63
|
{
|
|
67
64
|
const char *substr;
|
|
68
65
|
int error;
|
|
69
|
-
|
|
66
|
+
git_regexp regex;
|
|
70
67
|
|
|
71
68
|
substr = strstr(spec, "-g");
|
|
72
69
|
|
|
@@ -76,8 +73,8 @@ static int maybe_describe(git_object**out, git_repository *repo, const char *spe
|
|
|
76
73
|
if (build_regex(®ex, ".+-[0-9]+-g[0-9a-fA-F]+") < 0)
|
|
77
74
|
return -1;
|
|
78
75
|
|
|
79
|
-
error =
|
|
80
|
-
|
|
76
|
+
error = git_regexp_match(®ex, spec);
|
|
77
|
+
git_regexp_dispose(®ex);
|
|
81
78
|
|
|
82
79
|
if (error)
|
|
83
80
|
return GIT_ENOTFOUND;
|
|
@@ -101,7 +98,7 @@ static int revparse_lookup_object(
|
|
|
101
98
|
if (!error) {
|
|
102
99
|
|
|
103
100
|
error = git_object_lookup(
|
|
104
|
-
object_out, repo, git_reference_target(ref),
|
|
101
|
+
object_out, repo, git_reference_target(ref), GIT_OBJECT_ANY);
|
|
105
102
|
|
|
106
103
|
if (!error)
|
|
107
104
|
*reference_out = ref;
|
|
@@ -119,7 +116,7 @@ static int revparse_lookup_object(
|
|
|
119
116
|
if ((error = maybe_describe(object_out, repo, spec)) != GIT_ENOTFOUND)
|
|
120
117
|
return error;
|
|
121
118
|
|
|
122
|
-
|
|
119
|
+
git_error_set(GIT_ERROR_REFERENCE, "revspec '%s' not found", spec);
|
|
123
120
|
return GIT_ENOTFOUND;
|
|
124
121
|
}
|
|
125
122
|
|
|
@@ -128,7 +125,8 @@ static int try_parse_numeric(int *n, const char *curly_braces_content)
|
|
|
128
125
|
int32_t content;
|
|
129
126
|
const char *end_ptr;
|
|
130
127
|
|
|
131
|
-
if (
|
|
128
|
+
if (git__strntol32(&content, curly_braces_content, strlen(curly_braces_content),
|
|
129
|
+
&end_ptr, 10) < 0)
|
|
132
130
|
return -1;
|
|
133
131
|
|
|
134
132
|
if (*end_ptr != '\0')
|
|
@@ -142,12 +140,11 @@ static int retrieve_previously_checked_out_branch_or_revision(git_object **out,
|
|
|
142
140
|
{
|
|
143
141
|
git_reference *ref = NULL;
|
|
144
142
|
git_reflog *reflog = NULL;
|
|
145
|
-
|
|
143
|
+
git_regexp preg;
|
|
146
144
|
int error = -1;
|
|
147
145
|
size_t i, numentries, cur;
|
|
148
146
|
const git_reflog_entry *entry;
|
|
149
147
|
const char *msg;
|
|
150
|
-
regmatch_t regexmatches[2];
|
|
151
148
|
git_buf buf = GIT_BUF_INIT;
|
|
152
149
|
|
|
153
150
|
cur = position;
|
|
@@ -167,12 +164,14 @@ static int retrieve_previously_checked_out_branch_or_revision(git_object **out,
|
|
|
167
164
|
numentries = git_reflog_entrycount(reflog);
|
|
168
165
|
|
|
169
166
|
for (i = 0; i < numentries; i++) {
|
|
167
|
+
git_regmatch regexmatches[2];
|
|
168
|
+
|
|
170
169
|
entry = git_reflog_entry_byindex(reflog, i);
|
|
171
170
|
msg = git_reflog_entry_message(entry);
|
|
172
171
|
if (!msg)
|
|
173
172
|
continue;
|
|
174
173
|
|
|
175
|
-
if (
|
|
174
|
+
if (git_regexp_search(&preg, msg, 2, regexmatches) < 0)
|
|
176
175
|
continue;
|
|
177
176
|
|
|
178
177
|
cur--;
|
|
@@ -180,7 +179,8 @@ static int retrieve_previously_checked_out_branch_or_revision(git_object **out,
|
|
|
180
179
|
if (cur > 0)
|
|
181
180
|
continue;
|
|
182
181
|
|
|
183
|
-
git_buf_put(&buf, msg+regexmatches[1].
|
|
182
|
+
if ((git_buf_put(&buf, msg+regexmatches[1].start, regexmatches[1].end - regexmatches[1].start)) < 0)
|
|
183
|
+
goto cleanup;
|
|
184
184
|
|
|
185
185
|
if ((error = git_reference_dwim(base_ref, repo, git_buf_cstr(&buf))) == 0)
|
|
186
186
|
goto cleanup;
|
|
@@ -198,7 +198,7 @@ static int retrieve_previously_checked_out_branch_or_revision(git_object **out,
|
|
|
198
198
|
cleanup:
|
|
199
199
|
git_reference_free(ref);
|
|
200
200
|
git_buf_dispose(&buf);
|
|
201
|
-
|
|
201
|
+
git_regexp_dispose(&preg);
|
|
202
202
|
git_reflog_free(reflog);
|
|
203
203
|
return error;
|
|
204
204
|
}
|
|
@@ -244,8 +244,8 @@ static int retrieve_oid_from_reflog(git_oid *oid, git_reference *ref, size_t ide
|
|
|
244
244
|
return 0;
|
|
245
245
|
|
|
246
246
|
notfound:
|
|
247
|
-
|
|
248
|
-
|
|
247
|
+
git_error_set(
|
|
248
|
+
GIT_ERROR_REFERENCE,
|
|
249
249
|
"reflog for '%s' has only %"PRIuZ" entries, asked for %"PRIuZ,
|
|
250
250
|
git_reference_name(ref), numentries, identifier);
|
|
251
251
|
|
|
@@ -268,14 +268,14 @@ static int retrieve_revobject_from_reflog(git_object **out, git_reference **base
|
|
|
268
268
|
}
|
|
269
269
|
|
|
270
270
|
if (position == 0) {
|
|
271
|
-
error = git_object_lookup(out, repo, git_reference_target(ref),
|
|
271
|
+
error = git_object_lookup(out, repo, git_reference_target(ref), GIT_OBJECT_ANY);
|
|
272
272
|
goto cleanup;
|
|
273
273
|
}
|
|
274
274
|
|
|
275
275
|
if ((error = retrieve_oid_from_reflog(&oid, ref, position)) < 0)
|
|
276
276
|
goto cleanup;
|
|
277
277
|
|
|
278
|
-
error = git_object_lookup(out, repo, &oid,
|
|
278
|
+
error = git_object_lookup(out, repo, &oid, GIT_OBJECT_ANY);
|
|
279
279
|
|
|
280
280
|
cleanup:
|
|
281
281
|
git_reference_free(ref);
|
|
@@ -354,26 +354,26 @@ cleanup:
|
|
|
354
354
|
return error;
|
|
355
355
|
}
|
|
356
356
|
|
|
357
|
-
static
|
|
357
|
+
static git_object_t parse_obj_type(const char *str)
|
|
358
358
|
{
|
|
359
359
|
if (!strcmp(str, "commit"))
|
|
360
|
-
return
|
|
360
|
+
return GIT_OBJECT_COMMIT;
|
|
361
361
|
|
|
362
362
|
if (!strcmp(str, "tree"))
|
|
363
|
-
return
|
|
363
|
+
return GIT_OBJECT_TREE;
|
|
364
364
|
|
|
365
365
|
if (!strcmp(str, "blob"))
|
|
366
|
-
return
|
|
366
|
+
return GIT_OBJECT_BLOB;
|
|
367
367
|
|
|
368
368
|
if (!strcmp(str, "tag"))
|
|
369
|
-
return
|
|
369
|
+
return GIT_OBJECT_TAG;
|
|
370
370
|
|
|
371
|
-
return
|
|
371
|
+
return GIT_OBJECT_INVALID;
|
|
372
372
|
}
|
|
373
373
|
|
|
374
374
|
static int dereference_to_non_tag(git_object **out, git_object *obj)
|
|
375
375
|
{
|
|
376
|
-
if (git_object_type(obj) ==
|
|
376
|
+
if (git_object_type(obj) == GIT_OBJECT_TAG)
|
|
377
377
|
return git_tag_peel(out, (git_tag *)obj);
|
|
378
378
|
|
|
379
379
|
return git_object_dup(out, obj);
|
|
@@ -384,7 +384,7 @@ static int handle_caret_parent_syntax(git_object **out, git_object *obj, int n)
|
|
|
384
384
|
git_object *temp_commit = NULL;
|
|
385
385
|
int error;
|
|
386
386
|
|
|
387
|
-
if ((error = git_object_peel(&temp_commit, obj,
|
|
387
|
+
if ((error = git_object_peel(&temp_commit, obj, GIT_OBJECT_COMMIT)) < 0)
|
|
388
388
|
return (error == GIT_EAMBIGUOUS || error == GIT_ENOTFOUND) ?
|
|
389
389
|
GIT_EINVALIDSPEC : error;
|
|
390
390
|
|
|
@@ -404,7 +404,7 @@ static int handle_linear_syntax(git_object **out, git_object *obj, int n)
|
|
|
404
404
|
git_object *temp_commit = NULL;
|
|
405
405
|
int error;
|
|
406
406
|
|
|
407
|
-
if ((error = git_object_peel(&temp_commit, obj,
|
|
407
|
+
if ((error = git_object_peel(&temp_commit, obj, GIT_OBJECT_COMMIT)) < 0)
|
|
408
408
|
return (error == GIT_EAMBIGUOUS || error == GIT_ENOTFOUND) ?
|
|
409
409
|
GIT_EINVALIDSPEC : error;
|
|
410
410
|
|
|
@@ -423,7 +423,7 @@ static int handle_colon_syntax(
|
|
|
423
423
|
int error = -1;
|
|
424
424
|
git_tree_entry *entry = NULL;
|
|
425
425
|
|
|
426
|
-
if ((error = git_object_peel(&tree, obj,
|
|
426
|
+
if ((error = git_object_peel(&tree, obj, GIT_OBJECT_TREE)) < 0)
|
|
427
427
|
return error == GIT_ENOTFOUND ? GIT_EINVALIDSPEC : error;
|
|
428
428
|
|
|
429
429
|
if (*path == '\0') {
|
|
@@ -447,7 +447,7 @@ cleanup:
|
|
|
447
447
|
return error;
|
|
448
448
|
}
|
|
449
449
|
|
|
450
|
-
static int walk_and_search(git_object **out, git_revwalk *walk,
|
|
450
|
+
static int walk_and_search(git_object **out, git_revwalk *walk, git_regexp *regex)
|
|
451
451
|
{
|
|
452
452
|
int error;
|
|
453
453
|
git_oid oid;
|
|
@@ -455,11 +455,11 @@ static int walk_and_search(git_object **out, git_revwalk *walk, regex_t *regex)
|
|
|
455
455
|
|
|
456
456
|
while (!(error = git_revwalk_next(&oid, walk))) {
|
|
457
457
|
|
|
458
|
-
error = git_object_lookup(&obj, git_revwalk_repository(walk), &oid,
|
|
458
|
+
error = git_object_lookup(&obj, git_revwalk_repository(walk), &oid, GIT_OBJECT_COMMIT);
|
|
459
459
|
if ((error < 0) && (error != GIT_ENOTFOUND))
|
|
460
460
|
return -1;
|
|
461
461
|
|
|
462
|
-
if (!
|
|
462
|
+
if (!git_regexp_match(regex, git_commit_message((git_commit*)obj))) {
|
|
463
463
|
*out = obj;
|
|
464
464
|
return 0;
|
|
465
465
|
}
|
|
@@ -475,7 +475,7 @@ static int walk_and_search(git_object **out, git_revwalk *walk, regex_t *regex)
|
|
|
475
475
|
|
|
476
476
|
static int handle_grep_syntax(git_object **out, git_repository *repo, const git_oid *spec_oid, const char *pattern)
|
|
477
477
|
{
|
|
478
|
-
|
|
478
|
+
git_regexp preg;
|
|
479
479
|
git_revwalk *walk = NULL;
|
|
480
480
|
int error;
|
|
481
481
|
|
|
@@ -496,7 +496,7 @@ static int handle_grep_syntax(git_object **out, git_repository *repo, const git_
|
|
|
496
496
|
error = walk_and_search(out, walk, &preg);
|
|
497
497
|
|
|
498
498
|
cleanup:
|
|
499
|
-
|
|
499
|
+
git_regexp_dispose(&preg);
|
|
500
500
|
git_revwalk_free(walk);
|
|
501
501
|
|
|
502
502
|
return error;
|
|
@@ -504,7 +504,7 @@ cleanup:
|
|
|
504
504
|
|
|
505
505
|
static int handle_caret_curly_syntax(git_object **out, git_object *obj, const char *curly_braces_content)
|
|
506
506
|
{
|
|
507
|
-
|
|
507
|
+
git_object_t expected_type;
|
|
508
508
|
|
|
509
509
|
if (*curly_braces_content == '\0')
|
|
510
510
|
return dereference_to_non_tag(out, obj);
|
|
@@ -514,7 +514,7 @@ static int handle_caret_curly_syntax(git_object **out, git_object *obj, const ch
|
|
|
514
514
|
|
|
515
515
|
expected_type = parse_obj_type(curly_braces_content);
|
|
516
516
|
|
|
517
|
-
if (expected_type ==
|
|
517
|
+
if (expected_type == GIT_OBJECT_INVALID)
|
|
518
518
|
return GIT_EINVALIDSPEC;
|
|
519
519
|
|
|
520
520
|
return git_object_peel(out, obj, expected_type);
|
|
@@ -578,7 +578,7 @@ static int extract_how_many(int *n, const char *spec, size_t *pos)
|
|
|
578
578
|
} while (spec[(*pos)] == kind && kind == '~');
|
|
579
579
|
|
|
580
580
|
if (git__isdigit(spec[*pos])) {
|
|
581
|
-
if (
|
|
581
|
+
if (git__strntol32(&parsed, spec + *pos, strlen(spec + *pos), &end_ptr, 10) < 0)
|
|
582
582
|
return GIT_EINVALIDSPEC;
|
|
583
583
|
|
|
584
584
|
accumulated += (parsed - 1);
|
|
@@ -600,7 +600,7 @@ static int object_from_reference(git_object **object, git_reference *reference)
|
|
|
600
600
|
if (git_reference_resolve(&resolved, reference) < 0)
|
|
601
601
|
return -1;
|
|
602
602
|
|
|
603
|
-
error = git_object_lookup(object, reference->db->repo, git_reference_target(resolved),
|
|
603
|
+
error = git_object_lookup(object, reference->db->repo, git_reference_target(resolved), GIT_OBJECT_ANY);
|
|
604
604
|
git_reference_free(resolved);
|
|
605
605
|
|
|
606
606
|
return error;
|
|
@@ -758,7 +758,7 @@ int revparse__ext(
|
|
|
758
758
|
* TODO: support merge-stage path lookup (":2:Makefile")
|
|
759
759
|
* and plain index blob lookup (:i-am/a/blob)
|
|
760
760
|
*/
|
|
761
|
-
|
|
761
|
+
git_error_set(GIT_ERROR_INVALID, "unimplemented");
|
|
762
762
|
error = GIT_ERROR;
|
|
763
763
|
goto cleanup;
|
|
764
764
|
}
|
|
@@ -813,7 +813,7 @@ int revparse__ext(
|
|
|
813
813
|
cleanup:
|
|
814
814
|
if (error) {
|
|
815
815
|
if (error == GIT_EINVALIDSPEC)
|
|
816
|
-
|
|
816
|
+
git_error_set(GIT_ERROR_INVALID,
|
|
817
817
|
"failed to parse revision specifier - Invalid pattern '%s'", spec);
|
|
818
818
|
|
|
819
819
|
git_object_free(base_rev);
|
|
@@ -897,7 +897,7 @@ int git_revparse(
|
|
|
897
897
|
* allowed.
|
|
898
898
|
*/
|
|
899
899
|
if (!git__strcmp(spec, "..")) {
|
|
900
|
-
|
|
900
|
+
git_error_set(GIT_ERROR_INVALID, "Invalid pattern '..'");
|
|
901
901
|
return GIT_EINVALIDSPEC;
|
|
902
902
|
}
|
|
903
903
|
|