rugged 0.27.9 → 0.27.10
Sign up to get free protection for your applications and to get access to all the features.
- 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
|