rugged 1.0.0 → 1.2.0
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/LICENSE +1 -0
- data/README.md +3 -3
- data/ext/rugged/rugged.c +7 -4
- data/ext/rugged/rugged_commit.c +1 -1
- data/ext/rugged/rugged_config.c +1 -1
- data/ext/rugged/rugged_object.c +1 -1
- data/ext/rugged/rugged_remote.c +32 -2
- data/ext/rugged/rugged_repo.c +13 -3
- data/lib/rugged/commit.rb +17 -4
- data/lib/rugged/repository.rb +7 -8
- data/lib/rugged/submodule_collection.rb +4 -4
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +41 -74
- data/vendor/libgit2/COPYING +109 -1
- data/vendor/libgit2/cmake/{Modules/AddCFlagIfSupported.cmake → AddCFlagIfSupported.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/EnableWarnings.cmake → EnableWarnings.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindCoreFoundation.cmake → FindCoreFoundation.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindGSSAPI.cmake → FindGSSAPI.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindGSSFramework.cmake → FindGSSFramework.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindHTTP_Parser.cmake → FindHTTP_Parser.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindIconv.cmake → FindIconv.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindPCRE.cmake → FindPCRE.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindPCRE2.cmake → FindPCRE2.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindPkgLibraries.cmake → FindPkgLibraries.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindSecurity.cmake → FindSecurity.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindStatNsec.cmake → FindStatNsec.cmake} +0 -0
- data/vendor/libgit2/cmake/Findfutimens.cmake +14 -0
- data/vendor/libgit2/cmake/{Modules/FindmbedTLS.cmake → FindmbedTLS.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/IdeSplitSources.cmake → IdeSplitSources.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/PkgBuildConfig.cmake → PkgBuildConfig.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/SanitizeBool.cmake → SanitizeBool.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/SelectGSSAPI.cmake → SelectGSSAPI.cmake} +18 -26
- data/vendor/libgit2/cmake/{Modules/SelectHTTPSBackend.cmake → SelectHTTPSBackend.cmake} +29 -32
- data/vendor/libgit2/cmake/{Modules/SelectHashes.cmake → SelectHashes.cmake} +21 -28
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +4 -3
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +24 -10
- data/vendor/libgit2/deps/ntlmclient/compat.h +0 -27
- data/vendor/libgit2/deps/ntlmclient/crypt.h +14 -9
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +20 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +3 -3
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +37 -36
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +4 -3
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +178 -51
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +74 -5
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +164 -135
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +13 -9
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +16 -3
- data/vendor/libgit2/deps/ntlmclient/unicode.h +10 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +16 -27
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.h +20 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +28 -52
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.h +22 -0
- data/vendor/libgit2/deps/ntlmclient/util.c +15 -1
- data/vendor/libgit2/deps/ntlmclient/util.h +2 -1
- data/vendor/libgit2/deps/pcre/LICENCE +93 -0
- data/vendor/libgit2/deps/pcre/pcre.h +2 -2
- data/vendor/libgit2/deps/pcre/pcre_compile.c +29 -17
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +4 -4
- data/vendor/libgit2/deps/pcre/pcreposix.c +2 -3
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -5
- data/vendor/libgit2/deps/zlib/deflate.c +1 -0
- data/vendor/libgit2/include/git2/annotated_commit.h +1 -1
- data/vendor/libgit2/include/git2/apply.h +2 -0
- data/vendor/libgit2/include/git2/attr.h +89 -0
- data/vendor/libgit2/include/git2/blame.h +95 -42
- data/vendor/libgit2/include/git2/blob.h +31 -3
- data/vendor/libgit2/include/git2/branch.h +25 -0
- data/vendor/libgit2/include/git2/cert.h +42 -5
- data/vendor/libgit2/include/git2/checkout.h +28 -12
- data/vendor/libgit2/include/git2/commit.h +35 -19
- data/vendor/libgit2/include/git2/common.h +33 -6
- data/vendor/libgit2/include/git2/config.h +1 -1
- data/vendor/libgit2/include/git2/deprecated.h +248 -8
- data/vendor/libgit2/include/git2/diff.h +35 -20
- data/vendor/libgit2/include/git2/errors.h +8 -7
- data/vendor/libgit2/include/git2/filter.h +57 -17
- data/vendor/libgit2/include/git2/graph.h +20 -2
- data/vendor/libgit2/include/git2/index.h +4 -5
- data/vendor/libgit2/include/git2/indexer.h +2 -1
- data/vendor/libgit2/include/git2/odb.h +44 -20
- data/vendor/libgit2/include/git2/pack.h +1 -1
- data/vendor/libgit2/include/git2/patch.h +8 -0
- data/vendor/libgit2/include/git2/rebase.h +25 -1
- data/vendor/libgit2/include/git2/refs.h +9 -5
- data/vendor/libgit2/include/git2/remote.h +59 -6
- data/vendor/libgit2/include/git2/repository.h +95 -52
- data/vendor/libgit2/include/git2/revparse.h +5 -5
- data/vendor/libgit2/include/git2/status.h +115 -59
- data/vendor/libgit2/include/git2/strarray.h +6 -10
- data/vendor/libgit2/include/git2/submodule.h +9 -0
- data/vendor/libgit2/include/git2/sys/commit_graph.h +174 -0
- data/vendor/libgit2/include/git2/sys/filter.h +49 -28
- data/vendor/libgit2/include/git2/sys/midx.h +74 -0
- data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -0
- data/vendor/libgit2/include/git2/sys/transport.h +1 -0
- data/vendor/libgit2/include/git2/tag.h +12 -0
- data/vendor/libgit2/include/git2/transport.h +1 -1
- data/vendor/libgit2/include/git2/tree.h +2 -14
- data/vendor/libgit2/include/git2/types.h +9 -0
- data/vendor/libgit2/include/git2/version.h +3 -3
- data/vendor/libgit2/include/git2/worktree.h +1 -0
- data/vendor/libgit2/src/CMakeLists.txt +77 -44
- data/vendor/libgit2/src/alloc.c +21 -8
- data/vendor/libgit2/src/allocators/failalloc.c +92 -0
- data/vendor/libgit2/src/allocators/failalloc.h +23 -0
- data/vendor/libgit2/src/allocators/stdalloc.c +41 -10
- data/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
- data/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
- data/vendor/libgit2/src/annotated_commit.c +21 -9
- data/vendor/libgit2/src/apply.c +21 -8
- data/vendor/libgit2/src/array.h +11 -11
- data/vendor/libgit2/src/assert_safe.h +58 -0
- data/vendor/libgit2/src/attr.c +181 -74
- data/vendor/libgit2/src/attr_file.c +92 -42
- data/vendor/libgit2/src/attr_file.h +32 -11
- data/vendor/libgit2/src/attrcache.c +44 -40
- data/vendor/libgit2/src/attrcache.h +4 -5
- data/vendor/libgit2/src/blame.c +28 -15
- data/vendor/libgit2/src/blame_git.c +6 -3
- data/vendor/libgit2/src/blob.c +46 -24
- data/vendor/libgit2/src/branch.c +87 -37
- data/vendor/libgit2/src/buffer.c +339 -27
- data/vendor/libgit2/src/buffer.h +153 -2
- data/vendor/libgit2/src/cache.c +3 -24
- data/vendor/libgit2/src/cache.h +7 -7
- data/vendor/libgit2/src/cc-compat.h +10 -2
- data/vendor/libgit2/src/checkout.c +97 -98
- data/vendor/libgit2/src/cherrypick.c +8 -2
- data/vendor/libgit2/src/clone.c +104 -29
- data/vendor/libgit2/src/commit.c +41 -28
- data/vendor/libgit2/src/commit_graph.c +1209 -0
- data/vendor/libgit2/src/commit_graph.h +162 -0
- data/vendor/libgit2/src/commit_list.c +46 -0
- data/vendor/libgit2/src/commit_list.h +2 -0
- data/vendor/libgit2/src/common.h +26 -2
- data/vendor/libgit2/src/config.c +40 -22
- data/vendor/libgit2/src/config_cache.c +9 -4
- data/vendor/libgit2/src/config_entries.c +35 -27
- data/vendor/libgit2/src/config_file.c +25 -8
- data/vendor/libgit2/src/config_parse.c +5 -7
- data/vendor/libgit2/src/config_snapshot.c +2 -1
- data/vendor/libgit2/src/crlf.c +16 -6
- data/vendor/libgit2/src/date.c +4 -3
- data/vendor/libgit2/src/delta.c +1 -1
- data/vendor/libgit2/src/describe.c +11 -4
- data/vendor/libgit2/src/diff.c +23 -19
- data/vendor/libgit2/src/diff_driver.c +21 -17
- data/vendor/libgit2/src/diff_file.c +5 -7
- data/vendor/libgit2/src/diff_generate.c +56 -28
- data/vendor/libgit2/src/diff_parse.c +2 -3
- data/vendor/libgit2/src/diff_print.c +81 -65
- data/vendor/libgit2/src/diff_stats.c +19 -16
- data/vendor/libgit2/src/diff_tform.c +13 -13
- data/vendor/libgit2/src/diff_xdiff.c +4 -2
- data/vendor/libgit2/src/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/errors.c +26 -19
- data/vendor/libgit2/src/features.h.in +5 -1
- data/vendor/libgit2/src/fetch.c +7 -2
- data/vendor/libgit2/src/fetchhead.c +8 -4
- data/vendor/libgit2/src/filebuf.c +9 -7
- data/vendor/libgit2/src/filter.c +209 -113
- data/vendor/libgit2/src/filter.h +24 -5
- data/vendor/libgit2/src/futils.c +8 -8
- data/vendor/libgit2/src/futils.h +4 -4
- data/vendor/libgit2/src/graph.c +64 -9
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
- data/vendor/libgit2/src/hash/sha1/generic.h +1 -1
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
- data/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
- data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +0 -2
- data/vendor/libgit2/src/hash/sha1/win32.c +15 -11
- data/vendor/libgit2/src/hash.c +16 -13
- data/vendor/libgit2/src/hash.h +1 -1
- data/vendor/libgit2/src/hashsig.c +23 -10
- data/vendor/libgit2/src/ident.c +13 -3
- data/vendor/libgit2/src/idxmap.c +0 -22
- data/vendor/libgit2/src/ignore.c +35 -19
- data/vendor/libgit2/src/index.c +126 -84
- data/vendor/libgit2/src/index.h +1 -1
- data/vendor/libgit2/src/indexer.c +60 -36
- data/vendor/libgit2/src/integer.h +79 -2
- data/vendor/libgit2/src/iterator.c +40 -28
- data/vendor/libgit2/src/iterator.h +1 -1
- data/vendor/libgit2/src/khash.h +2 -11
- data/vendor/libgit2/src/{settings.c → libgit2.c} +125 -49
- data/vendor/libgit2/src/libgit2.h +15 -0
- data/vendor/libgit2/src/mailmap.c +23 -10
- data/vendor/libgit2/src/map.h +3 -3
- data/vendor/libgit2/src/merge.c +108 -46
- data/vendor/libgit2/src/merge.h +2 -1
- data/vendor/libgit2/src/merge_driver.c +19 -13
- data/vendor/libgit2/src/merge_file.c +15 -9
- data/vendor/libgit2/src/message.c +3 -1
- data/vendor/libgit2/src/midx.c +879 -0
- data/vendor/libgit2/src/midx.h +110 -0
- data/vendor/libgit2/src/mwindow.c +214 -95
- data/vendor/libgit2/src/mwindow.h +3 -3
- data/vendor/libgit2/src/net.c +133 -4
- data/vendor/libgit2/src/net.h +16 -2
- data/vendor/libgit2/src/netops.c +6 -4
- data/vendor/libgit2/src/netops.h +2 -2
- data/vendor/libgit2/src/notes.c +10 -10
- data/vendor/libgit2/src/object.c +24 -15
- data/vendor/libgit2/src/odb.c +298 -57
- data/vendor/libgit2/src/odb.h +16 -2
- data/vendor/libgit2/src/odb_loose.c +31 -21
- data/vendor/libgit2/src/odb_mempack.c +3 -1
- data/vendor/libgit2/src/odb_pack.c +391 -114
- data/vendor/libgit2/src/oid.c +7 -4
- data/vendor/libgit2/src/pack-objects.c +83 -69
- data/vendor/libgit2/src/pack.c +383 -150
- data/vendor/libgit2/src/pack.h +44 -9
- data/vendor/libgit2/src/patch.c +14 -7
- data/vendor/libgit2/src/patch_generate.c +3 -5
- data/vendor/libgit2/src/patch_parse.c +6 -3
- data/vendor/libgit2/src/path.c +102 -57
- data/vendor/libgit2/src/path.h +79 -6
- data/vendor/libgit2/src/pathspec.c +12 -11
- data/vendor/libgit2/src/pool.c +34 -22
- data/vendor/libgit2/src/pool.h +9 -1
- data/vendor/libgit2/src/posix.c +43 -12
- data/vendor/libgit2/src/posix.h +9 -0
- data/vendor/libgit2/src/proxy.c +2 -0
- data/vendor/libgit2/src/push.c +2 -0
- data/vendor/libgit2/src/reader.c +10 -6
- data/vendor/libgit2/src/rebase.c +95 -49
- data/vendor/libgit2/src/refdb.c +165 -13
- data/vendor/libgit2/src/refdb.h +69 -0
- data/vendor/libgit2/src/refdb_fs.c +144 -152
- data/vendor/libgit2/src/reflog.c +21 -20
- data/vendor/libgit2/src/refs.c +151 -231
- data/vendor/libgit2/src/refs.h +2 -20
- data/vendor/libgit2/src/refspec.c +80 -44
- data/vendor/libgit2/src/regexp.c +2 -2
- data/vendor/libgit2/src/remote.c +312 -121
- data/vendor/libgit2/src/remote.h +2 -1
- data/vendor/libgit2/src/repository.c +351 -189
- data/vendor/libgit2/src/repository.h +23 -29
- data/vendor/libgit2/src/reset.c +7 -6
- data/vendor/libgit2/src/revert.c +8 -2
- data/vendor/libgit2/src/revparse.c +19 -13
- data/vendor/libgit2/src/revwalk.c +35 -20
- data/vendor/libgit2/src/runtime.c +162 -0
- data/vendor/libgit2/src/runtime.h +62 -0
- data/vendor/libgit2/src/{refdb_fs.h → settings.h} +3 -11
- data/vendor/libgit2/src/signature.c +6 -5
- data/vendor/libgit2/src/sortedcache.c +2 -3
- data/vendor/libgit2/src/sortedcache.h +10 -8
- data/vendor/libgit2/src/stash.c +7 -3
- data/vendor/libgit2/src/status.c +9 -4
- data/vendor/libgit2/src/strarray.c +64 -0
- data/vendor/libgit2/src/streams/mbedtls.c +14 -17
- data/vendor/libgit2/src/streams/mbedtls.h +1 -1
- data/vendor/libgit2/src/streams/openssl.c +113 -207
- data/vendor/libgit2/src/streams/openssl.h +9 -1
- data/vendor/libgit2/src/streams/openssl_dynamic.c +309 -0
- data/vendor/libgit2/src/streams/openssl_dynamic.h +348 -0
- data/vendor/libgit2/src/streams/openssl_legacy.c +203 -0
- data/vendor/libgit2/src/streams/openssl_legacy.h +63 -0
- data/vendor/libgit2/src/streams/registry.c +10 -9
- data/vendor/libgit2/src/streams/socket.c +6 -2
- data/vendor/libgit2/src/streams/stransport.c +6 -3
- data/vendor/libgit2/src/streams/tls.c +5 -3
- data/vendor/libgit2/src/submodule.c +134 -66
- data/vendor/libgit2/src/submodule.h +9 -9
- data/vendor/libgit2/src/sysdir.c +8 -26
- data/vendor/libgit2/src/sysdir.h +0 -11
- data/vendor/libgit2/src/tag.c +49 -11
- data/vendor/libgit2/src/thread.c +140 -0
- data/vendor/libgit2/src/thread.h +479 -0
- data/vendor/libgit2/src/threadstate.c +83 -0
- data/vendor/libgit2/src/threadstate.h +24 -0
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +17 -13
- data/vendor/libgit2/src/transaction.c +21 -9
- data/vendor/libgit2/src/transport.c +3 -3
- data/vendor/libgit2/src/transports/auth.c +1 -1
- data/vendor/libgit2/src/transports/auth_negotiate.c +11 -4
- data/vendor/libgit2/src/transports/auth_ntlm.c +10 -6
- data/vendor/libgit2/src/transports/credential.c +17 -7
- data/vendor/libgit2/src/transports/credential_helpers.c +2 -0
- data/vendor/libgit2/src/transports/git.c +1 -3
- data/vendor/libgit2/src/transports/http.c +19 -17
- data/vendor/libgit2/src/transports/http.h +1 -0
- data/vendor/libgit2/src/transports/httpclient.c +84 -42
- data/vendor/libgit2/src/transports/httpclient.h +1 -1
- data/vendor/libgit2/src/transports/local.c +5 -5
- data/vendor/libgit2/src/transports/smart.c +14 -9
- data/vendor/libgit2/src/transports/smart.h +1 -1
- data/vendor/libgit2/src/transports/smart_protocol.c +11 -5
- data/vendor/libgit2/src/transports/ssh.c +51 -17
- data/vendor/libgit2/src/transports/winhttp.c +156 -88
- data/vendor/libgit2/src/tree.c +100 -77
- data/vendor/libgit2/src/tree.h +1 -0
- data/vendor/libgit2/src/tsort.c +0 -2
- data/vendor/libgit2/src/unix/map.c +3 -1
- data/vendor/libgit2/src/unix/posix.h +16 -1
- data/vendor/libgit2/src/unix/pthread.h +2 -1
- data/vendor/libgit2/src/utf8.c +150 -0
- data/vendor/libgit2/src/utf8.h +52 -0
- data/vendor/libgit2/src/util.c +74 -183
- data/vendor/libgit2/src/util.h +33 -39
- data/vendor/libgit2/src/vector.c +23 -19
- data/vendor/libgit2/src/vector.h +4 -2
- data/vendor/libgit2/src/win32/findfile.c +4 -2
- data/vendor/libgit2/src/win32/git2.rc +18 -3
- data/vendor/libgit2/src/win32/map.c +1 -1
- data/vendor/libgit2/src/win32/msvc-compat.h +9 -1
- data/vendor/libgit2/src/win32/path_w32.c +23 -25
- data/vendor/libgit2/src/win32/path_w32.h +0 -1
- data/vendor/libgit2/src/win32/posix_w32.c +77 -1
- data/vendor/libgit2/src/win32/precompiled.h +0 -1
- data/vendor/libgit2/src/win32/reparse.h +4 -4
- data/vendor/libgit2/src/win32/thread.c +24 -15
- data/vendor/libgit2/src/win32/thread.h +1 -1
- data/vendor/libgit2/src/win32/w32_buffer.c +3 -3
- data/vendor/libgit2/src/win32/w32_common.h +18 -9
- data/vendor/libgit2/src/win32/{w32_crtdbg_stacktrace.c → w32_leakcheck.c} +269 -33
- data/vendor/libgit2/src/win32/w32_leakcheck.h +222 -0
- data/vendor/libgit2/src/win32/w32_util.h +6 -6
- data/vendor/libgit2/src/worktree.c +37 -15
- data/vendor/libgit2/src/zstream.c +1 -1
- metadata +56 -38
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +0 -29
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +0 -96
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
- data/vendor/libgit2/src/buf_text.c +0 -316
- data/vendor/libgit2/src/buf_text.h +0 -122
- data/vendor/libgit2/src/global.c +0 -361
- data/vendor/libgit2/src/global.h +0 -41
- data/vendor/libgit2/src/thread-utils.c +0 -58
- data/vendor/libgit2/src/thread-utils.h +0 -246
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
- data/vendor/libgit2/src/win32/w32_stack.c +0 -188
- data/vendor/libgit2/src/win32/w32_stack.h +0 -140
data/vendor/libgit2/src/diff.c
CHANGED
|
@@ -32,11 +32,6 @@ GIT_INLINE(const char *) diff_delta__path(const git_diff_delta *delta)
|
|
|
32
32
|
return str;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
const char *git_diff_delta__path(const git_diff_delta *delta)
|
|
36
|
-
{
|
|
37
|
-
return diff_delta__path(delta);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
35
|
int git_diff_delta__cmp(const void *a, const void *b)
|
|
41
36
|
{
|
|
42
37
|
const git_diff_delta *da = a, *db = b;
|
|
@@ -82,7 +77,7 @@ void git_diff_addref(git_diff *diff)
|
|
|
82
77
|
|
|
83
78
|
size_t git_diff_num_deltas(const git_diff *diff)
|
|
84
79
|
{
|
|
85
|
-
|
|
80
|
+
GIT_ASSERT_ARG(diff);
|
|
86
81
|
return diff->deltas.length;
|
|
87
82
|
}
|
|
88
83
|
|
|
@@ -91,7 +86,7 @@ size_t git_diff_num_deltas_of_type(const git_diff *diff, git_delta_t type)
|
|
|
91
86
|
size_t i, count = 0;
|
|
92
87
|
const git_diff_delta *delta;
|
|
93
88
|
|
|
94
|
-
|
|
89
|
+
GIT_ASSERT_ARG(diff);
|
|
95
90
|
|
|
96
91
|
git_vector_foreach(&diff->deltas, i, delta) {
|
|
97
92
|
count += (delta->status == type);
|
|
@@ -102,7 +97,7 @@ size_t git_diff_num_deltas_of_type(const git_diff *diff, git_delta_t type)
|
|
|
102
97
|
|
|
103
98
|
const git_diff_delta *git_diff_get_delta(const git_diff *diff, size_t idx)
|
|
104
99
|
{
|
|
105
|
-
|
|
100
|
+
GIT_ASSERT_ARG_WITH_RETVAL(diff, NULL);
|
|
106
101
|
return git_vector_get(&diff->deltas, idx);
|
|
107
102
|
}
|
|
108
103
|
|
|
@@ -113,7 +108,7 @@ int git_diff_is_sorted_icase(const git_diff *diff)
|
|
|
113
108
|
|
|
114
109
|
int git_diff_get_perfdata(git_diff_perfdata *out, const git_diff *diff)
|
|
115
110
|
{
|
|
116
|
-
|
|
111
|
+
GIT_ASSERT_ARG(out);
|
|
117
112
|
GIT_ERROR_CHECK_VERSION(out, GIT_DIFF_PERFDATA_VERSION, "git_diff_perfdata");
|
|
118
113
|
out->stat_calls = diff->perf.stat_calls;
|
|
119
114
|
out->oid_calculations = diff->perf.oid_calculations;
|
|
@@ -132,7 +127,7 @@ int git_diff_foreach(
|
|
|
132
127
|
git_diff_delta *delta;
|
|
133
128
|
size_t idx;
|
|
134
129
|
|
|
135
|
-
|
|
130
|
+
GIT_ASSERT_ARG(diff);
|
|
136
131
|
|
|
137
132
|
git_vector_foreach(&diff->deltas, idx, delta) {
|
|
138
133
|
git_patch *patch;
|
|
@@ -155,7 +150,7 @@ int git_diff_foreach(
|
|
|
155
150
|
return error;
|
|
156
151
|
}
|
|
157
152
|
|
|
158
|
-
int
|
|
153
|
+
static int diff_format_email_append_header_tobuf(
|
|
159
154
|
git_buf *out,
|
|
160
155
|
const git_oid *id,
|
|
161
156
|
const git_signature *author,
|
|
@@ -212,7 +207,7 @@ int git_diff_format_email__append_header_tobuf(
|
|
|
212
207
|
return error;
|
|
213
208
|
}
|
|
214
209
|
|
|
215
|
-
int
|
|
210
|
+
static int diff_format_email_append_patches_tobuf(
|
|
216
211
|
git_buf *out,
|
|
217
212
|
git_diff *diff)
|
|
218
213
|
{
|
|
@@ -248,8 +243,9 @@ int git_diff_format_email(
|
|
|
248
243
|
size_t allocsize;
|
|
249
244
|
int error;
|
|
250
245
|
|
|
251
|
-
|
|
252
|
-
|
|
246
|
+
GIT_ASSERT_ARG(out);
|
|
247
|
+
GIT_ASSERT_ARG(diff);
|
|
248
|
+
GIT_ASSERT_ARG(opts && opts->summary && opts->id && opts->author);
|
|
253
249
|
|
|
254
250
|
GIT_ERROR_CHECK_VERSION(opts,
|
|
255
251
|
GIT_DIFF_FORMAT_EMAIL_OPTIONS_VERSION,
|
|
@@ -292,7 +288,7 @@ int git_diff_format_email(
|
|
|
292
288
|
strncpy(summary, opts->summary, offset);
|
|
293
289
|
}
|
|
294
290
|
|
|
295
|
-
error =
|
|
291
|
+
error = diff_format_email_append_header_tobuf(out,
|
|
296
292
|
opts->id, opts->author, summary == NULL ? opts->summary : summary,
|
|
297
293
|
opts->body, opts->patch_no, opts->total_patches, ignore_marker);
|
|
298
294
|
|
|
@@ -305,7 +301,7 @@ int git_diff_format_email(
|
|
|
305
301
|
(error = git_diff_get_stats(&stats, diff)) < 0 ||
|
|
306
302
|
(error = git_diff_stats_to_buf(out, stats, format_flags, 0)) < 0 ||
|
|
307
303
|
(error = git_buf_putc(out, '\n')) < 0 ||
|
|
308
|
-
(error =
|
|
304
|
+
(error = diff_format_email_append_patches_tobuf(out, diff)) < 0)
|
|
309
305
|
goto on_error;
|
|
310
306
|
|
|
311
307
|
error = git_buf_puts(out, "--\nlibgit2 " LIBGIT2_VERSION "\n\n");
|
|
@@ -331,7 +327,9 @@ int git_diff_commit_as_email(
|
|
|
331
327
|
GIT_DIFF_FORMAT_EMAIL_OPTIONS_INIT;
|
|
332
328
|
int error;
|
|
333
329
|
|
|
334
|
-
|
|
330
|
+
GIT_ASSERT_ARG(out);
|
|
331
|
+
GIT_ASSERT_ARG(repo);
|
|
332
|
+
GIT_ASSERT_ARG(commit);
|
|
335
333
|
|
|
336
334
|
opts.flags = flags;
|
|
337
335
|
opts.patch_no = patch_no;
|
|
@@ -357,10 +355,12 @@ int git_diff_options_init(git_diff_options *opts, unsigned int version)
|
|
|
357
355
|
return 0;
|
|
358
356
|
}
|
|
359
357
|
|
|
358
|
+
#ifndef GIT_DEPRECATE_HARD
|
|
360
359
|
int git_diff_init_options(git_diff_options *opts, unsigned int version)
|
|
361
360
|
{
|
|
362
361
|
return git_diff_options_init(opts, version);
|
|
363
362
|
}
|
|
363
|
+
#endif
|
|
364
364
|
|
|
365
365
|
int git_diff_find_options_init(
|
|
366
366
|
git_diff_find_options *opts, unsigned int version)
|
|
@@ -370,11 +370,13 @@ int git_diff_find_options_init(
|
|
|
370
370
|
return 0;
|
|
371
371
|
}
|
|
372
372
|
|
|
373
|
+
#ifndef GIT_DEPRECATE_HARD
|
|
373
374
|
int git_diff_find_init_options(
|
|
374
375
|
git_diff_find_options *opts, unsigned int version)
|
|
375
376
|
{
|
|
376
377
|
return git_diff_find_options_init(opts, version);
|
|
377
378
|
}
|
|
379
|
+
#endif
|
|
378
380
|
|
|
379
381
|
int git_diff_format_email_options_init(
|
|
380
382
|
git_diff_format_email_options *opts, unsigned int version)
|
|
@@ -385,11 +387,13 @@ int git_diff_format_email_options_init(
|
|
|
385
387
|
return 0;
|
|
386
388
|
}
|
|
387
389
|
|
|
390
|
+
#ifndef GIT_DEPRECATE_HARD
|
|
388
391
|
int git_diff_format_email_init_options(
|
|
389
392
|
git_diff_format_email_options *opts, unsigned int version)
|
|
390
393
|
{
|
|
391
394
|
return git_diff_format_email_options_init(opts, version);
|
|
392
395
|
}
|
|
396
|
+
#endif
|
|
393
397
|
|
|
394
398
|
static int flush_hunk(git_oid *result, git_hash_ctx *ctx)
|
|
395
399
|
{
|
|
@@ -426,7 +430,7 @@ static void strip_spaces(git_buf *buf)
|
|
|
426
430
|
git_buf_truncate(buf, len);
|
|
427
431
|
}
|
|
428
432
|
|
|
429
|
-
int
|
|
433
|
+
static int diff_patchid_print_callback_to_buf(
|
|
430
434
|
const git_diff_delta *delta,
|
|
431
435
|
const git_diff_hunk *hunk,
|
|
432
436
|
const git_diff_line *line,
|
|
@@ -485,7 +489,7 @@ int git_diff_patchid(git_oid *out, git_diff *diff, git_diff_patchid_options *opt
|
|
|
485
489
|
|
|
486
490
|
if ((error = git_diff_print(diff,
|
|
487
491
|
GIT_DIFF_FORMAT_PATCH_ID,
|
|
488
|
-
|
|
492
|
+
diff_patchid_print_callback_to_buf,
|
|
489
493
|
&args)) < 0)
|
|
490
494
|
goto out;
|
|
491
495
|
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
#include "diff.h"
|
|
14
14
|
#include "strmap.h"
|
|
15
15
|
#include "map.h"
|
|
16
|
-
#include "buf_text.h"
|
|
17
16
|
#include "config.h"
|
|
18
17
|
#include "regexp.h"
|
|
19
18
|
#include "repository.h"
|
|
@@ -142,18 +141,23 @@ static int diff_driver_funcname(const git_config_entry *entry, void *payload)
|
|
|
142
141
|
static git_diff_driver_registry *git_repository_driver_registry(
|
|
143
142
|
git_repository *repo)
|
|
144
143
|
{
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
144
|
+
git_diff_driver_registry *reg = git_atomic_load(repo->diff_drivers), *newreg;
|
|
145
|
+
if (reg)
|
|
146
|
+
return reg;
|
|
148
147
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
if (!repo->diff_drivers)
|
|
148
|
+
newreg = git_diff_driver_registry_new();
|
|
149
|
+
if (!newreg) {
|
|
154
150
|
git_error_set(GIT_ERROR_REPOSITORY, "unable to create diff driver registry");
|
|
155
|
-
|
|
156
|
-
|
|
151
|
+
return newreg;
|
|
152
|
+
}
|
|
153
|
+
reg = git_atomic_compare_and_swap(&repo->diff_drivers, NULL, newreg);
|
|
154
|
+
if (!reg) {
|
|
155
|
+
reg = newreg;
|
|
156
|
+
} else {
|
|
157
|
+
/* if we race, free losing allocation */
|
|
158
|
+
git_diff_driver_registry_free(newreg);
|
|
159
|
+
}
|
|
160
|
+
return reg;
|
|
157
161
|
}
|
|
158
162
|
|
|
159
163
|
static int diff_driver_alloc(
|
|
@@ -358,7 +362,7 @@ int git_diff_driver_lookup(
|
|
|
358
362
|
int error = 0;
|
|
359
363
|
const char *values[1], *attrs[] = { "diff" };
|
|
360
364
|
|
|
361
|
-
|
|
365
|
+
GIT_ASSERT_ARG(out);
|
|
362
366
|
*out = NULL;
|
|
363
367
|
|
|
364
368
|
if (!repo || !path || !strlen(path))
|
|
@@ -390,13 +394,13 @@ int git_diff_driver_lookup(
|
|
|
390
394
|
|
|
391
395
|
void git_diff_driver_free(git_diff_driver *driver)
|
|
392
396
|
{
|
|
393
|
-
|
|
397
|
+
git_diff_driver_pattern *pat;
|
|
394
398
|
|
|
395
399
|
if (!driver)
|
|
396
400
|
return;
|
|
397
401
|
|
|
398
|
-
|
|
399
|
-
git_regexp_dispose(&
|
|
402
|
+
while ((pat = git_array_pop(driver->fn_patterns)) != NULL)
|
|
403
|
+
git_regexp_dispose(&pat->re);
|
|
400
404
|
git_array_clear(driver->fn_patterns);
|
|
401
405
|
|
|
402
406
|
git_regexp_dispose(&driver->word_pattern);
|
|
@@ -428,8 +432,8 @@ int git_diff_driver_content_is_binary(
|
|
|
428
432
|
* let's just use the simple NUL-byte detection that core git uses.
|
|
429
433
|
*/
|
|
430
434
|
|
|
431
|
-
/* previously was: if (
|
|
432
|
-
if (
|
|
435
|
+
/* previously was: if (git_buf_is_binary(&search)) */
|
|
436
|
+
if (git_buf_contains_nul(&search))
|
|
433
437
|
return 1;
|
|
434
438
|
|
|
435
439
|
return 0;
|
|
@@ -160,8 +160,10 @@ int git_diff_file_content__init_from_src(
|
|
|
160
160
|
|
|
161
161
|
fc->flags |= GIT_DIFF_FLAG__FREE_BLOB;
|
|
162
162
|
} else {
|
|
163
|
+
int error;
|
|
164
|
+
if ((error = git_odb_hash(&fc->file->id, src->buf, src->buflen, GIT_OBJECT_BLOB)) < 0)
|
|
165
|
+
return error;
|
|
163
166
|
fc->file->size = src->buflen;
|
|
164
|
-
git_odb_hash(&fc->file->id, src->buf, src->buflen, GIT_OBJECT_BLOB);
|
|
165
167
|
fc->file->id_abbrev = GIT_OID_HEXSZ;
|
|
166
168
|
|
|
167
169
|
fc->map.len = src->buflen;
|
|
@@ -360,10 +362,7 @@ static int diff_file_content_load_workdir_file(
|
|
|
360
362
|
if (!(error = git_futils_readbuffer_fd(&raw, fd, (size_t)fc->file->size))) {
|
|
361
363
|
git_buf out = GIT_BUF_INIT;
|
|
362
364
|
|
|
363
|
-
error =
|
|
364
|
-
|
|
365
|
-
if (out.ptr != raw.ptr)
|
|
366
|
-
git_buf_dispose(&raw);
|
|
365
|
+
error = git_filter_list__convert_buf(&out, fl, &raw);
|
|
367
366
|
|
|
368
367
|
if (!error) {
|
|
369
368
|
fc->map.len = out.size;
|
|
@@ -392,8 +391,7 @@ static int diff_file_content_load_workdir(
|
|
|
392
391
|
if (fc->file->mode == GIT_FILEMODE_TREE)
|
|
393
392
|
return 0;
|
|
394
393
|
|
|
395
|
-
if (
|
|
396
|
-
&path, git_repository_workdir(fc->repo), fc->file->path) < 0)
|
|
394
|
+
if (git_repository_workdir_path(&path, fc->repo, fc->file->path) < 0)
|
|
397
395
|
return -1;
|
|
398
396
|
|
|
399
397
|
if (S_ISLNK(fc->file->mode))
|
|
@@ -128,7 +128,7 @@ static int diff_delta__from_one(
|
|
|
128
128
|
git_diff_delta *delta;
|
|
129
129
|
const char *matched_pathspec;
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
GIT_ASSERT_ARG((oitem != NULL) ^ (nitem != NULL));
|
|
132
132
|
|
|
133
133
|
if (oitem) {
|
|
134
134
|
entry = oitem;
|
|
@@ -160,7 +160,7 @@ static int diff_delta__from_one(
|
|
|
160
160
|
GIT_ERROR_CHECK_ALLOC(delta);
|
|
161
161
|
|
|
162
162
|
/* This fn is just for single-sided diffs */
|
|
163
|
-
|
|
163
|
+
GIT_ASSERT(status != GIT_DELTA_MODIFIED);
|
|
164
164
|
delta->nfiles = 1;
|
|
165
165
|
|
|
166
166
|
if (has_old) {
|
|
@@ -301,14 +301,14 @@ GIT_INLINE(const char *) diff_delta__i2w_path(const git_diff_delta *delta)
|
|
|
301
301
|
delta->old_file.path : delta->new_file.path;
|
|
302
302
|
}
|
|
303
303
|
|
|
304
|
-
int
|
|
304
|
+
static int diff_delta_i2w_cmp(const void *a, const void *b)
|
|
305
305
|
{
|
|
306
306
|
const git_diff_delta *da = a, *db = b;
|
|
307
307
|
int val = strcmp(diff_delta__i2w_path(da), diff_delta__i2w_path(db));
|
|
308
308
|
return val ? val : ((int)da->status - (int)db->status);
|
|
309
309
|
}
|
|
310
310
|
|
|
311
|
-
int
|
|
311
|
+
static int diff_delta_i2w_casecmp(const void *a, const void *b)
|
|
312
312
|
{
|
|
313
313
|
const git_diff_delta *da = a, *db = b;
|
|
314
314
|
int val = strcasecmp(diff_delta__i2w_path(da), diff_delta__i2w_path(db));
|
|
@@ -361,7 +361,7 @@ static const char *diff_mnemonic_prefix(
|
|
|
361
361
|
return pfx;
|
|
362
362
|
}
|
|
363
363
|
|
|
364
|
-
void
|
|
364
|
+
static void diff_set_ignore_case(git_diff *diff, bool ignore_case)
|
|
365
365
|
{
|
|
366
366
|
if (!ignore_case) {
|
|
367
367
|
diff->opts.flags &= ~GIT_DIFF_IGNORE_CASE;
|
|
@@ -408,7 +408,9 @@ static git_diff_generated *diff_generated_alloc(
|
|
|
408
408
|
git_diff_generated *diff;
|
|
409
409
|
git_diff_options dflt = GIT_DIFF_OPTIONS_INIT;
|
|
410
410
|
|
|
411
|
-
|
|
411
|
+
GIT_ASSERT_ARG_WITH_RETVAL(repo, NULL);
|
|
412
|
+
GIT_ASSERT_ARG_WITH_RETVAL(old_iter, NULL);
|
|
413
|
+
GIT_ASSERT_ARG_WITH_RETVAL(new_iter, NULL);
|
|
412
414
|
|
|
413
415
|
if ((diff = git__calloc(1, sizeof(git_diff_generated))) == NULL)
|
|
414
416
|
return NULL;
|
|
@@ -423,16 +425,15 @@ static git_diff_generated *diff_generated_alloc(
|
|
|
423
425
|
git_attr_session__init(&diff->base.attrsession, repo);
|
|
424
426
|
memcpy(&diff->base.opts, &dflt, sizeof(git_diff_options));
|
|
425
427
|
|
|
426
|
-
git_pool_init(&diff->base.pool, 1)
|
|
427
|
-
|
|
428
|
-
if (git_vector_init(&diff->base.deltas, 0, git_diff_delta__cmp) < 0) {
|
|
428
|
+
if (git_pool_init(&diff->base.pool, 1) < 0 ||
|
|
429
|
+
git_vector_init(&diff->base.deltas, 0, git_diff_delta__cmp) < 0) {
|
|
429
430
|
git_diff_free(&diff->base);
|
|
430
431
|
return NULL;
|
|
431
432
|
}
|
|
432
433
|
|
|
433
434
|
/* Use case-insensitive compare if either iterator has
|
|
434
435
|
* the ignore_case bit set */
|
|
435
|
-
|
|
436
|
+
diff_set_ignore_case(
|
|
436
437
|
&diff->base,
|
|
437
438
|
git_iterator_ignore_case(old_iter) ||
|
|
438
439
|
git_iterator_ignore_case(new_iter));
|
|
@@ -590,13 +591,12 @@ int git_diff__oid_for_entry(
|
|
|
590
591
|
git_filter_list *fl = NULL;
|
|
591
592
|
int error = 0;
|
|
592
593
|
|
|
593
|
-
|
|
594
|
+
GIT_ASSERT(d->type == GIT_DIFF_TYPE_GENERATED);
|
|
594
595
|
diff = (git_diff_generated *)d;
|
|
595
596
|
|
|
596
597
|
memset(out, 0, sizeof(*out));
|
|
597
598
|
|
|
598
|
-
if (
|
|
599
|
-
git_repository_workdir(diff->base.repo), entry.path) < 0)
|
|
599
|
+
if (git_repository_workdir_path(&full_path, diff->base.repo, entry.path) < 0)
|
|
600
600
|
return -1;
|
|
601
601
|
|
|
602
602
|
if (!mode) {
|
|
@@ -679,6 +679,8 @@ typedef struct {
|
|
|
679
679
|
git_iterator *new_iter;
|
|
680
680
|
const git_index_entry *oitem;
|
|
681
681
|
const git_index_entry *nitem;
|
|
682
|
+
git_strmap *submodule_cache;
|
|
683
|
+
bool submodule_cache_initialized;
|
|
682
684
|
} diff_in_progress;
|
|
683
685
|
|
|
684
686
|
#define MODE_BITS_MASK 0000777
|
|
@@ -693,6 +695,7 @@ static int maybe_modified_submodule(
|
|
|
693
695
|
git_submodule *sub;
|
|
694
696
|
unsigned int sm_status = 0;
|
|
695
697
|
git_submodule_ignore_t ign = diff->base.opts.ignore_submodules;
|
|
698
|
+
git_strmap *submodule_cache = NULL;
|
|
696
699
|
|
|
697
700
|
*status = GIT_DELTA_UNMODIFIED;
|
|
698
701
|
|
|
@@ -700,8 +703,23 @@ static int maybe_modified_submodule(
|
|
|
700
703
|
ign == GIT_SUBMODULE_IGNORE_ALL)
|
|
701
704
|
return 0;
|
|
702
705
|
|
|
703
|
-
if (
|
|
704
|
-
|
|
706
|
+
if (diff->base.repo->submodule_cache != NULL) {
|
|
707
|
+
submodule_cache = diff->base.repo->submodule_cache;
|
|
708
|
+
} else {
|
|
709
|
+
if (!info->submodule_cache_initialized) {
|
|
710
|
+
info->submodule_cache_initialized = true;
|
|
711
|
+
/*
|
|
712
|
+
* Try to cache the submodule information to avoid having to parse it for
|
|
713
|
+
* every submodule. It is okay if it fails, the cache will still be NULL
|
|
714
|
+
* and the submodules will be attempted to be looked up individually.
|
|
715
|
+
*/
|
|
716
|
+
git_submodule_cache_init(&info->submodule_cache, diff->base.repo);
|
|
717
|
+
}
|
|
718
|
+
submodule_cache = info->submodule_cache;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
if ((error = git_submodule__lookup_with_cache(
|
|
722
|
+
&sub, diff->base.repo, info->nitem->path, submodule_cache)) < 0) {
|
|
705
723
|
|
|
706
724
|
/* GIT_EEXISTS means dir with .git in it was found - ignore it */
|
|
707
725
|
if (error == GIT_EEXISTS) {
|
|
@@ -1191,7 +1209,7 @@ int git_diff__from_iterators(
|
|
|
1191
1209
|
const git_diff_options *opts)
|
|
1192
1210
|
{
|
|
1193
1211
|
git_diff_generated *diff;
|
|
1194
|
-
diff_in_progress info;
|
|
1212
|
+
diff_in_progress info = {0};
|
|
1195
1213
|
int error = 0;
|
|
1196
1214
|
|
|
1197
1215
|
*out = NULL;
|
|
@@ -1205,8 +1223,9 @@ int git_diff__from_iterators(
|
|
|
1205
1223
|
|
|
1206
1224
|
/* make iterators have matching icase behavior */
|
|
1207
1225
|
if (DIFF_FLAG_IS_SET(diff, GIT_DIFF_IGNORE_CASE)) {
|
|
1208
|
-
git_iterator_set_ignore_case(old_iter, true)
|
|
1209
|
-
|
|
1226
|
+
if ((error = git_iterator_set_ignore_case(old_iter, true)) < 0 ||
|
|
1227
|
+
(error = git_iterator_set_ignore_case(new_iter, true)) < 0)
|
|
1228
|
+
goto cleanup;
|
|
1210
1229
|
}
|
|
1211
1230
|
|
|
1212
1231
|
/* finish initialization */
|
|
@@ -1258,6 +1277,8 @@ cleanup:
|
|
|
1258
1277
|
*out = &diff->base;
|
|
1259
1278
|
else
|
|
1260
1279
|
git_diff_free(&diff->base);
|
|
1280
|
+
if (info.submodule_cache)
|
|
1281
|
+
git_submodule_cache_free(info.submodule_cache);
|
|
1261
1282
|
|
|
1262
1283
|
return error;
|
|
1263
1284
|
}
|
|
@@ -1303,7 +1324,8 @@ int git_diff_tree_to_tree(
|
|
|
1303
1324
|
char *prefix = NULL;
|
|
1304
1325
|
int error = 0;
|
|
1305
1326
|
|
|
1306
|
-
|
|
1327
|
+
GIT_ASSERT_ARG(out);
|
|
1328
|
+
GIT_ASSERT_ARG(repo);
|
|
1307
1329
|
|
|
1308
1330
|
*out = NULL;
|
|
1309
1331
|
|
|
@@ -1359,7 +1381,8 @@ int git_diff_tree_to_index(
|
|
|
1359
1381
|
bool index_ignore_case = false;
|
|
1360
1382
|
int error = 0;
|
|
1361
1383
|
|
|
1362
|
-
|
|
1384
|
+
GIT_ASSERT_ARG(out);
|
|
1385
|
+
GIT_ASSERT_ARG(repo);
|
|
1363
1386
|
|
|
1364
1387
|
*out = NULL;
|
|
1365
1388
|
|
|
@@ -1376,7 +1399,7 @@ int git_diff_tree_to_index(
|
|
|
1376
1399
|
|
|
1377
1400
|
/* if index is in case-insensitive order, re-sort deltas to match */
|
|
1378
1401
|
if (index_ignore_case)
|
|
1379
|
-
|
|
1402
|
+
diff_set_ignore_case(diff, true);
|
|
1380
1403
|
|
|
1381
1404
|
*out = diff;
|
|
1382
1405
|
diff = NULL;
|
|
@@ -1402,7 +1425,8 @@ int git_diff_index_to_workdir(
|
|
|
1402
1425
|
char *prefix = NULL;
|
|
1403
1426
|
int error = 0;
|
|
1404
1427
|
|
|
1405
|
-
|
|
1428
|
+
GIT_ASSERT_ARG(out);
|
|
1429
|
+
GIT_ASSERT_ARG(repo);
|
|
1406
1430
|
|
|
1407
1431
|
*out = NULL;
|
|
1408
1432
|
|
|
@@ -1445,7 +1469,8 @@ int git_diff_tree_to_workdir(
|
|
|
1445
1469
|
git_index *index;
|
|
1446
1470
|
int error;
|
|
1447
1471
|
|
|
1448
|
-
|
|
1472
|
+
GIT_ASSERT_ARG(out);
|
|
1473
|
+
GIT_ASSERT_ARG(repo);
|
|
1449
1474
|
|
|
1450
1475
|
*out = NULL;
|
|
1451
1476
|
|
|
@@ -1478,7 +1503,8 @@ int git_diff_tree_to_workdir_with_index(
|
|
|
1478
1503
|
git_index *index = NULL;
|
|
1479
1504
|
int error = 0;
|
|
1480
1505
|
|
|
1481
|
-
|
|
1506
|
+
GIT_ASSERT_ARG(out);
|
|
1507
|
+
GIT_ASSERT_ARG(repo);
|
|
1482
1508
|
|
|
1483
1509
|
*out = NULL;
|
|
1484
1510
|
|
|
@@ -1514,7 +1540,9 @@ int git_diff_index_to_index(
|
|
|
1514
1540
|
char *prefix = NULL;
|
|
1515
1541
|
int error;
|
|
1516
1542
|
|
|
1517
|
-
|
|
1543
|
+
GIT_ASSERT_ARG(out);
|
|
1544
|
+
GIT_ASSERT_ARG(old_index);
|
|
1545
|
+
GIT_ASSERT_ARG(new_index);
|
|
1518
1546
|
|
|
1519
1547
|
*out = NULL;
|
|
1520
1548
|
|
|
@@ -1527,7 +1555,7 @@ int git_diff_index_to_index(
|
|
|
1527
1555
|
|
|
1528
1556
|
/* if index is in case-insensitive order, re-sort deltas to match */
|
|
1529
1557
|
if (old_index->ignore_case || new_index->ignore_case)
|
|
1530
|
-
|
|
1558
|
+
diff_set_ignore_case(diff, true);
|
|
1531
1559
|
|
|
1532
1560
|
*out = diff;
|
|
1533
1561
|
diff = NULL;
|
|
@@ -1584,10 +1612,10 @@ int git_diff__paired_foreach(
|
|
|
1584
1612
|
if (i2w_icase && !icase_mismatch) {
|
|
1585
1613
|
strcomp = git__strcasecmp;
|
|
1586
1614
|
|
|
1587
|
-
git_vector_set_cmp(&idx2wd->deltas,
|
|
1615
|
+
git_vector_set_cmp(&idx2wd->deltas, diff_delta_i2w_casecmp);
|
|
1588
1616
|
git_vector_sort(&idx2wd->deltas);
|
|
1589
1617
|
} else if (idx2wd != NULL) {
|
|
1590
|
-
git_vector_set_cmp(&idx2wd->deltas,
|
|
1618
|
+
git_vector_set_cmp(&idx2wd->deltas, diff_delta_i2w_cmp);
|
|
1591
1619
|
git_vector_sort(&idx2wd->deltas);
|
|
1592
1620
|
}
|
|
1593
1621
|
|