rugged 0.27.9 → 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 +98 -54
- data/vendor/libgit2/COPYING +28 -0
- data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
- 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/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/FindmbedTLS.cmake +93 -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/CMakeLists.txt +2 -0
- data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -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.h +5 -0
- 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 +38 -20
- data/vendor/libgit2/include/git2/blame.h +42 -25
- data/vendor/libgit2/include/git2/blob.h +45 -13
- data/vendor/libgit2/include/git2/branch.h +1 -1
- data/vendor/libgit2/include/git2/buffer.h +22 -16
- data/vendor/libgit2/include/git2/cert.h +135 -0
- data/vendor/libgit2/include/git2/checkout.h +65 -32
- data/vendor/libgit2/include/git2/cherrypick.h +9 -7
- data/vendor/libgit2/include/git2/clone.h +12 -10
- data/vendor/libgit2/include/git2/commit.h +53 -3
- data/vendor/libgit2/include/git2/common.h +60 -8
- data/vendor/libgit2/include/git2/config.h +30 -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 +32 -9
- data/vendor/libgit2/include/git2/diff.h +208 -156
- data/vendor/libgit2/include/git2/errors.h +54 -46
- data/vendor/libgit2/include/git2/filter.h +8 -0
- data/vendor/libgit2/include/git2/ignore.h +2 -2
- data/vendor/libgit2/include/git2/index.h +74 -52
- data/vendor/libgit2/include/git2/indexer.h +76 -6
- data/vendor/libgit2/include/git2/mailmap.h +115 -0
- data/vendor/libgit2/include/git2/merge.h +35 -18
- 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 +14 -8
- data/vendor/libgit2/include/git2/rebase.h +53 -6
- data/vendor/libgit2/include/git2/refs.h +33 -15
- data/vendor/libgit2/include/git2/refspec.h +17 -0
- data/vendor/libgit2/include/git2/remote.h +123 -24
- data/vendor/libgit2/include/git2/repository.h +76 -39
- data/vendor/libgit2/include/git2/revert.h +6 -4
- 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 +15 -12
- data/vendor/libgit2/include/git2/status.h +33 -20
- data/vendor/libgit2/include/git2/submodule.h +30 -12
- data/vendor/libgit2/include/git2/sys/alloc.h +101 -0
- 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/index.h +3 -0
- data/vendor/libgit2/include/git2/sys/mempack.h +35 -35
- data/vendor/libgit2/include/git2/sys/merge.h +9 -4
- data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
- data/vendor/libgit2/include/git2/sys/path.h +64 -0
- 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/transaction.h +1 -0
- 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 +33 -111
- data/vendor/libgit2/include/git2/version.h +4 -4
- data/vendor/libgit2/include/git2/worktree.h +48 -13
- data/vendor/libgit2/src/CMakeLists.txt +96 -164
- data/vendor/libgit2/src/alloc.c +43 -0
- data/vendor/libgit2/src/alloc.h +40 -0
- data/vendor/libgit2/src/allocators/stdalloc.c +119 -0
- data/vendor/libgit2/src/{streams/curl.h → allocators/stdalloc.h} +5 -5
- 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 +15 -8
- data/vendor/libgit2/src/apply.c +537 -31
- data/vendor/libgit2/src/apply.h +3 -1
- data/vendor/libgit2/src/array.h +2 -2
- data/vendor/libgit2/src/attr.c +81 -75
- data/vendor/libgit2/src/attr_file.c +207 -121
- data/vendor/libgit2/src/attr_file.h +9 -9
- data/vendor/libgit2/src/attrcache.c +51 -53
- data/vendor/libgit2/src/attrcache.h +2 -1
- data/vendor/libgit2/src/blame.c +47 -20
- data/vendor/libgit2/src/blame.h +2 -1
- data/vendor/libgit2/src/blame_git.c +37 -20
- data/vendor/libgit2/src/blob.c +128 -42
- data/vendor/libgit2/src/blob.h +19 -2
- data/vendor/libgit2/src/branch.c +67 -43
- data/vendor/libgit2/src/buf_text.c +7 -6
- data/vendor/libgit2/src/buffer.c +69 -57
- data/vendor/libgit2/src/buffer.h +1 -1
- 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 +109 -90
- data/vendor/libgit2/src/cherrypick.c +15 -9
- data/vendor/libgit2/src/clone.c +49 -27
- data/vendor/libgit2/src/clone.h +4 -0
- data/vendor/libgit2/src/commit.c +117 -49
- data/vendor/libgit2/src/commit.h +7 -0
- data/vendor/libgit2/src/commit_list.c +30 -78
- data/vendor/libgit2/src/commit_list.h +2 -2
- data/vendor/libgit2/src/common.h +27 -91
- data/vendor/libgit2/src/config.c +194 -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 +439 -753
- data/vendor/libgit2/src/config_mem.c +220 -0
- data/vendor/libgit2/src/config_parse.c +114 -63
- data/vendor/libgit2/src/config_parse.h +17 -16
- data/vendor/libgit2/src/config_snapshot.c +206 -0
- data/vendor/libgit2/src/crlf.c +219 -190
- data/vendor/libgit2/src/delta.c +25 -18
- data/vendor/libgit2/src/describe.c +42 -41
- data/vendor/libgit2/src/diff.c +53 -68
- data/vendor/libgit2/src/diff.h +2 -1
- data/vendor/libgit2/src/diff_driver.c +47 -49
- data/vendor/libgit2/src/diff_file.c +19 -17
- data/vendor/libgit2/src/diff_file.h +1 -1
- data/vendor/libgit2/src/diff_generate.c +162 -106
- 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 +42 -30
- data/vendor/libgit2/src/diff_stats.c +22 -7
- data/vendor/libgit2/src/diff_tform.c +16 -16
- data/vendor/libgit2/src/diff_xdiff.c +15 -3
- data/vendor/libgit2/src/errors.c +51 -39
- data/vendor/libgit2/src/errors.h +81 -0
- data/vendor/libgit2/src/features.h.in +11 -3
- data/vendor/libgit2/src/fetch.c +10 -5
- data/vendor/libgit2/src/fetchhead.c +17 -17
- data/vendor/libgit2/src/filebuf.c +32 -36
- data/vendor/libgit2/src/filebuf.h +2 -2
- data/vendor/libgit2/src/filter.c +46 -38
- data/vendor/libgit2/src/filter.h +0 -10
- data/vendor/libgit2/src/{fileops.c → futils.c} +80 -73
- data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
- data/vendor/libgit2/src/global.c +48 -63
- data/vendor/libgit2/src/global.h +0 -2
- data/vendor/libgit2/src/hash.c +61 -0
- data/vendor/libgit2/src/hash.h +20 -19
- data/vendor/libgit2/src/hash/sha1.h +38 -0
- 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/sha1/mbedtls.c +46 -0
- data/vendor/libgit2/src/hash/sha1/mbedtls.h +19 -0
- 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/{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
- 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/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 +43 -47
- data/vendor/libgit2/src/index.c +337 -232
- data/vendor/libgit2/src/index.h +17 -1
- data/vendor/libgit2/src/indexer.c +346 -175
- data/vendor/libgit2/src/integer.h +71 -26
- data/vendor/libgit2/src/iterator.c +142 -70
- data/vendor/libgit2/src/iterator.h +15 -0
- data/vendor/libgit2/src/khash.h +3 -1
- data/vendor/libgit2/src/mailmap.c +485 -0
- data/vendor/libgit2/src/mailmap.h +35 -0
- data/vendor/libgit2/src/map.h +1 -1
- data/vendor/libgit2/src/merge.c +144 -100
- 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 +16 -11
- 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 +116 -93
- data/vendor/libgit2/src/odb.h +8 -7
- data/vendor/libgit2/src/odb_loose.c +62 -55
- data/vendor/libgit2/src/odb_mempack.c +21 -34
- data/vendor/libgit2/src/odb_pack.c +18 -14
- 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 +88 -87
- data/vendor/libgit2/src/pack-objects.h +2 -8
- data/vendor/libgit2/src/pack.c +99 -101
- data/vendor/libgit2/src/pack.h +17 -19
- data/vendor/libgit2/src/parse.c +10 -0
- data/vendor/libgit2/src/parse.h +3 -3
- data/vendor/libgit2/src/patch.c +4 -4
- data/vendor/libgit2/src/patch_generate.c +20 -20
- data/vendor/libgit2/src/patch_parse.c +151 -63
- data/vendor/libgit2/src/path.c +169 -125
- data/vendor/libgit2/src/path.h +3 -71
- data/vendor/libgit2/src/pathspec.c +19 -19
- 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 +37 -31
- 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 +115 -59
- data/vendor/libgit2/src/refdb.c +15 -3
- data/vendor/libgit2/src/refdb_fs.c +381 -254
- data/vendor/libgit2/src/reflog.c +13 -15
- data/vendor/libgit2/src/refs.c +118 -88
- data/vendor/libgit2/src/refs.h +5 -3
- data/vendor/libgit2/src/refspec.c +56 -37
- data/vendor/libgit2/src/refspec.h +1 -1
- data/vendor/libgit2/src/regexp.c +221 -0
- data/vendor/libgit2/src/regexp.h +97 -0
- data/vendor/libgit2/src/remote.c +266 -215
- data/vendor/libgit2/src/remote.h +11 -2
- data/vendor/libgit2/src/repository.c +280 -225
- data/vendor/libgit2/src/repository.h +52 -40
- data/vendor/libgit2/src/reset.c +8 -8
- data/vendor/libgit2/src/revert.c +14 -9
- data/vendor/libgit2/src/revparse.c +47 -48
- data/vendor/libgit2/src/revwalk.c +120 -57
- data/vendor/libgit2/src/revwalk.h +22 -1
- data/vendor/libgit2/src/settings.c +47 -10
- data/vendor/libgit2/src/signature.c +11 -11
- data/vendor/libgit2/src/sortedcache.c +22 -36
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +125 -99
- data/vendor/libgit2/src/status.c +28 -22
- data/vendor/libgit2/src/stream.h +17 -2
- data/vendor/libgit2/src/streams/mbedtls.c +483 -0
- data/vendor/libgit2/src/streams/mbedtls.h +23 -0
- data/vendor/libgit2/src/streams/openssl.c +224 -114
- data/vendor/libgit2/src/streams/openssl.h +4 -108
- 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 +50 -19
- 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 +272 -216
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +29 -19
- data/vendor/libgit2/src/tag.c +41 -28
- data/vendor/libgit2/src/tag.h +2 -1
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +3 -3
- data/vendor/libgit2/src/trailer.c +52 -38
- data/vendor/libgit2/src/transaction.c +30 -29
- data/vendor/libgit2/src/transport.c +5 -5
- data/vendor/libgit2/src/transports/auth.c +15 -11
- data/vendor/libgit2/src/transports/auth.h +10 -3
- data/vendor/libgit2/src/transports/auth_negotiate.c +33 -18
- 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 +26 -31
- data/vendor/libgit2/src/transports/http.c +881 -348
- data/vendor/libgit2/src/transports/http.h +2 -0
- data/vendor/libgit2/src/transports/local.c +35 -35
- data/vendor/libgit2/src/transports/smart.c +70 -47
- data/vendor/libgit2/src/transports/smart.h +3 -4
- data/vendor/libgit2/src/transports/smart_pkt.c +43 -40
- data/vendor/libgit2/src/transports/smart_protocol.c +96 -116
- data/vendor/libgit2/src/transports/ssh.c +77 -66
- data/vendor/libgit2/src/transports/winhttp.c +318 -314
- data/vendor/libgit2/src/tree-cache.c +19 -12
- data/vendor/libgit2/src/tree.c +103 -142
- data/vendor/libgit2/src/tree.h +1 -12
- 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 +70 -56
- data/vendor/libgit2/src/util.h +28 -156
- data/vendor/libgit2/src/vector.c +4 -4
- 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 +3 -3
- 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 +70 -45
- 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 +3 -2
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +26 -75
- 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 +95 -60
- data/vendor/libgit2/src/worktree.h +2 -0
- data/vendor/libgit2/src/xdiff/xdiffi.c +7 -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 +122 -33
- 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
@@ -36,10 +36,9 @@ typedef enum {
|
|
36
36
|
/**
|
37
37
|
* Describe options structure
|
38
38
|
*
|
39
|
-
* Initialize with `GIT_DESCRIBE_OPTIONS_INIT
|
40
|
-
*
|
39
|
+
* Initialize with `GIT_DESCRIBE_OPTIONS_INIT`. Alternatively, you can
|
40
|
+
* use `git_describe_options_init`.
|
41
41
|
*
|
42
|
-
* git_describe_options opts = GIT_DESCRIBE_OPTIONS_INIT;
|
43
42
|
*/
|
44
43
|
typedef struct git_describe_options {
|
45
44
|
unsigned int version;
|
@@ -70,10 +69,24 @@ typedef struct git_describe_options {
|
|
70
69
|
GIT_DESCRIBE_DEFAULT_MAX_CANDIDATES_TAGS, \
|
71
70
|
}
|
72
71
|
|
73
|
-
|
72
|
+
/**
|
73
|
+
* Initialize git_describe_options structure
|
74
|
+
*
|
75
|
+
* Initializes a `git_describe_options` with default values. Equivalent to creating
|
76
|
+
* an instance with GIT_DESCRIBE_OPTIONS_INIT.
|
77
|
+
*
|
78
|
+
* @param opts The `git_describe_options` struct to initialize.
|
79
|
+
* @param version The struct version; pass `GIT_DESCRIBE_OPTIONS_VERSION`.
|
80
|
+
* @return Zero on success; -1 on failure.
|
81
|
+
*/
|
82
|
+
GIT_EXTERN(int) git_describe_options_init(git_describe_options *opts, unsigned int version);
|
74
83
|
|
75
84
|
/**
|
76
|
-
*
|
85
|
+
* Describe format options structure
|
86
|
+
*
|
87
|
+
* Initialize with `GIT_DESCRIBE_FORMAT_OPTIONS_INIT`. Alternatively, you can
|
88
|
+
* use `git_describe_format_options_init`.
|
89
|
+
*
|
77
90
|
*/
|
78
91
|
typedef struct {
|
79
92
|
unsigned int version;
|
@@ -103,7 +116,17 @@ typedef struct {
|
|
103
116
|
GIT_DESCRIBE_DEFAULT_ABBREVIATED_SIZE, \
|
104
117
|
}
|
105
118
|
|
106
|
-
|
119
|
+
/**
|
120
|
+
* Initialize git_describe_format_options structure
|
121
|
+
*
|
122
|
+
* Initializes a `git_describe_format_options` with default values. Equivalent to creating
|
123
|
+
* an instance with GIT_DESCRIBE_FORMAT_OPTIONS_INIT.
|
124
|
+
*
|
125
|
+
* @param opts The `git_describe_format_options` struct to initialize.
|
126
|
+
* @param version The struct version; pass `GIT_DESCRIBE_FORMAT_OPTIONS_VERSION`.
|
127
|
+
* @return Zero on success; -1 on failure.
|
128
|
+
*/
|
129
|
+
GIT_EXTERN(int) git_describe_format_options_init(git_describe_format_options *opts, unsigned int version);
|
107
130
|
|
108
131
|
/**
|
109
132
|
* A struct that stores the result of a describe operation.
|
@@ -118,7 +141,7 @@ typedef struct git_describe_result git_describe_result;
|
|
118
141
|
* @param result pointer to store the result. You must free this once
|
119
142
|
* you're done with it.
|
120
143
|
* @param committish a committish to describe
|
121
|
-
* @param opts the lookup options
|
144
|
+
* @param opts the lookup options (or NULL for defaults)
|
122
145
|
*/
|
123
146
|
GIT_EXTERN(int) git_describe_commit(
|
124
147
|
git_describe_result **result,
|
@@ -135,7 +158,7 @@ GIT_EXTERN(int) git_describe_commit(
|
|
135
158
|
* @param out pointer to store the result. You must free this once
|
136
159
|
* you're done with it.
|
137
160
|
* @param repo the repository in which to perform the describe
|
138
|
-
* @param opts the lookup options
|
161
|
+
* @param opts the lookup options (or NULL for defaults)
|
139
162
|
*/
|
140
163
|
GIT_EXTERN(int) git_describe_workdir(
|
141
164
|
git_describe_result **out,
|
@@ -148,7 +171,7 @@ GIT_EXTERN(int) git_describe_workdir(
|
|
148
171
|
* @param out The buffer to store the result
|
149
172
|
* @param result the result from `git_describe_commit()` or
|
150
173
|
* `git_describe_workdir()`.
|
151
|
-
* @param opts the formatting options
|
174
|
+
* @param opts the formatting options (or NULL for defaults)
|
152
175
|
*/
|
153
176
|
GIT_EXTERN(int) git_describe_format(
|
154
177
|
git_buf *out,
|
@@ -16,50 +16,6 @@
|
|
16
16
|
/**
|
17
17
|
* @file git2/diff.h
|
18
18
|
* @brief Git tree and file differencing routines.
|
19
|
-
*
|
20
|
-
* Overview
|
21
|
-
* --------
|
22
|
-
*
|
23
|
-
* Calculating diffs is generally done in two phases: building a list of
|
24
|
-
* diffs then traversing it. This makes is easier to share logic across
|
25
|
-
* the various types of diffs (tree vs tree, workdir vs index, etc.), and
|
26
|
-
* also allows you to insert optional diff post-processing phases,
|
27
|
-
* such as rename detection, in between the steps. When you are done with
|
28
|
-
* a diff object, it must be freed.
|
29
|
-
*
|
30
|
-
* Terminology
|
31
|
-
* -----------
|
32
|
-
*
|
33
|
-
* To understand the diff APIs, you should know the following terms:
|
34
|
-
*
|
35
|
-
* - A `diff` represents the cumulative list of differences between two
|
36
|
-
* snapshots of a repository (possibly filtered by a set of file name
|
37
|
-
* patterns). This is the `git_diff` object.
|
38
|
-
*
|
39
|
-
* - A `delta` is a file pair with an old and new revision. The old version
|
40
|
-
* may be absent if the file was just created and the new version may be
|
41
|
-
* absent if the file was deleted. A diff is mostly just a list of deltas.
|
42
|
-
*
|
43
|
-
* - A `binary` file / delta is a file (or pair) for which no text diffs
|
44
|
-
* should be generated. A diff can contain delta entries that are
|
45
|
-
* binary, but no diff content will be output for those files. There is
|
46
|
-
* a base heuristic for binary detection and you can further tune the
|
47
|
-
* behavior with git attributes or diff flags and option settings.
|
48
|
-
*
|
49
|
-
* - A `hunk` is a span of modified lines in a delta along with some stable
|
50
|
-
* surrounding context. You can configure the amount of context and other
|
51
|
-
* properties of how hunks are generated. Each hunk also comes with a
|
52
|
-
* header that described where it starts and ends in both the old and new
|
53
|
-
* versions in the delta.
|
54
|
-
*
|
55
|
-
* - A `line` is a range of characters inside a hunk. It could be a context
|
56
|
-
* line (i.e. in both old and new versions), an added line (i.e. only in
|
57
|
-
* the new version), or a removed line (i.e. only in the old version).
|
58
|
-
* Unfortunately, we don't know anything about the encoding of data in the
|
59
|
-
* file being diffed, so we cannot tell you much about the line content.
|
60
|
-
* Line data will not be NUL-byte terminated, however, because it will be
|
61
|
-
* just a span of bytes inside the larger file.
|
62
|
-
*
|
63
19
|
* @ingroup Git
|
64
20
|
* @{
|
65
21
|
*/
|
@@ -163,7 +119,7 @@ typedef enum {
|
|
163
119
|
|
164
120
|
/** Include unreadable files in the diff */
|
165
121
|
GIT_DIFF_INCLUDE_UNREADABLE = (1u << 16),
|
166
|
-
|
122
|
+
|
167
123
|
/** Include unreadable files in the diff */
|
168
124
|
GIT_DIFF_INCLUDE_UNREADABLE_AS_UNTRACKED = (1u << 17),
|
169
125
|
|
@@ -171,6 +127,12 @@ typedef enum {
|
|
171
127
|
* Options controlling how output will be generated
|
172
128
|
*/
|
173
129
|
|
130
|
+
/** Use a heuristic that takes indentation and whitespace into account
|
131
|
+
* which generally can produce better diffs when dealing with ambiguous
|
132
|
+
* diff hunks.
|
133
|
+
*/
|
134
|
+
GIT_DIFF_INDENT_HEURISTIC = (1u << 18),
|
135
|
+
|
174
136
|
/** Treat all files as text, disabling binary attributes & detection */
|
175
137
|
GIT_DIFF_FORCE_TEXT = (1u << 20),
|
176
138
|
/** Treat all files as binary, disabling text diffs */
|
@@ -206,21 +168,27 @@ typedef enum {
|
|
206
168
|
* can apply given diff information to binary files.
|
207
169
|
*/
|
208
170
|
GIT_DIFF_SHOW_BINARY = (1u << 30),
|
209
|
-
|
210
|
-
/** Use a heuristic that takes indentation and whitespace into account
|
211
|
-
* which generally can produce better diffs when dealing with ambiguous
|
212
|
-
* diff hunks.
|
213
|
-
*/
|
214
|
-
GIT_DIFF_INDENT_HEURISTIC = (1u << 31),
|
215
171
|
} git_diff_option_t;
|
216
172
|
|
217
173
|
/**
|
218
174
|
* The diff object that contains all individual file deltas.
|
219
175
|
*
|
176
|
+
* A `diff` represents the cumulative list of differences between two
|
177
|
+
* snapshots of a repository (possibly filtered by a set of file name
|
178
|
+
* patterns).
|
179
|
+
*
|
180
|
+
* Calculating diffs is generally done in two phases: building a list of
|
181
|
+
* diffs then traversing it. This makes is easier to share logic across
|
182
|
+
* the various types of diffs (tree vs tree, workdir vs index, etc.), and
|
183
|
+
* also allows you to insert optional diff post-processing phases,
|
184
|
+
* such as rename detection, in between the steps. When you are done with
|
185
|
+
* a diff object, it must be freed.
|
186
|
+
*
|
220
187
|
* This is an opaque structure which will be allocated by one of the diff
|
221
|
-
* generator functions below (such as `git_diff_tree_to_tree`).
|
188
|
+
* generator functions below (such as `git_diff_tree_to_tree`). You are
|
222
189
|
* responsible for releasing the object memory when done, using the
|
223
190
|
* `git_diff_free()` function.
|
191
|
+
*
|
224
192
|
*/
|
225
193
|
typedef struct git_diff git_diff;
|
226
194
|
|
@@ -290,17 +258,21 @@ typedef enum {
|
|
290
258
|
* abbreviated to something reasonable, like 7 characters.
|
291
259
|
*/
|
292
260
|
typedef struct {
|
293
|
-
git_oid
|
294
|
-
const char
|
295
|
-
|
296
|
-
uint32_t
|
297
|
-
uint16_t
|
298
|
-
uint16_t
|
261
|
+
git_oid id;
|
262
|
+
const char *path;
|
263
|
+
git_object_size_t size;
|
264
|
+
uint32_t flags;
|
265
|
+
uint16_t mode;
|
266
|
+
uint16_t id_abbrev;
|
299
267
|
} git_diff_file;
|
300
268
|
|
301
269
|
/**
|
302
270
|
* Description of changes to one entry.
|
303
271
|
*
|
272
|
+
* A `delta` is a file pair with an old and new revision. The old version
|
273
|
+
* may be absent if the file was just created and the new version may be
|
274
|
+
* absent if the file was deleted. A diff is mostly just a list of deltas.
|
275
|
+
*
|
304
276
|
* When iterating over a diff, this will be passed to most callbacks and
|
305
277
|
* you can use the contents to understand exactly what has changed.
|
306
278
|
*
|
@@ -346,7 +318,7 @@ typedef struct {
|
|
346
318
|
/**
|
347
319
|
* Diff notification callback function.
|
348
320
|
*
|
349
|
-
* The callback will be called for each file, just before the `
|
321
|
+
* The callback will be called for each file, just before the `git_diff_delta`
|
350
322
|
* gets inserted into the diff.
|
351
323
|
*
|
352
324
|
* When the callback:
|
@@ -356,7 +328,7 @@ typedef struct {
|
|
356
328
|
* - returns 0, the delta is inserted into the diff, and the diff process
|
357
329
|
* continues.
|
358
330
|
*/
|
359
|
-
typedef int (
|
331
|
+
typedef int GIT_CALLBACK(git_diff_notify_cb)(
|
360
332
|
const git_diff *diff_so_far,
|
361
333
|
const git_diff_delta *delta_to_add,
|
362
334
|
const char *matched_pathspec,
|
@@ -372,7 +344,7 @@ typedef int (*git_diff_notify_cb)(
|
|
372
344
|
* @param new_path The path to the new file or NULL.
|
373
345
|
* @return Non-zero to abort the diff.
|
374
346
|
*/
|
375
|
-
typedef int (
|
347
|
+
typedef int GIT_CALLBACK(git_diff_progress_cb)(
|
376
348
|
const git_diff *diff_so_far,
|
377
349
|
const char *old_path,
|
378
350
|
const char *new_path,
|
@@ -385,46 +357,79 @@ typedef int (*git_diff_progress_cb)(
|
|
385
357
|
* values. Similarly, passing NULL for the options structure will
|
386
358
|
* give the defaults. The default values are marked below.
|
387
359
|
*
|
388
|
-
* - `flags` is a combination of the `git_diff_option_t` values above
|
389
|
-
* - `context_lines` is the number of unchanged lines that define the
|
390
|
-
* boundary of a hunk (and to display before and after)
|
391
|
-
* - `interhunk_lines` is the maximum number of unchanged lines between
|
392
|
-
* hunk boundaries before the hunks will be merged into a one.
|
393
|
-
* - `old_prefix` is the virtual "directory" to prefix to old file names
|
394
|
-
* in hunk headers (default "a")
|
395
|
-
* - `new_prefix` is the virtual "directory" to prefix to new file names
|
396
|
-
* in hunk headers (default "b")
|
397
|
-
* - `pathspec` is an array of paths / fnmatch patterns to constrain diff
|
398
|
-
* - `max_size` is a file size (in bytes) above which a blob will be marked
|
399
|
-
* as binary automatically; pass a negative value to disable.
|
400
|
-
* - `notify_cb` is an optional callback function, notifying the consumer of
|
401
|
-
* changes to the diff as new deltas are added.
|
402
|
-
* - `progress_cb` is an optional callback function, notifying the consumer of
|
403
|
-
* which files are being examined as the diff is generated.
|
404
|
-
* - `payload` is the payload to pass to the callback functions.
|
405
|
-
* - `ignore_submodules` overrides the submodule ignore setting for all
|
406
|
-
* submodules in the diff.
|
407
360
|
*/
|
408
361
|
typedef struct {
|
409
362
|
unsigned int version; /**< version for the struct */
|
410
|
-
|
363
|
+
|
364
|
+
/**
|
365
|
+
* A combination of `git_diff_option_t` values above.
|
366
|
+
* Defaults to GIT_DIFF_NORMAL
|
367
|
+
*/
|
368
|
+
uint32_t flags;
|
411
369
|
|
412
370
|
/* options controlling which files are in the diff */
|
413
371
|
|
414
|
-
|
415
|
-
|
372
|
+
/** Overrides the submodule ignore setting for all submodules in the diff. */
|
373
|
+
git_submodule_ignore_t ignore_submodules;
|
374
|
+
|
375
|
+
/**
|
376
|
+
* An array of paths / fnmatch patterns to constrain diff.
|
377
|
+
* All paths are included by default.
|
378
|
+
*/
|
379
|
+
git_strarray pathspec;
|
380
|
+
|
381
|
+
/**
|
382
|
+
* An optional callback function, notifying the consumer of changes to
|
383
|
+
* the diff as new deltas are added.
|
384
|
+
*/
|
416
385
|
git_diff_notify_cb notify_cb;
|
386
|
+
|
387
|
+
/**
|
388
|
+
* An optional callback function, notifying the consumer of which files
|
389
|
+
* are being examined as the diff is generated.
|
390
|
+
*/
|
417
391
|
git_diff_progress_cb progress_cb;
|
392
|
+
|
393
|
+
/** The payload to pass to the callback functions. */
|
418
394
|
void *payload;
|
419
395
|
|
420
396
|
/* options controlling how to diff text is generated */
|
421
397
|
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
398
|
+
/**
|
399
|
+
* The number of unchanged lines that define the boundary of a hunk
|
400
|
+
* (and to display before and after). Defaults to 3.
|
401
|
+
*/
|
402
|
+
uint32_t context_lines;
|
403
|
+
/**
|
404
|
+
* The maximum number of unchanged lines between hunk boundaries before
|
405
|
+
* the hunks will be merged into one. Defaults to 0.
|
406
|
+
*/
|
407
|
+
uint32_t interhunk_lines;
|
408
|
+
|
409
|
+
/**
|
410
|
+
* The abbreviation length to use when formatting object ids.
|
411
|
+
* Defaults to the value of 'core.abbrev' from the config, or 7 if unset.
|
412
|
+
*/
|
413
|
+
uint16_t id_abbrev;
|
414
|
+
|
415
|
+
/**
|
416
|
+
* A size (in bytes) above which a blob will be marked as binary
|
417
|
+
* automatically; pass a negative value to disable.
|
418
|
+
* Defaults to 512MB.
|
419
|
+
*/
|
420
|
+
git_off_t max_size;
|
421
|
+
|
422
|
+
/**
|
423
|
+
* The virtual "directory" prefix for old file names in hunk headers.
|
424
|
+
* Default is "a".
|
425
|
+
*/
|
426
|
+
const char *old_prefix;
|
427
|
+
|
428
|
+
/**
|
429
|
+
* The virtual "directory" prefix for new file names in hunk headers.
|
430
|
+
* Defaults to "b".
|
431
|
+
*/
|
432
|
+
const char *new_prefix;
|
428
433
|
} git_diff_options;
|
429
434
|
|
430
435
|
/* The current version of the diff options structure */
|
@@ -437,14 +442,16 @@ typedef struct {
|
|
437
442
|
{GIT_DIFF_OPTIONS_VERSION, 0, GIT_SUBMODULE_IGNORE_UNSPECIFIED, {NULL,0}, NULL, NULL, NULL, 3}
|
438
443
|
|
439
444
|
/**
|
440
|
-
*
|
441
|
-
*
|
445
|
+
* Initialize git_diff_options structure
|
446
|
+
*
|
447
|
+
* Initializes a `git_diff_options` with default values. Equivalent to creating
|
448
|
+
* an instance with GIT_DIFF_OPTIONS_INIT.
|
442
449
|
*
|
443
|
-
* @param opts The `git_diff_options` struct to initialize
|
444
|
-
* @param version
|
450
|
+
* @param opts The `git_diff_options` struct to initialize.
|
451
|
+
* @param version The struct version; pass `GIT_DIFF_OPTIONS_VERSION`.
|
445
452
|
* @return Zero on success; -1 on failure.
|
446
453
|
*/
|
447
|
-
GIT_EXTERN(int)
|
454
|
+
GIT_EXTERN(int) git_diff_options_init(
|
448
455
|
git_diff_options *opts,
|
449
456
|
unsigned int version);
|
450
457
|
|
@@ -455,7 +462,7 @@ GIT_EXTERN(int) git_diff_init_options(
|
|
455
462
|
* @param progress Goes from 0 to 1 over the diff
|
456
463
|
* @param payload User-specified pointer from foreach function
|
457
464
|
*/
|
458
|
-
typedef int (
|
465
|
+
typedef int GIT_CALLBACK(git_diff_file_cb)(
|
459
466
|
const git_diff_delta *delta,
|
460
467
|
float progress,
|
461
468
|
void *payload);
|
@@ -494,12 +501,21 @@ typedef struct {
|
|
494
501
|
size_t inflatedlen;
|
495
502
|
} git_diff_binary_file;
|
496
503
|
|
497
|
-
/**
|
504
|
+
/**
|
505
|
+
* Structure describing the binary contents of a diff.
|
506
|
+
*
|
507
|
+
* A `binary` file / delta is a file (or pair) for which no text diffs
|
508
|
+
* should be generated. A diff can contain delta entries that are
|
509
|
+
* binary, but no diff content will be output for those files. There is
|
510
|
+
* a base heuristic for binary detection and you can further tune the
|
511
|
+
* behavior with git attributes or diff flags and option settings.
|
512
|
+
*/
|
498
513
|
typedef struct {
|
499
514
|
/**
|
500
|
-
* Whether there is data in this binary structure or not.
|
501
|
-
*
|
502
|
-
* this is `
|
515
|
+
* Whether there is data in this binary structure or not.
|
516
|
+
*
|
517
|
+
* If this is `1`, then this was produced and included binary content.
|
518
|
+
* If this is `0` then this was generated knowing only that a binary
|
503
519
|
* file changed but without providing the data, probably from a patch
|
504
520
|
* that said `Binary files a/file.txt and b/file.txt differ`.
|
505
521
|
*/
|
@@ -509,16 +525,22 @@ typedef struct {
|
|
509
525
|
} git_diff_binary;
|
510
526
|
|
511
527
|
/**
|
512
|
-
* When iterating over a diff, callback that will be made for
|
513
|
-
* binary content within the diff.
|
514
|
-
*/
|
515
|
-
typedef int(
|
528
|
+
* When iterating over a diff, callback that will be made for
|
529
|
+
* binary content within the diff.
|
530
|
+
*/
|
531
|
+
typedef int GIT_CALLBACK(git_diff_binary_cb)(
|
516
532
|
const git_diff_delta *delta,
|
517
533
|
const git_diff_binary *binary,
|
518
534
|
void *payload);
|
519
535
|
|
520
536
|
/**
|
521
537
|
* Structure describing a hunk of a diff.
|
538
|
+
*
|
539
|
+
* A `hunk` is a span of modified lines in a delta along with some stable
|
540
|
+
* surrounding context. You can configure the amount of context and other
|
541
|
+
* properties of how hunks are generated. Each hunk also comes with a
|
542
|
+
* header that described where it starts and ends in both the old and new
|
543
|
+
* versions in the delta.
|
522
544
|
*/
|
523
545
|
typedef struct {
|
524
546
|
int old_start; /**< Starting line number in old_file */
|
@@ -532,7 +554,7 @@ typedef struct {
|
|
532
554
|
/**
|
533
555
|
* When iterating over a diff, callback that will be made per hunk.
|
534
556
|
*/
|
535
|
-
typedef int (
|
557
|
+
typedef int GIT_CALLBACK(git_diff_hunk_cb)(
|
536
558
|
const git_diff_delta *delta,
|
537
559
|
const git_diff_hunk *hunk,
|
538
560
|
void *payload);
|
@@ -566,6 +588,14 @@ typedef enum {
|
|
566
588
|
|
567
589
|
/**
|
568
590
|
* Structure describing a line (or data span) of a diff.
|
591
|
+
*
|
592
|
+
* A `line` is a range of characters inside a hunk. It could be a context
|
593
|
+
* line (i.e. in both old and new versions), an added line (i.e. only in
|
594
|
+
* the new version), or a removed line (i.e. only in the old version).
|
595
|
+
* Unfortunately, we don't know anything about the encoding of data in the
|
596
|
+
* file being diffed, so we cannot tell you much about the line content.
|
597
|
+
* Line data will not be NUL-byte terminated, however, because it will be
|
598
|
+
* just a span of bytes inside the larger file.
|
569
599
|
*/
|
570
600
|
typedef struct {
|
571
601
|
char origin; /**< A git_diff_line_t value */
|
@@ -585,7 +615,7 @@ typedef struct {
|
|
585
615
|
* of text. This uses some extra GIT_DIFF_LINE_... constants for output
|
586
616
|
* of lines of file and hunk headers.
|
587
617
|
*/
|
588
|
-
typedef int (
|
618
|
+
typedef int GIT_CALLBACK(git_diff_line_cb)(
|
589
619
|
const git_diff_delta *delta, /**< delta that contains this data */
|
590
620
|
const git_diff_hunk *hunk, /**< hunk containing this data */
|
591
621
|
const git_diff_line *line, /**< line data */
|
@@ -669,14 +699,14 @@ typedef enum {
|
|
669
699
|
* Pluggable similarity metric
|
670
700
|
*/
|
671
701
|
typedef struct {
|
672
|
-
int (
|
702
|
+
int GIT_CALLBACK(file_signature)(
|
673
703
|
void **out, const git_diff_file *file,
|
674
704
|
const char *fullpath, void *payload);
|
675
|
-
int (
|
705
|
+
int GIT_CALLBACK(buffer_signature)(
|
676
706
|
void **out, const git_diff_file *file,
|
677
707
|
const char *buf, size_t buflen, void *payload);
|
678
|
-
void (
|
679
|
-
int (
|
708
|
+
void GIT_CALLBACK(free_signature)(void *sig, void *payload);
|
709
|
+
int GIT_CALLBACK(similarity)(int *score, void *siga, void *sigb, void *payload);
|
680
710
|
void *payload;
|
681
711
|
} git_diff_similarity_metric;
|
682
712
|
|
@@ -684,21 +714,6 @@ typedef struct {
|
|
684
714
|
* Control behavior of rename and copy detection
|
685
715
|
*
|
686
716
|
* These options mostly mimic parameters that can be passed to git-diff.
|
687
|
-
*
|
688
|
-
* - `rename_threshold` is the same as the -M option with a value
|
689
|
-
* - `copy_threshold` is the same as the -C option with a value
|
690
|
-
* - `rename_from_rewrite_threshold` matches the top of the -B option
|
691
|
-
* - `break_rewrite_threshold` matches the bottom of the -B option
|
692
|
-
* - `rename_limit` is the maximum number of matches to consider for
|
693
|
-
* a particular file. This is a little different from the `-l` option
|
694
|
-
* to regular Git because we will still process up to this many matches
|
695
|
-
* before abandoning the search.
|
696
|
-
*
|
697
|
-
* The `metric` option allows you to plug in a custom similarity metric.
|
698
|
-
* Set it to NULL for the default internal metric which is based on sampling
|
699
|
-
* hashes of ranges of data in the file. The default metric is a pretty
|
700
|
-
* good similarity approximation that should work fairly well for both text
|
701
|
-
* and binary data, and is pretty fast with fixed memory overhead.
|
702
717
|
*/
|
703
718
|
typedef struct {
|
704
719
|
unsigned int version;
|
@@ -710,21 +725,49 @@ typedef struct {
|
|
710
725
|
*/
|
711
726
|
uint32_t flags;
|
712
727
|
|
713
|
-
/**
|
728
|
+
/**
|
729
|
+
* Threshold above which similar files will be considered renames.
|
730
|
+
* This is equivalent to the -M option. Defaults to 50.
|
731
|
+
*/
|
714
732
|
uint16_t rename_threshold;
|
715
|
-
|
733
|
+
|
734
|
+
/**
|
735
|
+
* Threshold below which similar files will be eligible to be a rename source.
|
736
|
+
* This is equivalent to the first part of the -B option. Defaults to 50.
|
737
|
+
*/
|
716
738
|
uint16_t rename_from_rewrite_threshold;
|
717
|
-
|
739
|
+
|
740
|
+
/**
|
741
|
+
* Threshold above which similar files will be considered copies.
|
742
|
+
* This is equivalent to the -C option. Defaults to 50.
|
743
|
+
*/
|
718
744
|
uint16_t copy_threshold;
|
719
|
-
|
745
|
+
|
746
|
+
/**
|
747
|
+
* Treshold below which similar files will be split into a delete/add pair.
|
748
|
+
* This is equivalent to the last part of the -B option. Defaults to 60.
|
749
|
+
*/
|
720
750
|
uint16_t break_rewrite_threshold;
|
721
751
|
|
722
|
-
/**
|
723
|
-
*
|
752
|
+
/**
|
753
|
+
* Maximum number of matches to consider for a particular file.
|
754
|
+
*
|
755
|
+
* This is a little different from the `-l` option from Git because we
|
756
|
+
* will still process up to this many matches before abandoning the search.
|
757
|
+
* Defaults to 200.
|
724
758
|
*/
|
725
759
|
size_t rename_limit;
|
726
760
|
|
727
|
-
/**
|
761
|
+
/**
|
762
|
+
* The `metric` option allows you to plug in a custom similarity metric.
|
763
|
+
*
|
764
|
+
* Set it to NULL to use the default internal metric.
|
765
|
+
*
|
766
|
+
* The default metric is based on sampling hashes of ranges of data in
|
767
|
+
* the file, which is a pretty good similarity approximation that should
|
768
|
+
* work fairly well for both text and binary data while still being
|
769
|
+
* pretty fast with a fixed memory overhead.
|
770
|
+
*/
|
728
771
|
git_diff_similarity_metric *metric;
|
729
772
|
} git_diff_find_options;
|
730
773
|
|
@@ -732,14 +775,16 @@ typedef struct {
|
|
732
775
|
#define GIT_DIFF_FIND_OPTIONS_INIT {GIT_DIFF_FIND_OPTIONS_VERSION}
|
733
776
|
|
734
777
|
/**
|
735
|
-
*
|
736
|
-
*
|
778
|
+
* Initialize git_diff_find_options structure
|
779
|
+
*
|
780
|
+
* Initializes a `git_diff_find_options` with default values. Equivalent to creating
|
781
|
+
* an instance with GIT_DIFF_FIND_OPTIONS_INIT.
|
737
782
|
*
|
738
|
-
* @param opts The `git_diff_find_options` struct to initialize
|
739
|
-
* @param version
|
783
|
+
* @param opts The `git_diff_find_options` struct to initialize.
|
784
|
+
* @param version The struct version; pass `GIT_DIFF_FIND_OPTIONS_VERSION`.
|
740
785
|
* @return Zero on success; -1 on failure.
|
741
786
|
*/
|
742
|
-
GIT_EXTERN(int)
|
787
|
+
GIT_EXTERN(int) git_diff_find_options_init(
|
743
788
|
git_diff_find_options *opts,
|
744
789
|
unsigned int version);
|
745
790
|
|
@@ -778,7 +823,7 @@ GIT_EXTERN(int) git_diff_tree_to_tree(
|
|
778
823
|
git_repository *repo,
|
779
824
|
git_tree *old_tree,
|
780
825
|
git_tree *new_tree,
|
781
|
-
const git_diff_options *opts);
|
826
|
+
const git_diff_options *opts);
|
782
827
|
|
783
828
|
/**
|
784
829
|
* Create a diff between a tree and repository index.
|
@@ -804,7 +849,7 @@ GIT_EXTERN(int) git_diff_tree_to_index(
|
|
804
849
|
git_repository *repo,
|
805
850
|
git_tree *old_tree,
|
806
851
|
git_index *index,
|
807
|
-
const git_diff_options *opts);
|
852
|
+
const git_diff_options *opts);
|
808
853
|
|
809
854
|
/**
|
810
855
|
* Create a diff between the repository index and the workdir directory.
|
@@ -830,7 +875,7 @@ GIT_EXTERN(int) git_diff_index_to_workdir(
|
|
830
875
|
git_diff **diff,
|
831
876
|
git_repository *repo,
|
832
877
|
git_index *index,
|
833
|
-
const git_diff_options *opts);
|
878
|
+
const git_diff_options *opts);
|
834
879
|
|
835
880
|
/**
|
836
881
|
* Create a diff between a tree and the working directory.
|
@@ -859,7 +904,7 @@ GIT_EXTERN(int) git_diff_tree_to_workdir(
|
|
859
904
|
git_diff **diff,
|
860
905
|
git_repository *repo,
|
861
906
|
git_tree *old_tree,
|
862
|
-
const git_diff_options *opts);
|
907
|
+
const git_diff_options *opts);
|
863
908
|
|
864
909
|
/**
|
865
910
|
* Create a diff between a tree and the working directory using index data
|
@@ -878,7 +923,7 @@ GIT_EXTERN(int) git_diff_tree_to_workdir_with_index(
|
|
878
923
|
git_diff **diff,
|
879
924
|
git_repository *repo,
|
880
925
|
git_tree *old_tree,
|
881
|
-
const git_diff_options *opts);
|
926
|
+
const git_diff_options *opts);
|
882
927
|
|
883
928
|
/**
|
884
929
|
* Create a diff with the difference between two index objects.
|
@@ -897,7 +942,7 @@ GIT_EXTERN(int) git_diff_index_to_index(
|
|
897
942
|
git_repository *repo,
|
898
943
|
git_index *old_index,
|
899
944
|
git_index *new_index,
|
900
|
-
const git_diff_options *opts);
|
945
|
+
const git_diff_options *opts);
|
901
946
|
|
902
947
|
/**
|
903
948
|
* Merge one diff into another.
|
@@ -1048,6 +1093,7 @@ typedef enum {
|
|
1048
1093
|
GIT_DIFF_FORMAT_RAW = 3u, /**< like git diff --raw */
|
1049
1094
|
GIT_DIFF_FORMAT_NAME_ONLY = 4u, /**< like git diff --name-only */
|
1050
1095
|
GIT_DIFF_FORMAT_NAME_STATUS = 5u, /**< like git diff --name-status */
|
1096
|
+
GIT_DIFF_FORMAT_PATCH_ID = 6u, /**< git diff as used by git patch-id */
|
1051
1097
|
} git_diff_format_t;
|
1052
1098
|
|
1053
1099
|
/**
|
@@ -1333,7 +1379,8 @@ typedef enum {
|
|
1333
1379
|
typedef struct {
|
1334
1380
|
unsigned int version;
|
1335
1381
|
|
1336
|
-
git_diff_format_email_flags_t
|
1382
|
+
/** see `git_diff_format_email_flags_t` above */
|
1383
|
+
uint32_t flags;
|
1337
1384
|
|
1338
1385
|
/** This patch number */
|
1339
1386
|
size_t patch_no;
|
@@ -1390,27 +1437,29 @@ GIT_EXTERN(int) git_diff_commit_as_email(
|
|
1390
1437
|
git_commit *commit,
|
1391
1438
|
size_t patch_no,
|
1392
1439
|
size_t total_patches,
|
1393
|
-
|
1440
|
+
uint32_t flags,
|
1394
1441
|
const git_diff_options *diff_opts);
|
1395
1442
|
|
1396
1443
|
/**
|
1397
|
-
*
|
1444
|
+
* Initialize git_diff_format_email_options structure
|
1398
1445
|
*
|
1399
|
-
*
|
1446
|
+
* Initializes a `git_diff_format_email_options` with default values. Equivalent
|
1447
|
+
* to creating an instance with GIT_DIFF_FORMAT_EMAIL_OPTIONS_INIT.
|
1400
1448
|
*
|
1401
|
-
* @param opts The `
|
1402
|
-
* @param version
|
1449
|
+
* @param opts The `git_blame_options` struct to initialize.
|
1450
|
+
* @param version The struct version; pass `GIT_DIFF_FORMAT_EMAIL_OPTIONS_VERSION`.
|
1403
1451
|
* @return Zero on success; -1 on failure.
|
1404
1452
|
*/
|
1405
|
-
GIT_EXTERN(int)
|
1453
|
+
GIT_EXTERN(int) git_diff_format_email_options_init(
|
1406
1454
|
git_diff_format_email_options *opts,
|
1407
1455
|
unsigned int version);
|
1408
1456
|
|
1409
1457
|
/**
|
1410
1458
|
* Patch ID options structure
|
1411
1459
|
*
|
1412
|
-
* Initialize with `
|
1413
|
-
*
|
1460
|
+
* Initialize with `GIT_PATCHID_OPTIONS_INIT`. Alternatively, you can
|
1461
|
+
* use `git_diff_patchid_options_init`.
|
1462
|
+
*
|
1414
1463
|
*/
|
1415
1464
|
typedef struct git_diff_patchid_options {
|
1416
1465
|
unsigned int version;
|
@@ -1420,12 +1469,16 @@ typedef struct git_diff_patchid_options {
|
|
1420
1469
|
#define GIT_DIFF_PATCHID_OPTIONS_INIT { GIT_DIFF_PATCHID_OPTIONS_VERSION }
|
1421
1470
|
|
1422
1471
|
/**
|
1423
|
-
* Initialize
|
1472
|
+
* Initialize git_diff_patchid_options structure
|
1424
1473
|
*
|
1425
|
-
* Initializes
|
1474
|
+
* Initializes a `git_diff_patchid_options` with default values. Equivalent to
|
1426
1475
|
* creating an instance with `GIT_DIFF_PATCHID_OPTIONS_INIT`.
|
1476
|
+
*
|
1477
|
+
* @param opts The `git_diff_patchid_options` struct to initialize.
|
1478
|
+
* @param version The struct version; pass `GIT_DIFF_PATCHID_OPTIONS_VERSION`.
|
1479
|
+
* @return Zero on success; -1 on failure.
|
1427
1480
|
*/
|
1428
|
-
GIT_EXTERN(int)
|
1481
|
+
GIT_EXTERN(int) git_diff_patchid_options_init(
|
1429
1482
|
git_diff_patchid_options *opts,
|
1430
1483
|
unsigned int version);
|
1431
1484
|
|
@@ -1441,8 +1494,7 @@ GIT_EXTERN(int) git_diff_patchid_init_options(
|
|
1441
1494
|
* defined in git-patch-id(1), and should in fact generate the
|
1442
1495
|
* same IDs as the upstream git project does.
|
1443
1496
|
*
|
1444
|
-
* @param out Pointer where the calculated patch ID
|
1445
|
-
* stored
|
1497
|
+
* @param out Pointer where the calculated patch ID should be stored
|
1446
1498
|
* @param diff The diff to calculate the ID for
|
1447
1499
|
* @param opts Options for how to calculate the patch ID. This is
|
1448
1500
|
* intended for future changes, as currently no options are
|