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
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef INCLUDE_git_apply_h__
|
|
8
|
+
#define INCLUDE_git_apply_h__
|
|
9
|
+
|
|
10
|
+
#include "common.h"
|
|
11
|
+
#include "types.h"
|
|
12
|
+
#include "oid.h"
|
|
13
|
+
#include "diff.h"
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @file git2/apply.h
|
|
17
|
+
* @brief Git patch application routines
|
|
18
|
+
* @defgroup git_apply Git patch application routines
|
|
19
|
+
* @ingroup Git
|
|
20
|
+
* @{
|
|
21
|
+
*/
|
|
22
|
+
GIT_BEGIN_DECL
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* When applying a patch, callback that will be made per delta (file).
|
|
26
|
+
*
|
|
27
|
+
* When the callback:
|
|
28
|
+
* - returns < 0, the apply process will be aborted.
|
|
29
|
+
* - returns > 0, the delta will not be applied, but the apply process
|
|
30
|
+
* continues
|
|
31
|
+
* - returns 0, the delta is applied, and the apply process continues.
|
|
32
|
+
*
|
|
33
|
+
* @param delta The delta to be applied
|
|
34
|
+
* @param payload User-specified payload
|
|
35
|
+
*/
|
|
36
|
+
typedef int GIT_CALLBACK(git_apply_delta_cb)(
|
|
37
|
+
const git_diff_delta *delta,
|
|
38
|
+
void *payload);
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* When applying a patch, callback that will be made per hunk.
|
|
42
|
+
*
|
|
43
|
+
* When the callback:
|
|
44
|
+
* - returns < 0, the apply process will be aborted.
|
|
45
|
+
* - returns > 0, the hunk will not be applied, but the apply process
|
|
46
|
+
* continues
|
|
47
|
+
* - returns 0, the hunk is applied, and the apply process continues.
|
|
48
|
+
*
|
|
49
|
+
* @param hunk The hunk to be applied
|
|
50
|
+
* @param payload User-specified payload
|
|
51
|
+
*/
|
|
52
|
+
typedef int GIT_CALLBACK(git_apply_hunk_cb)(
|
|
53
|
+
const git_diff_hunk *hunk,
|
|
54
|
+
void *payload);
|
|
55
|
+
|
|
56
|
+
/** Flags controlling the behavior of git_apply */
|
|
57
|
+
typedef enum {
|
|
58
|
+
/**
|
|
59
|
+
* Don't actually make changes, just test that the patch applies.
|
|
60
|
+
* This is the equivalent of `git apply --check`.
|
|
61
|
+
*/
|
|
62
|
+
GIT_APPLY_CHECK = (1 << 0),
|
|
63
|
+
} git_apply_flags_t;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Apply options structure
|
|
67
|
+
*
|
|
68
|
+
* Initialize with `GIT_APPLY_OPTIONS_INIT`. Alternatively, you can
|
|
69
|
+
* use `git_apply_options_init`.
|
|
70
|
+
*
|
|
71
|
+
* @see git_apply_to_tree, git_apply
|
|
72
|
+
*/
|
|
73
|
+
typedef struct {
|
|
74
|
+
unsigned int version; /**< The version */
|
|
75
|
+
|
|
76
|
+
/** When applying a patch, callback that will be made per delta (file). */
|
|
77
|
+
git_apply_delta_cb delta_cb;
|
|
78
|
+
|
|
79
|
+
/** When applying a patch, callback that will be made per hunk. */
|
|
80
|
+
git_apply_hunk_cb hunk_cb;
|
|
81
|
+
|
|
82
|
+
/** Payload passed to both delta_cb & hunk_cb. */
|
|
83
|
+
void *payload;
|
|
84
|
+
|
|
85
|
+
/** Bitmask of git_apply_flags_t */
|
|
86
|
+
unsigned int flags;
|
|
87
|
+
} git_apply_options;
|
|
88
|
+
|
|
89
|
+
#define GIT_APPLY_OPTIONS_VERSION 1
|
|
90
|
+
#define GIT_APPLY_OPTIONS_INIT {GIT_APPLY_OPTIONS_VERSION}
|
|
91
|
+
|
|
92
|
+
GIT_EXTERN(int) git_apply_options_init(git_apply_options *opts, unsigned int version);
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Apply a `git_diff` to a `git_tree`, and return the resulting image
|
|
96
|
+
* as an index.
|
|
97
|
+
*
|
|
98
|
+
* @param out the postimage of the application
|
|
99
|
+
* @param repo the repository to apply
|
|
100
|
+
* @param preimage the tree to apply the diff to
|
|
101
|
+
* @param diff the diff to apply
|
|
102
|
+
* @param options the options for the apply (or null for defaults)
|
|
103
|
+
*/
|
|
104
|
+
GIT_EXTERN(int) git_apply_to_tree(
|
|
105
|
+
git_index **out,
|
|
106
|
+
git_repository *repo,
|
|
107
|
+
git_tree *preimage,
|
|
108
|
+
git_diff *diff,
|
|
109
|
+
const git_apply_options *options);
|
|
110
|
+
|
|
111
|
+
/** Possible application locations for git_apply */
|
|
112
|
+
typedef enum {
|
|
113
|
+
/**
|
|
114
|
+
* Apply the patch to the workdir, leaving the index untouched.
|
|
115
|
+
* This is the equivalent of `git apply` with no location argument.
|
|
116
|
+
*/
|
|
117
|
+
GIT_APPLY_LOCATION_WORKDIR = 0,
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Apply the patch to the index, leaving the working directory
|
|
121
|
+
* untouched. This is the equivalent of `git apply --cached`.
|
|
122
|
+
*/
|
|
123
|
+
GIT_APPLY_LOCATION_INDEX = 1,
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Apply the patch to both the working directory and the index.
|
|
127
|
+
* This is the equivalent of `git apply --index`.
|
|
128
|
+
*/
|
|
129
|
+
GIT_APPLY_LOCATION_BOTH = 2,
|
|
130
|
+
} git_apply_location_t;
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Apply a `git_diff` to the given repository, making changes directly
|
|
134
|
+
* in the working directory, the index, or both.
|
|
135
|
+
*
|
|
136
|
+
* @param repo the repository to apply to
|
|
137
|
+
* @param diff the diff to apply
|
|
138
|
+
* @param location the location to apply (workdir, index or both)
|
|
139
|
+
* @param options the options for the apply (or null for defaults)
|
|
140
|
+
*/
|
|
141
|
+
GIT_EXTERN(int) git_apply(
|
|
142
|
+
git_repository *repo,
|
|
143
|
+
git_diff *diff,
|
|
144
|
+
git_apply_location_t location,
|
|
145
|
+
const git_apply_options *options);
|
|
146
|
+
|
|
147
|
+
/** @} */
|
|
148
|
+
GIT_END_DECL
|
|
149
|
+
#endif
|
|
@@ -30,7 +30,7 @@ GIT_BEGIN_DECL
|
|
|
30
30
|
* Then for file `xyz.c` looking up attribute "foo" gives a value for
|
|
31
31
|
* which `GIT_ATTR_TRUE(value)` is true.
|
|
32
32
|
*/
|
|
33
|
-
#define
|
|
33
|
+
#define GIT_ATTR_IS_TRUE(attr) (git_attr_value(attr) == GIT_ATTR_VALUE_TRUE)
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* GIT_ATTR_FALSE checks if an attribute is set off. In core git
|
|
@@ -44,7 +44,7 @@ GIT_BEGIN_DECL
|
|
|
44
44
|
* Then for file `zyx.h` looking up attribute "foo" gives a value for
|
|
45
45
|
* which `GIT_ATTR_FALSE(value)` is true.
|
|
46
46
|
*/
|
|
47
|
-
#define
|
|
47
|
+
#define GIT_ATTR_IS_FALSE(attr) (git_attr_value(attr) == GIT_ATTR_VALUE_FALSE)
|
|
48
48
|
|
|
49
49
|
/**
|
|
50
50
|
* GIT_ATTR_UNSPECIFIED checks if an attribute is unspecified. This
|
|
@@ -62,7 +62,7 @@ GIT_BEGIN_DECL
|
|
|
62
62
|
* file `onefile.rb` or looking up "bar" on any file will all give
|
|
63
63
|
* `GIT_ATTR_UNSPECIFIED(value)` of true.
|
|
64
64
|
*/
|
|
65
|
-
#define
|
|
65
|
+
#define GIT_ATTR_IS_UNSPECIFIED(attr) (git_attr_value(attr) == GIT_ATTR_VALUE_UNSPECIFIED)
|
|
66
66
|
|
|
67
67
|
/**
|
|
68
68
|
* GIT_ATTR_HAS_VALUE checks if an attribute is set to a value (as
|
|
@@ -74,17 +74,17 @@ GIT_BEGIN_DECL
|
|
|
74
74
|
* Given this, looking up "eol" for `onefile.txt` will give back the
|
|
75
75
|
* string "lf" and `GIT_ATTR_SET_TO_VALUE(attr)` will return true.
|
|
76
76
|
*/
|
|
77
|
-
#define GIT_ATTR_HAS_VALUE(attr) (git_attr_value(attr) ==
|
|
77
|
+
#define GIT_ATTR_HAS_VALUE(attr) (git_attr_value(attr) == GIT_ATTR_VALUE_STRING)
|
|
78
78
|
|
|
79
79
|
/**
|
|
80
80
|
* Possible states for an attribute
|
|
81
81
|
*/
|
|
82
82
|
typedef enum {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
83
|
+
GIT_ATTR_VALUE_UNSPECIFIED = 0, /**< The attribute has been left unspecified */
|
|
84
|
+
GIT_ATTR_VALUE_TRUE, /**< The attribute has been set */
|
|
85
|
+
GIT_ATTR_VALUE_FALSE, /**< The attribute has been unset */
|
|
86
|
+
GIT_ATTR_VALUE_STRING, /**< This attribute has a value */
|
|
87
|
+
} git_attr_value_t;
|
|
88
88
|
|
|
89
89
|
/**
|
|
90
90
|
* Return the value type for a given attribute.
|
|
@@ -99,7 +99,7 @@ typedef enum {
|
|
|
99
99
|
* @param attr The attribute
|
|
100
100
|
* @return the value type for the attribute
|
|
101
101
|
*/
|
|
102
|
-
GIT_EXTERN(
|
|
102
|
+
GIT_EXTERN(git_attr_value_t) git_attr_value(const char *attr);
|
|
103
103
|
|
|
104
104
|
/**
|
|
105
105
|
* Check attribute flags: Reading values from index and working directory.
|
|
@@ -119,13 +119,20 @@ GIT_EXTERN(git_attr_t) git_attr_value(const char *attr);
|
|
|
119
119
|
#define GIT_ATTR_CHECK_INDEX_ONLY 2
|
|
120
120
|
|
|
121
121
|
/**
|
|
122
|
-
* Check attribute flags:
|
|
122
|
+
* Check attribute flags: controlling extended attribute behavior.
|
|
123
123
|
*
|
|
124
124
|
* Normally, attribute checks include looking in the /etc (or system
|
|
125
125
|
* equivalent) directory for a `gitattributes` file. Passing this
|
|
126
126
|
* flag will cause attribute checks to ignore that file.
|
|
127
|
+
* equivalent) directory for a `gitattributes` file. Passing the
|
|
128
|
+
* `GIT_ATTR_CHECK_NO_SYSTEM` flag will cause attribute checks to
|
|
129
|
+
* ignore that file.
|
|
130
|
+
*
|
|
131
|
+
* Passing the `GIT_ATTR_CHECK_INCLUDE_HEAD` flag will use attributes
|
|
132
|
+
* from a `.gitattributes` file in the repository at the HEAD revision.
|
|
127
133
|
*/
|
|
128
|
-
#define GIT_ATTR_CHECK_NO_SYSTEM
|
|
134
|
+
#define GIT_ATTR_CHECK_NO_SYSTEM (1 << 2)
|
|
135
|
+
#define GIT_ATTR_CHECK_INCLUDE_HEAD (1 << 3)
|
|
129
136
|
|
|
130
137
|
/**
|
|
131
138
|
* Look up the value of one git attribute for path.
|
|
@@ -202,7 +209,7 @@ GIT_EXTERN(int) git_attr_get_many(
|
|
|
202
209
|
* @return 0 to continue looping, non-zero to stop. This value will be returned
|
|
203
210
|
* from git_attr_foreach.
|
|
204
211
|
*/
|
|
205
|
-
typedef int (
|
|
212
|
+
typedef int GIT_CALLBACK(git_attr_foreach_cb)(const char *name, const char *value, void *payload);
|
|
206
213
|
|
|
207
214
|
/**
|
|
208
215
|
* Loop over all the git attributes for a path.
|
|
@@ -53,7 +53,7 @@ typedef enum {
|
|
|
53
53
|
* Blame options structure
|
|
54
54
|
*
|
|
55
55
|
* Initialize with `GIT_BLAME_OPTIONS_INIT`. Alternatively, you can
|
|
56
|
-
* use `
|
|
56
|
+
* use `git_blame_options_init`.
|
|
57
57
|
*
|
|
58
58
|
*/
|
|
59
59
|
typedef struct git_blame_options {
|
|
@@ -100,7 +100,7 @@ typedef struct git_blame_options {
|
|
|
100
100
|
* @param version The struct version; pass `GIT_BLAME_OPTIONS_VERSION`.
|
|
101
101
|
* @return Zero on success; -1 on failure.
|
|
102
102
|
*/
|
|
103
|
-
GIT_EXTERN(int)
|
|
103
|
+
GIT_EXTERN(int) git_blame_options_init(
|
|
104
104
|
git_blame_options *opts,
|
|
105
105
|
unsigned int version);
|
|
106
106
|
|
|
@@ -183,7 +183,7 @@ GIT_EXTERN(const git_blame_hunk*) git_blame_get_hunk_byline(
|
|
|
183
183
|
* @param path path to file to consider
|
|
184
184
|
* @param options options for the blame operation. If NULL, this is treated as
|
|
185
185
|
* though GIT_BLAME_OPTIONS_INIT were passed.
|
|
186
|
-
* @return 0 on success, or an error code. (use
|
|
186
|
+
* @return 0 on success, or an error code. (use git_error_last for information
|
|
187
187
|
* about the error.)
|
|
188
188
|
*/
|
|
189
189
|
GIT_EXTERN(int) git_blame_file(
|
|
@@ -207,7 +207,7 @@ GIT_EXTERN(int) git_blame_file(
|
|
|
207
207
|
* from git_blame_file)
|
|
208
208
|
* @param buffer the (possibly) modified contents of the file
|
|
209
209
|
* @param buffer_len number of valid bytes in the buffer
|
|
210
|
-
* @return 0 on success, or an error code. (use
|
|
210
|
+
* @return 0 on success, or an error code. (use git_error_last for information
|
|
211
211
|
* about the error)
|
|
212
212
|
*/
|
|
213
213
|
GIT_EXTERN(int) git_blame_buffer(
|
|
@@ -94,7 +94,40 @@ GIT_EXTERN(const void *) git_blob_rawcontent(const git_blob *blob);
|
|
|
94
94
|
* @param blob pointer to the blob
|
|
95
95
|
* @return size on bytes
|
|
96
96
|
*/
|
|
97
|
-
GIT_EXTERN(
|
|
97
|
+
GIT_EXTERN(git_object_size_t) git_blob_rawsize(const git_blob *blob);
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Flags to control the functionality of `git_blob_filter`.
|
|
101
|
+
*/
|
|
102
|
+
typedef enum {
|
|
103
|
+
/** When set, filters will not be applied to binary files. */
|
|
104
|
+
GIT_BLOB_FILTER_CHECK_FOR_BINARY = (1 << 0),
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* When set, filters will not load configuration from the
|
|
108
|
+
* system-wide `gitattributes` in `/etc` (or system equivalent).
|
|
109
|
+
*/
|
|
110
|
+
GIT_BLOB_FILTER_NO_SYSTEM_ATTRIBUTES = (1 << 1),
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* When set, filters will be loaded from a `.gitattributes` file
|
|
114
|
+
* in the HEAD commit.
|
|
115
|
+
*/
|
|
116
|
+
GIT_BLOB_FILTER_ATTTRIBUTES_FROM_HEAD = (1 << 2),
|
|
117
|
+
} git_blob_filter_flag_t;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* The options used when applying filter options to a file.
|
|
121
|
+
*/
|
|
122
|
+
typedef struct {
|
|
123
|
+
int version;
|
|
124
|
+
|
|
125
|
+
/** Flags to control the filtering process, see `git_blob_filter_flag_t` above */
|
|
126
|
+
uint32_t flags;
|
|
127
|
+
} git_blob_filter_options;
|
|
128
|
+
|
|
129
|
+
#define GIT_BLOB_FILTER_OPTIONS_VERSION 1
|
|
130
|
+
#define GIT_BLOB_FILTER_OPTIONS_INIT {GIT_BLOB_FILTER_OPTIONS_VERSION, GIT_BLOB_FILTER_CHECK_FOR_BINARY}
|
|
98
131
|
|
|
99
132
|
/**
|
|
100
133
|
* Get a buffer with the filtered content of a blob.
|
|
@@ -115,15 +148,14 @@ GIT_EXTERN(git_off_t) git_blob_rawsize(const git_blob *blob);
|
|
|
115
148
|
* @param out The git_buf to be filled in
|
|
116
149
|
* @param blob Pointer to the blob
|
|
117
150
|
* @param as_path Path used for file attribute lookups, etc.
|
|
118
|
-
* @param
|
|
119
|
-
* NUL bytes / looks like binary data before applying filters?
|
|
151
|
+
* @param opts Options to use for filtering the blob
|
|
120
152
|
* @return 0 on success or an error code
|
|
121
153
|
*/
|
|
122
|
-
GIT_EXTERN(int)
|
|
154
|
+
GIT_EXTERN(int) git_blob_filter(
|
|
123
155
|
git_buf *out,
|
|
124
156
|
git_blob *blob,
|
|
125
157
|
const char *as_path,
|
|
126
|
-
|
|
158
|
+
git_blob_filter_options *opts);
|
|
127
159
|
|
|
128
160
|
/**
|
|
129
161
|
* Read a file from the working folder of a repository
|
|
@@ -136,7 +168,7 @@ GIT_EXTERN(int) git_blob_filtered_content(
|
|
|
136
168
|
* relative to the repository's working dir
|
|
137
169
|
* @return 0 or an error code
|
|
138
170
|
*/
|
|
139
|
-
GIT_EXTERN(int)
|
|
171
|
+
GIT_EXTERN(int) git_blob_create_from_workdir(git_oid *id, git_repository *repo, const char *relative_path);
|
|
140
172
|
|
|
141
173
|
/**
|
|
142
174
|
* Read a file from the filesystem and write its content
|
|
@@ -148,7 +180,7 @@ GIT_EXTERN(int) git_blob_create_fromworkdir(git_oid *id, git_repository *repo, c
|
|
|
148
180
|
* @param path file from which the blob will be created
|
|
149
181
|
* @return 0 or an error code
|
|
150
182
|
*/
|
|
151
|
-
GIT_EXTERN(int)
|
|
183
|
+
GIT_EXTERN(int) git_blob_create_from_disk(git_oid *id, git_repository *repo, const char *path);
|
|
152
184
|
|
|
153
185
|
/**
|
|
154
186
|
* Create a stream to write a new blob into the object db
|
|
@@ -156,12 +188,12 @@ GIT_EXTERN(int) git_blob_create_fromdisk(git_oid *id, git_repository *repo, cons
|
|
|
156
188
|
* This function may need to buffer the data on disk and will in
|
|
157
189
|
* general not be the right choice if you know the size of the data
|
|
158
190
|
* to write. If you have data in memory, use
|
|
159
|
-
* `
|
|
191
|
+
* `git_blob_create_from_buffer()`. If you do not, but know the size of
|
|
160
192
|
* the contents (and don't want/need to perform filtering), use
|
|
161
193
|
* `git_odb_open_wstream()`.
|
|
162
194
|
*
|
|
163
195
|
* Don't close this stream yourself but pass it to
|
|
164
|
-
* `
|
|
196
|
+
* `git_blob_create_from_stream_commit()` to commit the write to the
|
|
165
197
|
* object db and get the object id.
|
|
166
198
|
*
|
|
167
199
|
* If the `hintpath` parameter is filled, it will be used to determine
|
|
@@ -175,7 +207,7 @@ GIT_EXTERN(int) git_blob_create_fromdisk(git_oid *id, git_repository *repo, cons
|
|
|
175
207
|
* to apply onto the content of the blob to be created.
|
|
176
208
|
* @return 0 or error code
|
|
177
209
|
*/
|
|
178
|
-
GIT_EXTERN(int)
|
|
210
|
+
GIT_EXTERN(int) git_blob_create_from_stream(
|
|
179
211
|
git_writestream **out,
|
|
180
212
|
git_repository *repo,
|
|
181
213
|
const char *hintpath);
|
|
@@ -189,7 +221,7 @@ GIT_EXTERN(int) git_blob_create_fromstream(
|
|
|
189
221
|
* @param stream the stream to close
|
|
190
222
|
* @return 0 or an error code
|
|
191
223
|
*/
|
|
192
|
-
GIT_EXTERN(int)
|
|
224
|
+
GIT_EXTERN(int) git_blob_create_from_stream_commit(
|
|
193
225
|
git_oid *out,
|
|
194
226
|
git_writestream *stream);
|
|
195
227
|
|
|
@@ -202,7 +234,7 @@ GIT_EXTERN(int) git_blob_create_fromstream_commit(
|
|
|
202
234
|
* @param len length of the data
|
|
203
235
|
* @return 0 or an error code
|
|
204
236
|
*/
|
|
205
|
-
GIT_EXTERN(int)
|
|
237
|
+
GIT_EXTERN(int) git_blob_create_from_buffer(
|
|
206
238
|
git_oid *id, git_repository *repo, const void *buffer, size_t len);
|
|
207
239
|
|
|
208
240
|
/**
|
|
@@ -32,26 +32,32 @@ GIT_BEGIN_DECL
|
|
|
32
32
|
* a block of memory they hold. In this case, libgit2 will not resize or
|
|
33
33
|
* free the memory, but will read from it as needed.
|
|
34
34
|
*
|
|
35
|
-
* A `git_buf` is a public structure with three fields:
|
|
36
|
-
*
|
|
37
|
-
* - `ptr` points to the start of the allocated memory. If it is NULL,
|
|
38
|
-
* then the `git_buf` is considered empty and libgit2 will feel free
|
|
39
|
-
* to overwrite it with new data.
|
|
40
|
-
*
|
|
41
|
-
* - `size` holds the size (in bytes) of the data that is actually used.
|
|
42
|
-
*
|
|
43
|
-
* - `asize` holds the known total amount of allocated memory if the `ptr`
|
|
44
|
-
* was allocated by libgit2. It may be larger than `size`. If `ptr`
|
|
45
|
-
* was not allocated by libgit2 and should not be resized and/or freed,
|
|
46
|
-
* then `asize` will be set to zero.
|
|
47
|
-
*
|
|
48
35
|
* Some APIs may occasionally do something slightly unusual with a buffer,
|
|
49
36
|
* such as setting `ptr` to a value that was passed in by the user. In
|
|
50
37
|
* those cases, the behavior will be clearly documented by the API.
|
|
51
38
|
*/
|
|
52
39
|
typedef struct {
|
|
40
|
+
/**
|
|
41
|
+
* The buffer contents.
|
|
42
|
+
*
|
|
43
|
+
* `ptr` points to the start of the allocated memory. If it is NULL,
|
|
44
|
+
* then the `git_buf` is considered empty and libgit2 will feel free
|
|
45
|
+
* to overwrite it with new data.
|
|
46
|
+
*/
|
|
53
47
|
char *ptr;
|
|
54
|
-
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* `asize` holds the known total amount of allocated memory if the `ptr`
|
|
51
|
+
* was allocated by libgit2. It may be larger than `size`. If `ptr`
|
|
52
|
+
* was not allocated by libgit2 and should not be resized and/or freed,
|
|
53
|
+
* then `asize` will be set to zero.
|
|
54
|
+
*/
|
|
55
|
+
size_t asize;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* `size` holds the size (in bytes) of the data that is actually used.
|
|
59
|
+
*/
|
|
60
|
+
size_t size;
|
|
55
61
|
} git_buf;
|
|
56
62
|
|
|
57
63
|
/**
|
|
@@ -71,18 +77,6 @@ typedef struct {
|
|
|
71
77
|
*/
|
|
72
78
|
GIT_EXTERN(void) git_buf_dispose(git_buf *buffer);
|
|
73
79
|
|
|
74
|
-
/**
|
|
75
|
-
* Alias of `git_buf_dispose`.
|
|
76
|
-
*
|
|
77
|
-
* This function is directly calls `git_buf_dispose` now and is deprecated.
|
|
78
|
-
* Going forward, we refer to functions freeing the internal state of a
|
|
79
|
-
* structure a `dispose` function, while functions freeing the structure
|
|
80
|
-
* themselves will be called a `free` function.
|
|
81
|
-
*
|
|
82
|
-
* This function is going to be removed in v0.30.0.
|
|
83
|
-
*/
|
|
84
|
-
GIT_EXTERN(void) GIT_DEPRECATED(git_buf_free)(git_buf *buffer);
|
|
85
|
-
|
|
86
80
|
/**
|
|
87
81
|
* Resize the buffer allocation to make more space.
|
|
88
82
|
*
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef INCLUDE_git_cert_h__
|
|
8
|
+
#define INCLUDE_git_cert_h__
|
|
9
|
+
|
|
10
|
+
#include "common.h"
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @file git2/cert.h
|
|
14
|
+
* @brief Git certificate objects
|
|
15
|
+
* @defgroup git_cert Certificate objects
|
|
16
|
+
* @ingroup Git
|
|
17
|
+
* @{
|
|
18
|
+
*/
|
|
19
|
+
GIT_BEGIN_DECL
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Type of host certificate structure that is passed to the check callback
|
|
23
|
+
*/
|
|
24
|
+
typedef enum git_cert_t {
|
|
25
|
+
/**
|
|
26
|
+
* No information about the certificate is available. This may
|
|
27
|
+
* happen when using curl.
|
|
28
|
+
*/
|
|
29
|
+
GIT_CERT_NONE,
|
|
30
|
+
/**
|
|
31
|
+
* The `data` argument to the callback will be a pointer to
|
|
32
|
+
* the DER-encoded data.
|
|
33
|
+
*/
|
|
34
|
+
GIT_CERT_X509,
|
|
35
|
+
/**
|
|
36
|
+
* The `data` argument to the callback will be a pointer to a
|
|
37
|
+
* `git_cert_hostkey` structure.
|
|
38
|
+
*/
|
|
39
|
+
GIT_CERT_HOSTKEY_LIBSSH2,
|
|
40
|
+
/**
|
|
41
|
+
* The `data` argument to the callback will be a pointer to a
|
|
42
|
+
* `git_strarray` with `name:content` strings containing
|
|
43
|
+
* information about the certificate. This is used when using
|
|
44
|
+
* curl.
|
|
45
|
+
*/
|
|
46
|
+
GIT_CERT_STRARRAY,
|
|
47
|
+
} git_cert_t;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Parent type for `git_cert_hostkey` and `git_cert_x509`.
|
|
51
|
+
*/
|
|
52
|
+
struct git_cert {
|
|
53
|
+
/**
|
|
54
|
+
* Type of certificate. A `GIT_CERT_` value.
|
|
55
|
+
*/
|
|
56
|
+
git_cert_t cert_type;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Callback for the user's custom certificate checks.
|
|
61
|
+
*
|
|
62
|
+
* @param cert The host certificate
|
|
63
|
+
* @param valid Whether the libgit2 checks (OpenSSL or WinHTTP) think
|
|
64
|
+
* this certificate is valid
|
|
65
|
+
* @param host Hostname of the host libgit2 connected to
|
|
66
|
+
* @param payload Payload provided by the caller
|
|
67
|
+
* @return 0 to proceed with the connection, < 0 to fail the connection
|
|
68
|
+
* or > 0 to indicate that the callback refused to act and that
|
|
69
|
+
* the existing validity determination should be honored
|
|
70
|
+
*/
|
|
71
|
+
typedef int GIT_CALLBACK(git_transport_certificate_check_cb)(git_cert *cert, int valid, const char *host, void *payload);
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Type of SSH host fingerprint
|
|
75
|
+
*/
|
|
76
|
+
typedef enum {
|
|
77
|
+
/** MD5 is available */
|
|
78
|
+
GIT_CERT_SSH_MD5 = (1 << 0),
|
|
79
|
+
/** SHA-1 is available */
|
|
80
|
+
GIT_CERT_SSH_SHA1 = (1 << 1),
|
|
81
|
+
/** SHA-256 is available */
|
|
82
|
+
GIT_CERT_SSH_SHA256 = (1 << 2),
|
|
83
|
+
} git_cert_ssh_t;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Hostkey information taken from libssh2
|
|
87
|
+
*/
|
|
88
|
+
typedef struct {
|
|
89
|
+
git_cert parent; /**< The parent cert */
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* A hostkey type from libssh2, either
|
|
93
|
+
* `GIT_CERT_SSH_MD5` or `GIT_CERT_SSH_SHA1`
|
|
94
|
+
*/
|
|
95
|
+
git_cert_ssh_t type;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Hostkey hash. If type has `GIT_CERT_SSH_MD5` set, this will
|
|
99
|
+
* have the MD5 hash of the hostkey.
|
|
100
|
+
*/
|
|
101
|
+
unsigned char hash_md5[16];
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Hostkey hash. If type has `GIT_CERT_SSH_SHA1` set, this will
|
|
105
|
+
* have the SHA-1 hash of the hostkey.
|
|
106
|
+
*/
|
|
107
|
+
unsigned char hash_sha1[20];
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Hostkey hash. If type has `GIT_CERT_SSH_SHA256` set, this will
|
|
111
|
+
* have the SHA-256 hash of the hostkey.
|
|
112
|
+
*/
|
|
113
|
+
unsigned char hash_sha256[32];
|
|
114
|
+
} git_cert_hostkey;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* X.509 certificate information
|
|
118
|
+
*/
|
|
119
|
+
typedef struct {
|
|
120
|
+
git_cert parent; /**< The parent cert */
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Pointer to the X.509 certificate data
|
|
124
|
+
*/
|
|
125
|
+
void *data;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Length of the memory block pointed to by `data`.
|
|
129
|
+
*/
|
|
130
|
+
size_t len;
|
|
131
|
+
} git_cert_x509;
|
|
132
|
+
|
|
133
|
+
/** @} */
|
|
134
|
+
GIT_END_DECL
|
|
135
|
+
#endif
|