rugged 1.6.3 → 1.9.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/ext/rugged/rugged_allocator.c +0 -54
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +25 -17
- data/vendor/libgit2/COPYING +195 -1
- data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
- data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +4 -4
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +34 -6
- data/vendor/libgit2/cmake/SelectHashes.cmake +32 -11
- data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
- data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
- data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
- data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
- data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
- data/vendor/libgit2/deps/llhttp/api.c +510 -0
- data/vendor/libgit2/deps/llhttp/http.c +170 -0
- data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
- data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
- data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +1 -0
- data/vendor/libgit2/deps/pcre/LICENCE +5 -5
- data/vendor/libgit2/deps/pcre/pcre.h +2 -2
- data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
- data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/git-xdiff.h +4 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.c +19 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.h +2 -4
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.c +3 -3
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xhistogram.c +7 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmacros.h +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmerge.c +22 -20
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xpatience.c +21 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.c +13 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.c +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.h +2 -1
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
- data/vendor/libgit2/deps/zlib/LICENSE +22 -0
- data/vendor/libgit2/deps/zlib/adler32.c +5 -27
- data/vendor/libgit2/deps/zlib/crc32.c +94 -167
- data/vendor/libgit2/deps/zlib/deflate.c +358 -435
- data/vendor/libgit2/deps/zlib/deflate.h +41 -10
- data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
- data/vendor/libgit2/deps/zlib/infback.c +17 -30
- data/vendor/libgit2/deps/zlib/inffast.c +1 -4
- data/vendor/libgit2/deps/zlib/inffast.h +1 -1
- data/vendor/libgit2/deps/zlib/inflate.c +36 -102
- data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
- data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
- data/vendor/libgit2/deps/zlib/trees.c +287 -352
- data/vendor/libgit2/deps/zlib/zconf.h +23 -14
- data/vendor/libgit2/deps/zlib/zlib.h +202 -202
- data/vendor/libgit2/deps/zlib/zutil.c +18 -44
- data/vendor/libgit2/deps/zlib/zutil.h +13 -33
- data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
- data/vendor/libgit2/include/git2/apply.h +27 -6
- data/vendor/libgit2/include/git2/attr.h +17 -4
- data/vendor/libgit2/include/git2/blame.h +133 -28
- data/vendor/libgit2/include/git2/blob.h +71 -28
- data/vendor/libgit2/include/git2/branch.h +22 -15
- data/vendor/libgit2/include/git2/buffer.h +6 -4
- data/vendor/libgit2/include/git2/cert.h +2 -1
- data/vendor/libgit2/include/git2/checkout.h +83 -32
- data/vendor/libgit2/include/git2/cherrypick.h +10 -3
- data/vendor/libgit2/include/git2/clone.h +25 -9
- data/vendor/libgit2/include/git2/commit.h +132 -3
- data/vendor/libgit2/include/git2/common.h +138 -56
- data/vendor/libgit2/include/git2/config.h +93 -23
- data/vendor/libgit2/include/git2/credential.h +30 -2
- data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
- data/vendor/libgit2/include/git2/deprecated.h +133 -3
- data/vendor/libgit2/include/git2/describe.h +13 -1
- data/vendor/libgit2/include/git2/diff.h +77 -9
- data/vendor/libgit2/include/git2/email.h +9 -29
- data/vendor/libgit2/include/git2/errors.h +49 -74
- data/vendor/libgit2/include/git2/filter.h +14 -7
- data/vendor/libgit2/include/git2/global.h +8 -1
- data/vendor/libgit2/include/git2/graph.h +3 -2
- data/vendor/libgit2/include/git2/ignore.h +10 -0
- data/vendor/libgit2/include/git2/index.h +100 -6
- data/vendor/libgit2/include/git2/indexer.h +21 -4
- data/vendor/libgit2/include/git2/mailmap.h +7 -1
- data/vendor/libgit2/include/git2/merge.h +46 -1
- data/vendor/libgit2/include/git2/message.h +2 -2
- data/vendor/libgit2/include/git2/net.h +3 -1
- data/vendor/libgit2/include/git2/notes.h +9 -6
- data/vendor/libgit2/include/git2/object.h +9 -8
- data/vendor/libgit2/include/git2/odb.h +91 -49
- data/vendor/libgit2/include/git2/odb_backend.h +80 -52
- data/vendor/libgit2/include/git2/oid.h +24 -25
- data/vendor/libgit2/include/git2/oidarray.h +7 -1
- data/vendor/libgit2/include/git2/pack.h +13 -1
- data/vendor/libgit2/include/git2/patch.h +2 -3
- data/vendor/libgit2/include/git2/pathspec.h +9 -0
- data/vendor/libgit2/include/git2/proxy.h +10 -0
- data/vendor/libgit2/include/git2/rebase.h +9 -6
- data/vendor/libgit2/include/git2/refdb.h +2 -2
- data/vendor/libgit2/include/git2/reflog.h +3 -2
- data/vendor/libgit2/include/git2/refs.h +9 -6
- data/vendor/libgit2/include/git2/refspec.h +14 -4
- data/vendor/libgit2/include/git2/remote.h +112 -18
- data/vendor/libgit2/include/git2/repository.h +61 -15
- data/vendor/libgit2/include/git2/reset.h +16 -3
- data/vendor/libgit2/include/git2/revert.h +9 -4
- data/vendor/libgit2/include/git2/revparse.h +3 -3
- data/vendor/libgit2/include/git2/revwalk.h +3 -2
- data/vendor/libgit2/include/git2/signature.h +46 -1
- data/vendor/libgit2/include/git2/stash.h +17 -3
- data/vendor/libgit2/include/git2/status.h +10 -6
- data/vendor/libgit2/include/git2/stdint.h +87 -85
- data/vendor/libgit2/include/git2/strarray.h +2 -3
- data/vendor/libgit2/include/git2/submodule.h +20 -9
- data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +109 -58
- data/vendor/libgit2/include/git2/sys/config.h +80 -4
- data/vendor/libgit2/include/git2/sys/credential.h +4 -3
- data/vendor/libgit2/include/git2/sys/diff.h +21 -1
- data/vendor/libgit2/include/git2/sys/email.h +7 -0
- data/vendor/libgit2/include/git2/sys/errors.h +76 -0
- data/vendor/libgit2/include/git2/sys/filter.h +66 -3
- data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
- data/vendor/libgit2/include/git2/sys/index.h +3 -2
- data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
- data/vendor/libgit2/include/git2/sys/merge.h +55 -7
- data/vendor/libgit2/include/git2/sys/midx.h +47 -4
- data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
- data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
- data/vendor/libgit2/include/git2/sys/path.h +12 -1
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
- data/vendor/libgit2/include/git2/sys/refs.h +3 -2
- data/vendor/libgit2/include/git2/sys/remote.h +8 -1
- data/vendor/libgit2/include/git2/sys/repository.h +63 -3
- data/vendor/libgit2/include/git2/sys/stream.h +25 -2
- data/vendor/libgit2/include/git2/sys/transport.h +44 -5
- data/vendor/libgit2/include/git2/tag.h +3 -1
- data/vendor/libgit2/include/git2/trace.h +9 -3
- data/vendor/libgit2/include/git2/transaction.h +3 -2
- data/vendor/libgit2/include/git2/transport.h +11 -3
- data/vendor/libgit2/include/git2/tree.h +16 -5
- data/vendor/libgit2/include/git2/types.h +19 -3
- data/vendor/libgit2/include/git2/version.h +44 -8
- data/vendor/libgit2/include/git2/worktree.h +19 -7
- data/vendor/libgit2/src/CMakeLists.txt +40 -15
- data/vendor/libgit2/src/cli/CMakeLists.txt +2 -2
- data/vendor/libgit2/src/cli/cmd.c +1 -1
- data/vendor/libgit2/src/cli/cmd.h +4 -0
- data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
- data/vendor/libgit2/src/cli/cmd_clone.c +27 -13
- data/vendor/libgit2/src/cli/cmd_config.c +241 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
- data/vendor/libgit2/src/cli/cmd_help.c +6 -7
- data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
- data/vendor/libgit2/src/cli/cmd_init.c +102 -0
- data/vendor/libgit2/src/cli/common.c +168 -0
- data/vendor/libgit2/src/cli/common.h +63 -0
- data/vendor/libgit2/src/cli/error.h +1 -1
- data/vendor/libgit2/src/cli/main.c +52 -24
- data/vendor/libgit2/src/cli/opt.c +29 -3
- data/vendor/libgit2/src/cli/opt.h +21 -3
- data/vendor/libgit2/src/cli/opt_usage.c +102 -33
- data/vendor/libgit2/src/cli/opt_usage.h +6 -1
- data/vendor/libgit2/src/cli/progress.c +60 -10
- data/vendor/libgit2/src/cli/progress.h +16 -4
- data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
- data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
- data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +27 -27
- data/vendor/libgit2/src/libgit2/annotated_commit.c +2 -2
- data/vendor/libgit2/src/libgit2/annotated_commit.h +1 -1
- data/vendor/libgit2/src/libgit2/apply.c +14 -16
- data/vendor/libgit2/src/libgit2/attr.c +30 -13
- data/vendor/libgit2/src/libgit2/attr_file.c +7 -2
- data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
- data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
- data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
- data/vendor/libgit2/src/libgit2/blame.c +152 -59
- data/vendor/libgit2/src/libgit2/blame.h +1 -0
- data/vendor/libgit2/src/libgit2/blame_git.c +0 -1
- data/vendor/libgit2/src/libgit2/branch.c +2 -2
- data/vendor/libgit2/src/libgit2/cache.c +22 -17
- data/vendor/libgit2/src/libgit2/cache.h +7 -9
- data/vendor/libgit2/src/libgit2/checkout.c +34 -24
- data/vendor/libgit2/src/libgit2/checkout.h +0 -2
- data/vendor/libgit2/src/libgit2/cherrypick.c +4 -5
- data/vendor/libgit2/src/libgit2/clone.c +186 -164
- data/vendor/libgit2/src/libgit2/clone.h +4 -1
- data/vendor/libgit2/src/libgit2/commit.c +123 -9
- data/vendor/libgit2/src/libgit2/commit_graph.c +166 -88
- data/vendor/libgit2/src/libgit2/commit_graph.h +21 -6
- data/vendor/libgit2/src/libgit2/commit_list.c +12 -5
- data/vendor/libgit2/src/libgit2/commit_list.h +1 -0
- data/vendor/libgit2/src/libgit2/config.c +394 -300
- data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
- data/vendor/libgit2/src/libgit2/config.h +9 -4
- data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
- data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
- data/vendor/libgit2/src/libgit2/config_file.c +113 -96
- data/vendor/libgit2/src/libgit2/config_list.c +285 -0
- data/vendor/libgit2/src/libgit2/config_list.h +32 -0
- data/vendor/libgit2/src/libgit2/config_mem.c +194 -40
- data/vendor/libgit2/src/libgit2/config_parse.c +10 -9
- data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
- data/vendor/libgit2/src/libgit2/describe.c +34 -31
- data/vendor/libgit2/src/libgit2/diff.c +17 -8
- data/vendor/libgit2/src/libgit2/diff.h +6 -6
- data/vendor/libgit2/src/libgit2/diff_driver.c +12 -19
- data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
- data/vendor/libgit2/src/libgit2/diff_file.c +7 -7
- data/vendor/libgit2/src/libgit2/diff_generate.c +39 -18
- data/vendor/libgit2/src/libgit2/diff_parse.c +22 -6
- data/vendor/libgit2/src/libgit2/diff_print.c +88 -13
- data/vendor/libgit2/src/libgit2/diff_tform.c +40 -12
- data/vendor/libgit2/src/libgit2/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/libgit2/email.c +5 -3
- data/vendor/libgit2/src/libgit2/fetch.c +39 -9
- data/vendor/libgit2/src/libgit2/fetch.h +0 -2
- data/vendor/libgit2/src/libgit2/fetchhead.c +11 -9
- data/vendor/libgit2/src/libgit2/filter.c +5 -5
- data/vendor/libgit2/src/libgit2/git2.rc +3 -3
- data/vendor/libgit2/src/libgit2/grafts.c +270 -0
- data/vendor/libgit2/src/libgit2/grafts.h +35 -0
- data/vendor/libgit2/src/libgit2/graph.c +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/libgit2/ident.c +3 -3
- data/vendor/libgit2/src/libgit2/ignore.c +9 -5
- data/vendor/libgit2/src/libgit2/index.c +392 -208
- data/vendor/libgit2/src/libgit2/index.h +16 -3
- data/vendor/libgit2/src/libgit2/index_map.c +95 -0
- data/vendor/libgit2/src/libgit2/index_map.h +28 -0
- data/vendor/libgit2/src/libgit2/indexer.c +44 -41
- data/vendor/libgit2/src/libgit2/iterator.c +34 -13
- data/vendor/libgit2/src/libgit2/iterator.h +3 -0
- data/vendor/libgit2/src/libgit2/libgit2.c +155 -331
- data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
- data/vendor/libgit2/src/libgit2/merge.c +56 -46
- data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
- data/vendor/libgit2/src/libgit2/merge_file.c +0 -2
- data/vendor/libgit2/src/libgit2/midx.c +86 -44
- data/vendor/libgit2/src/libgit2/midx.h +13 -3
- data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
- data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
- data/vendor/libgit2/src/libgit2/notes.c +9 -8
- data/vendor/libgit2/src/libgit2/object.c +42 -16
- data/vendor/libgit2/src/libgit2/object.h +6 -0
- data/vendor/libgit2/src/libgit2/odb.c +16 -9
- data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
- data/vendor/libgit2/src/libgit2/odb_pack.c +28 -7
- data/vendor/libgit2/src/libgit2/oid.c +35 -2
- data/vendor/libgit2/src/libgit2/oid.h +11 -0
- data/vendor/libgit2/src/libgit2/oidarray.c +49 -3
- data/vendor/libgit2/src/libgit2/oidarray.h +5 -1
- data/vendor/libgit2/src/libgit2/pack-objects.c +77 -43
- data/vendor/libgit2/src/libgit2/pack-objects.h +17 -6
- data/vendor/libgit2/src/libgit2/pack.c +33 -27
- data/vendor/libgit2/src/libgit2/pack.h +15 -10
- data/vendor/libgit2/src/libgit2/parse.c +7 -4
- data/vendor/libgit2/src/libgit2/parse.h +1 -1
- data/vendor/libgit2/src/libgit2/patch.h +7 -1
- data/vendor/libgit2/src/libgit2/patch_generate.c +24 -5
- data/vendor/libgit2/src/libgit2/patch_parse.c +18 -10
- data/vendor/libgit2/src/libgit2/path.c +1 -1
- data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
- data/vendor/libgit2/src/libgit2/push.c +81 -30
- data/vendor/libgit2/src/libgit2/push.h +1 -0
- data/vendor/libgit2/src/libgit2/reader.c +1 -1
- data/vendor/libgit2/src/libgit2/rebase.c +72 -84
- data/vendor/libgit2/src/libgit2/refdb_fs.c +146 -70
- data/vendor/libgit2/src/libgit2/reflog.c +1 -2
- data/vendor/libgit2/src/libgit2/reflog.h +2 -0
- data/vendor/libgit2/src/libgit2/refs.c +34 -8
- data/vendor/libgit2/src/libgit2/refs.h +6 -1
- data/vendor/libgit2/src/libgit2/refspec.c +28 -1
- data/vendor/libgit2/src/libgit2/refspec.h +8 -0
- data/vendor/libgit2/src/libgit2/remote.c +136 -67
- data/vendor/libgit2/src/libgit2/remote.h +1 -0
- data/vendor/libgit2/src/libgit2/repository.c +789 -330
- data/vendor/libgit2/src/libgit2/repository.h +22 -3
- data/vendor/libgit2/src/libgit2/reset.c +2 -2
- data/vendor/libgit2/src/libgit2/revert.c +9 -13
- data/vendor/libgit2/src/libgit2/revparse.c +6 -3
- data/vendor/libgit2/src/libgit2/revwalk.c +36 -11
- data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
- data/vendor/libgit2/src/libgit2/settings.c +468 -0
- data/vendor/libgit2/src/libgit2/settings.h +6 -2
- data/vendor/libgit2/src/libgit2/signature.c +132 -15
- data/vendor/libgit2/src/libgit2/signature.h +0 -1
- data/vendor/libgit2/src/libgit2/stash.c +9 -8
- data/vendor/libgit2/src/libgit2/status.c +1 -1
- data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -61
- data/vendor/libgit2/src/libgit2/streams/openssl.c +40 -23
- data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
- data/vendor/libgit2/src/libgit2/streams/socket.c +237 -51
- data/vendor/libgit2/src/libgit2/streams/socket.h +3 -1
- data/vendor/libgit2/src/libgit2/streams/stransport.c +79 -19
- data/vendor/libgit2/src/libgit2/streams/tls.c +5 -0
- data/vendor/libgit2/src/libgit2/submodule.c +106 -63
- data/vendor/libgit2/src/libgit2/submodule.h +9 -10
- data/vendor/libgit2/src/libgit2/tag.c +1 -1
- data/vendor/libgit2/src/libgit2/trailer.c +6 -6
- data/vendor/libgit2/src/libgit2/transaction.c +26 -20
- data/vendor/libgit2/src/libgit2/transaction.h +4 -1
- data/vendor/libgit2/src/libgit2/transport.c +4 -1
- data/vendor/libgit2/src/libgit2/transports/auth.h +1 -2
- data/vendor/libgit2/src/libgit2/transports/{auth_negotiate.c → auth_gssapi.c} +32 -32
- data/vendor/libgit2/src/libgit2/transports/auth_negotiate.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/auth_ntlm.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/{auth_ntlm.c → auth_ntlmclient.c} +12 -12
- data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
- data/vendor/libgit2/src/libgit2/transports/credential.c +1 -1
- data/vendor/libgit2/src/libgit2/transports/git.c +7 -8
- data/vendor/libgit2/src/libgit2/transports/http.c +8 -4
- data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
- data/vendor/libgit2/src/libgit2/transports/httpclient.c +117 -72
- data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
- data/vendor/libgit2/src/libgit2/transports/local.c +21 -11
- data/vendor/libgit2/src/libgit2/transports/smart.c +50 -32
- data/vendor/libgit2/src/libgit2/transports/smart.h +26 -9
- data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +139 -18
- data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +209 -57
- data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1126 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
- data/vendor/libgit2/src/libgit2/transports/winhttp.c +48 -21
- data/vendor/libgit2/src/libgit2/tree-cache.c +26 -16
- data/vendor/libgit2/src/libgit2/tree-cache.h +5 -3
- data/vendor/libgit2/src/libgit2/tree.c +35 -27
- data/vendor/libgit2/src/libgit2/tree.h +3 -2
- data/vendor/libgit2/src/libgit2/worktree.c +39 -27
- data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
- data/vendor/libgit2/src/util/alloc.c +69 -7
- data/vendor/libgit2/src/util/alloc.h +34 -9
- data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
- data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
- data/vendor/libgit2/src/util/allocators/failalloc.c +0 -60
- data/vendor/libgit2/src/util/allocators/failalloc.h +0 -6
- data/vendor/libgit2/src/util/allocators/stdalloc.c +2 -115
- data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +0 -68
- data/vendor/libgit2/src/util/array.h +24 -18
- data/vendor/libgit2/src/util/cc-compat.h +4 -0
- data/vendor/libgit2/src/util/ctype_compat.h +70 -0
- data/vendor/libgit2/src/util/date.c +22 -14
- data/vendor/libgit2/src/util/date.h +12 -0
- data/vendor/libgit2/src/util/errors.c +401 -0
- data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
- data/vendor/libgit2/src/util/filebuf.c +6 -1
- data/vendor/libgit2/src/util/filebuf.h +19 -6
- data/vendor/libgit2/src/util/fs_path.c +16 -5
- data/vendor/libgit2/src/util/fs_path.h +23 -0
- data/vendor/libgit2/src/util/futils.c +14 -10
- data/vendor/libgit2/src/util/futils.h +13 -4
- data/vendor/libgit2/src/util/git2_features.h.in +21 -4
- data/vendor/libgit2/src/util/git2_util.h +6 -0
- data/vendor/libgit2/src/util/hash/openssl.c +152 -0
- data/vendor/libgit2/src/util/hash/openssl.h +17 -1
- data/vendor/libgit2/src/util/hash/sha.h +4 -1
- data/vendor/libgit2/src/util/hashmap.h +424 -0
- data/vendor/libgit2/src/util/hashmap_str.h +43 -0
- data/vendor/libgit2/src/util/integer.h +3 -1
- data/vendor/libgit2/src/util/net.c +318 -161
- data/vendor/libgit2/src/util/net.h +27 -0
- data/vendor/libgit2/src/util/pool.c +1 -1
- data/vendor/libgit2/src/util/pool.h +5 -0
- data/vendor/libgit2/src/util/posix.c +54 -0
- data/vendor/libgit2/src/util/posix.h +22 -0
- data/vendor/libgit2/src/util/pqueue.h +1 -1
- data/vendor/libgit2/src/util/process.h +222 -0
- data/vendor/libgit2/src/util/rand.c +6 -10
- data/vendor/libgit2/src/util/regexp.c +1 -1
- data/vendor/libgit2/src/util/sortedcache.c +14 -13
- data/vendor/libgit2/src/util/sortedcache.h +3 -3
- data/vendor/libgit2/src/util/staticstr.h +66 -0
- data/vendor/libgit2/src/util/str.c +2 -2
- data/vendor/libgit2/src/util/strlist.c +108 -0
- data/vendor/libgit2/src/util/strlist.h +36 -0
- data/vendor/libgit2/src/util/unix/posix.h +0 -2
- data/vendor/libgit2/src/util/unix/process.c +629 -0
- data/vendor/libgit2/src/util/unix/realpath.c +23 -5
- data/vendor/libgit2/src/util/util.c +17 -12
- data/vendor/libgit2/src/util/util.h +28 -54
- data/vendor/libgit2/src/util/vector.c +3 -3
- data/vendor/libgit2/src/util/vector.h +2 -2
- data/vendor/libgit2/src/util/win32/error.c +1 -1
- data/vendor/libgit2/src/util/win32/path_w32.c +8 -8
- data/vendor/libgit2/src/util/win32/posix_w32.c +30 -7
- data/vendor/libgit2/src/util/win32/process.c +506 -0
- data/vendor/libgit2/src/util/win32/utf-conv.c +73 -75
- data/vendor/libgit2/src/util/win32/utf-conv.h +81 -14
- data/vendor/libgit2/src/util/win32/w32_util.c +1 -1
- metadata +72 -49
- data/vendor/libgit2/cmake/SelectWinHTTP.cmake +0 -17
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
- data/vendor/libgit2/deps/http-parser/COPYING +0 -23
- data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
- data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
- data/vendor/libgit2/deps/zlib/COPYING +0 -27
- data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
- data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
- data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
- data/vendor/libgit2/src/libgit2/errors.c +0 -238
- data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
- data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
- data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
- data/vendor/libgit2/src/libgit2/netops.c +0 -124
- data/vendor/libgit2/src/libgit2/netops.h +0 -68
- data/vendor/libgit2/src/libgit2/offmap.c +0 -101
- data/vendor/libgit2/src/libgit2/offmap.h +0 -133
- data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
- data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
- data/vendor/libgit2/src/libgit2/threadstate.c +0 -84
- data/vendor/libgit2/src/libgit2/threadstate.h +0 -24
- data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
- data/vendor/libgit2/src/util/khash.h +0 -615
- data/vendor/libgit2/src/util/strmap.c +0 -100
- data/vendor/libgit2/src/util/strmap.h +0 -131
- /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiff.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xinclude.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xtypes.h +0 -0
@@ -14,6 +14,9 @@
|
|
14
14
|
#include "odb.h"
|
15
15
|
#include "object.h"
|
16
16
|
#include "git2/oid.h"
|
17
|
+
#include "hashmap_oid.h"
|
18
|
+
|
19
|
+
GIT_HASHMAP_OID_FUNCTIONS(git_cache_oidmap, GIT_HASHMAP_INLINE, git_cached_obj *);
|
17
20
|
|
18
21
|
bool git_cache__enabled = true;
|
19
22
|
ssize_t git_cache__max_storage = (256 * 1024 * 1024);
|
@@ -45,9 +48,6 @@ int git_cache_init(git_cache *cache)
|
|
45
48
|
{
|
46
49
|
memset(cache, 0, sizeof(*cache));
|
47
50
|
|
48
|
-
if ((git_oidmap_new(&cache->map)) < 0)
|
49
|
-
return -1;
|
50
|
-
|
51
51
|
if (git_rwlock_init(&cache->lock)) {
|
52
52
|
git_error_set(GIT_ERROR_OS, "failed to initialize cache rwlock");
|
53
53
|
return -1;
|
@@ -60,15 +60,15 @@ int git_cache_init(git_cache *cache)
|
|
60
60
|
static void clear_cache(git_cache *cache)
|
61
61
|
{
|
62
62
|
git_cached_obj *evict = NULL;
|
63
|
+
git_hashmap_iter_t iter = GIT_HASHMAP_ITER_INIT;
|
63
64
|
|
64
65
|
if (git_cache_size(cache) == 0)
|
65
66
|
return;
|
66
67
|
|
67
|
-
|
68
|
+
while (git_cache_oidmap_iterate(&iter, NULL, &evict, &cache->map) == 0)
|
68
69
|
git_cached_obj_decref(evict);
|
69
|
-
});
|
70
70
|
|
71
|
-
|
71
|
+
git_cache_oidmap_clear(&cache->map);
|
72
72
|
git_atomic_ssize_add(&git_cache__current_storage, -cache->used_memory);
|
73
73
|
cache->used_memory = 0;
|
74
74
|
}
|
@@ -83,10 +83,15 @@ void git_cache_clear(git_cache *cache)
|
|
83
83
|
git_rwlock_wrunlock(&cache->lock);
|
84
84
|
}
|
85
85
|
|
86
|
+
size_t git_cache_size(git_cache *cache)
|
87
|
+
{
|
88
|
+
return git_cache_oidmap_size(&cache->map);
|
89
|
+
}
|
90
|
+
|
86
91
|
void git_cache_dispose(git_cache *cache)
|
87
92
|
{
|
88
93
|
git_cache_clear(cache);
|
89
|
-
|
94
|
+
git_cache_oidmap_dispose(&cache->map);
|
90
95
|
git_rwlock_free(&cache->lock);
|
91
96
|
git__memzero(cache, sizeof(*cache));
|
92
97
|
}
|
@@ -94,8 +99,9 @@ void git_cache_dispose(git_cache *cache)
|
|
94
99
|
/* Called with lock */
|
95
100
|
static void cache_evict_entries(git_cache *cache)
|
96
101
|
{
|
97
|
-
size_t evict_count = git_cache_size(cache) / 2048
|
102
|
+
size_t evict_count = git_cache_size(cache) / 2048;
|
98
103
|
ssize_t evicted_memory = 0;
|
104
|
+
git_hashmap_iter_t iter = GIT_HASHMAP_ITER_INIT;
|
99
105
|
|
100
106
|
if (evict_count < 8)
|
101
107
|
evict_count = 8;
|
@@ -106,17 +112,16 @@ static void cache_evict_entries(git_cache *cache)
|
|
106
112
|
return;
|
107
113
|
}
|
108
114
|
|
109
|
-
i = 0;
|
110
115
|
while (evict_count > 0) {
|
111
|
-
git_cached_obj *evict;
|
112
116
|
const git_oid *key;
|
117
|
+
git_cached_obj *evict;
|
113
118
|
|
114
|
-
if (
|
119
|
+
if (git_cache_oidmap_iterate(&iter, &key, &evict, &cache->map) != 0)
|
115
120
|
break;
|
116
121
|
|
117
122
|
evict_count--;
|
118
123
|
evicted_memory += evict->size;
|
119
|
-
|
124
|
+
git_cache_oidmap_remove(&cache->map, key);
|
120
125
|
git_cached_obj_decref(evict);
|
121
126
|
}
|
122
127
|
|
@@ -132,12 +137,12 @@ static bool cache_should_store(git_object_t object_type, size_t object_size)
|
|
132
137
|
|
133
138
|
static void *cache_get(git_cache *cache, const git_oid *oid, unsigned int flags)
|
134
139
|
{
|
135
|
-
git_cached_obj *entry;
|
140
|
+
git_cached_obj *entry = NULL;
|
136
141
|
|
137
142
|
if (!git_cache__enabled || git_rwlock_rdlock(&cache->lock) < 0)
|
138
143
|
return NULL;
|
139
144
|
|
140
|
-
if ((entry
|
145
|
+
if (git_cache_oidmap_get(&entry, &cache->map, oid) == 0) {
|
141
146
|
if (flags && entry->flags != flags) {
|
142
147
|
entry = NULL;
|
143
148
|
} else {
|
@@ -172,8 +177,8 @@ static void *cache_store(git_cache *cache, git_cached_obj *entry)
|
|
172
177
|
cache_evict_entries(cache);
|
173
178
|
|
174
179
|
/* not found */
|
175
|
-
if ((stored_entry
|
176
|
-
if (
|
180
|
+
if (git_cache_oidmap_get(&stored_entry, &cache->map, &entry->oid) != 0) {
|
181
|
+
if (git_cache_oidmap_put(&cache->map, &entry->oid, entry) == 0) {
|
177
182
|
git_cached_obj_incref(entry);
|
178
183
|
cache->used_memory += entry->size;
|
179
184
|
git_atomic_ssize_add(&git_cache__current_storage, (ssize_t)entry->size);
|
@@ -187,7 +192,7 @@ static void *cache_store(git_cache *cache, git_cached_obj *entry)
|
|
187
192
|
entry = stored_entry;
|
188
193
|
} else if (stored_entry->flags == GIT_CACHE_STORE_RAW &&
|
189
194
|
entry->flags == GIT_CACHE_STORE_PARSED) {
|
190
|
-
if (
|
195
|
+
if (git_cache_oidmap_put(&cache->map, &entry->oid, entry) == 0) {
|
191
196
|
git_cached_obj_decref(stored_entry);
|
192
197
|
git_cached_obj_incref(entry);
|
193
198
|
} else {
|
@@ -14,7 +14,7 @@
|
|
14
14
|
#include "git2/odb.h"
|
15
15
|
|
16
16
|
#include "thread.h"
|
17
|
-
#include "
|
17
|
+
#include "hashmap_oid.h"
|
18
18
|
|
19
19
|
enum {
|
20
20
|
GIT_CACHE_STORE_ANY = 0,
|
@@ -30,10 +30,12 @@ typedef struct {
|
|
30
30
|
git_atomic32 refcount;
|
31
31
|
} git_cached_obj;
|
32
32
|
|
33
|
+
GIT_HASHMAP_OID_STRUCT(git_cache_oidmap, git_cached_obj *);
|
34
|
+
|
33
35
|
typedef struct {
|
34
|
-
|
35
|
-
git_rwlock
|
36
|
-
ssize_t
|
36
|
+
git_cache_oidmap map;
|
37
|
+
git_rwlock lock;
|
38
|
+
ssize_t used_memory;
|
37
39
|
} git_cache;
|
38
40
|
|
39
41
|
extern bool git_cache__enabled;
|
@@ -45,6 +47,7 @@ int git_cache_set_max_object_size(git_object_t type, size_t size);
|
|
45
47
|
int git_cache_init(git_cache *cache);
|
46
48
|
void git_cache_dispose(git_cache *cache);
|
47
49
|
void git_cache_clear(git_cache *cache);
|
50
|
+
size_t git_cache_size(git_cache *cache);
|
48
51
|
|
49
52
|
void *git_cache_store_raw(git_cache *cache, git_odb_object *entry);
|
50
53
|
void *git_cache_store_parsed(git_cache *cache, git_object *entry);
|
@@ -53,11 +56,6 @@ git_odb_object *git_cache_get_raw(git_cache *cache, const git_oid *oid);
|
|
53
56
|
git_object *git_cache_get_parsed(git_cache *cache, const git_oid *oid);
|
54
57
|
void *git_cache_get_any(git_cache *cache, const git_oid *oid);
|
55
58
|
|
56
|
-
GIT_INLINE(size_t) git_cache_size(git_cache *cache)
|
57
|
-
{
|
58
|
-
return (size_t)git_oidmap_size(cache->map);
|
59
|
-
}
|
60
|
-
|
61
59
|
GIT_INLINE(void) git_cached_obj_incref(void *_obj)
|
62
60
|
{
|
63
61
|
git_cached_obj *obj = _obj;
|
@@ -30,8 +30,8 @@
|
|
30
30
|
#include "fs_path.h"
|
31
31
|
#include "attr.h"
|
32
32
|
#include "pool.h"
|
33
|
-
#include "strmap.h"
|
34
33
|
#include "path.h"
|
34
|
+
#include "hashmap_str.h"
|
35
35
|
|
36
36
|
/* See docs/checkout-internals.md for more information */
|
37
37
|
|
@@ -72,7 +72,7 @@ typedef struct {
|
|
72
72
|
size_t total_steps;
|
73
73
|
size_t completed_steps;
|
74
74
|
git_checkout_perfdata perfdata;
|
75
|
-
|
75
|
+
git_hashset_str mkdir_pathcache;
|
76
76
|
git_attr_session attr_session;
|
77
77
|
} checkout_data;
|
78
78
|
|
@@ -294,6 +294,9 @@ static int checkout_action_no_wd(
|
|
294
294
|
|
295
295
|
*action = CHECKOUT_ACTION__NONE;
|
296
296
|
|
297
|
+
if ((data->strategy & GIT_CHECKOUT_NONE))
|
298
|
+
return 0;
|
299
|
+
|
297
300
|
switch (delta->status) {
|
298
301
|
case GIT_DELTA_UNMODIFIED: /* case 12 */
|
299
302
|
error = checkout_notify(data, GIT_CHECKOUT_NOTIFY_DIRTY, delta, NULL);
|
@@ -302,17 +305,17 @@ static int checkout_action_no_wd(
|
|
302
305
|
*action = CHECKOUT_ACTION_IF(RECREATE_MISSING, UPDATE_BLOB, NONE);
|
303
306
|
break;
|
304
307
|
case GIT_DELTA_ADDED: /* case 2 or 28 (and 5 but not really) */
|
305
|
-
*action =
|
308
|
+
*action = CHECKOUT_ACTION__UPDATE_BLOB;
|
306
309
|
break;
|
307
310
|
case GIT_DELTA_MODIFIED: /* case 13 (and 35 but not really) */
|
308
311
|
*action = CHECKOUT_ACTION_IF(RECREATE_MISSING, UPDATE_BLOB, CONFLICT);
|
309
312
|
break;
|
310
313
|
case GIT_DELTA_TYPECHANGE: /* case 21 (B->T) and 28 (T->B)*/
|
311
314
|
if (delta->new_file.mode == GIT_FILEMODE_TREE)
|
312
|
-
*action =
|
315
|
+
*action = CHECKOUT_ACTION__UPDATE_BLOB;
|
313
316
|
break;
|
314
317
|
case GIT_DELTA_DELETED: /* case 8 or 25 */
|
315
|
-
*action =
|
318
|
+
*action = CHECKOUT_ACTION__REMOVE;
|
316
319
|
break;
|
317
320
|
default: /* impossible */
|
318
321
|
break;
|
@@ -494,6 +497,9 @@ static int checkout_action_with_wd(
|
|
494
497
|
{
|
495
498
|
*action = CHECKOUT_ACTION__NONE;
|
496
499
|
|
500
|
+
if ((data->strategy & GIT_CHECKOUT_NONE))
|
501
|
+
return 0;
|
502
|
+
|
497
503
|
switch (delta->status) {
|
498
504
|
case GIT_DELTA_UNMODIFIED: /* case 14/15 or 33 */
|
499
505
|
if (checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd)) {
|
@@ -512,14 +518,14 @@ static int checkout_action_with_wd(
|
|
512
518
|
if (checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd))
|
513
519
|
*action = CHECKOUT_ACTION_IF(FORCE, REMOVE, CONFLICT);
|
514
520
|
else
|
515
|
-
*action =
|
521
|
+
*action = CHECKOUT_ACTION__REMOVE;
|
516
522
|
break;
|
517
523
|
case GIT_DELTA_MODIFIED: /* case 16, 17, 18 (or 36 but not really) */
|
518
524
|
if (wd->mode != GIT_FILEMODE_COMMIT &&
|
519
525
|
checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd))
|
520
526
|
*action = CHECKOUT_ACTION_IF(FORCE, UPDATE_BLOB, CONFLICT);
|
521
527
|
else
|
522
|
-
*action =
|
528
|
+
*action = CHECKOUT_ACTION__UPDATE_BLOB;
|
523
529
|
break;
|
524
530
|
case GIT_DELTA_TYPECHANGE: /* case 22, 23, 29, 30 */
|
525
531
|
if (delta->old_file.mode == GIT_FILEMODE_TREE) {
|
@@ -527,13 +533,13 @@ static int checkout_action_with_wd(
|
|
527
533
|
/* either deleting items in old tree will delete the wd dir,
|
528
534
|
* or we'll get a conflict when we attempt blob update...
|
529
535
|
*/
|
530
|
-
*action =
|
536
|
+
*action = CHECKOUT_ACTION__UPDATE_BLOB;
|
531
537
|
else if (wd->mode == GIT_FILEMODE_COMMIT) {
|
532
538
|
/* workdir is possibly a "phantom" submodule - treat as a
|
533
539
|
* tree if the only submodule info came from the config
|
534
540
|
*/
|
535
541
|
if (submodule_is_config_only(data, wd->path))
|
536
|
-
*action =
|
542
|
+
*action = CHECKOUT_ACTION__UPDATE_BLOB;
|
537
543
|
else
|
538
544
|
*action = CHECKOUT_ACTION_IF(FORCE, REMOVE_AND_UPDATE, CONFLICT);
|
539
545
|
} else
|
@@ -542,7 +548,7 @@ static int checkout_action_with_wd(
|
|
542
548
|
else if (checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd))
|
543
549
|
*action = CHECKOUT_ACTION_IF(FORCE, REMOVE_AND_UPDATE, CONFLICT);
|
544
550
|
else
|
545
|
-
*action =
|
551
|
+
*action = CHECKOUT_ACTION__REMOVE_AND_UPDATE;
|
546
552
|
|
547
553
|
/* don't update if the typechange is to a tree */
|
548
554
|
if (delta->new_file.mode == GIT_FILEMODE_TREE)
|
@@ -563,6 +569,9 @@ static int checkout_action_with_wd_blocker(
|
|
563
569
|
{
|
564
570
|
*action = CHECKOUT_ACTION__NONE;
|
565
571
|
|
572
|
+
if ((data->strategy & GIT_CHECKOUT_NONE))
|
573
|
+
return 0;
|
574
|
+
|
566
575
|
switch (delta->status) {
|
567
576
|
case GIT_DELTA_UNMODIFIED:
|
568
577
|
/* should show delta as dirty / deleted */
|
@@ -597,6 +606,9 @@ static int checkout_action_with_wd_dir(
|
|
597
606
|
{
|
598
607
|
*action = CHECKOUT_ACTION__NONE;
|
599
608
|
|
609
|
+
if ((data->strategy & GIT_CHECKOUT_NONE))
|
610
|
+
return 0;
|
611
|
+
|
600
612
|
switch (delta->status) {
|
601
613
|
case GIT_DELTA_UNMODIFIED: /* case 19 or 24 (or 34 but not really) */
|
602
614
|
GIT_ERROR_CHECK_ERROR(
|
@@ -627,7 +639,7 @@ static int checkout_action_with_wd_dir(
|
|
627
639
|
* directory if is it left empty, so we can defer removing the
|
628
640
|
* dir and it will succeed if no children are left.
|
629
641
|
*/
|
630
|
-
*action =
|
642
|
+
*action = CHECKOUT_ACTION__UPDATE_BLOB;
|
631
643
|
}
|
632
644
|
else if (delta->new_file.mode != GIT_FILEMODE_TREE)
|
633
645
|
/* For typechange to dir, dir is already created so no action */
|
@@ -1419,8 +1431,10 @@ static int checkout_mkdir(
|
|
1419
1431
|
struct git_futils_mkdir_options mkdir_opts = {0};
|
1420
1432
|
int error;
|
1421
1433
|
|
1422
|
-
|
1423
|
-
|
1434
|
+
if (git_pool_is_initialized(&data->pool)) {
|
1435
|
+
mkdir_opts.cache_pool = &data->pool;
|
1436
|
+
mkdir_opts.cache_pathset = &data->mkdir_pathcache;
|
1437
|
+
}
|
1424
1438
|
|
1425
1439
|
error = git_futils_mkdir_relative(
|
1426
1440
|
path, base, mode, flags, &mkdir_opts);
|
@@ -2316,11 +2330,11 @@ static void checkout_data_clear(checkout_data *data)
|
|
2316
2330
|
data->opts.baseline = NULL;
|
2317
2331
|
}
|
2318
2332
|
|
2319
|
-
|
2333
|
+
git_vector_dispose(&data->removes);
|
2320
2334
|
git_pool_clear(&data->pool);
|
2321
2335
|
|
2322
|
-
|
2323
|
-
|
2336
|
+
git_vector_dispose_deep(&data->remove_conflicts);
|
2337
|
+
git_vector_dispose_deep(&data->update_conflicts);
|
2324
2338
|
|
2325
2339
|
git__free(data->pfx);
|
2326
2340
|
data->pfx = NULL;
|
@@ -2331,8 +2345,7 @@ static void checkout_data_clear(checkout_data *data)
|
|
2331
2345
|
git_index_free(data->index);
|
2332
2346
|
data->index = NULL;
|
2333
2347
|
|
2334
|
-
|
2335
|
-
data->mkdir_map = NULL;
|
2348
|
+
git_hashset_str_dispose(&data->mkdir_pathcache);
|
2336
2349
|
|
2337
2350
|
git_attr_session__free(&data->attr_session);
|
2338
2351
|
}
|
@@ -2432,14 +2445,12 @@ static int checkout_data_init(
|
|
2432
2445
|
|
2433
2446
|
/* if you are forcing, allow all safe updates, plus recreate missing */
|
2434
2447
|
if ((data->opts.checkout_strategy & GIT_CHECKOUT_FORCE) != 0)
|
2435
|
-
data->opts.checkout_strategy |=
|
2436
|
-
GIT_CHECKOUT_RECREATE_MISSING;
|
2448
|
+
data->opts.checkout_strategy |= GIT_CHECKOUT_RECREATE_MISSING;
|
2437
2449
|
|
2438
2450
|
/* if the repository does not actually have an index file, then this
|
2439
2451
|
* is an initial checkout (perhaps from clone), so we allow safe updates
|
2440
2452
|
*/
|
2441
|
-
if (!data->index->on_disk
|
2442
|
-
(data->opts.checkout_strategy & GIT_CHECKOUT_SAFE) != 0)
|
2453
|
+
if (!data->index->on_disk)
|
2443
2454
|
data->opts.checkout_strategy |= GIT_CHECKOUT_RECREATE_MISSING;
|
2444
2455
|
|
2445
2456
|
data->strategy = data->opts.checkout_strategy;
|
@@ -2513,8 +2524,7 @@ static int checkout_data_init(
|
|
2513
2524
|
(error = git_vector_init(&data->remove_conflicts, 0, NULL)) < 0 ||
|
2514
2525
|
(error = git_vector_init(&data->update_conflicts, 0, NULL)) < 0 ||
|
2515
2526
|
(error = git_str_puts(&data->target_path, data->opts.target_directory)) < 0 ||
|
2516
|
-
(error = git_fs_path_to_dir(&data->target_path)) < 0
|
2517
|
-
(error = git_strmap_new(&data->mkdir_map)) < 0)
|
2527
|
+
(error = git_fs_path_to_dir(&data->target_path)) < 0)
|
2518
2528
|
goto cleanup;
|
2519
2529
|
|
2520
2530
|
data->target_len = git_str_len(&data->target_path);
|
@@ -12,8 +12,6 @@
|
|
12
12
|
#include "git2/checkout.h"
|
13
13
|
#include "iterator.h"
|
14
14
|
|
15
|
-
#define GIT_CHECKOUT__NOTIFY_CONFLICT_TREE (1u << 12)
|
16
|
-
|
17
15
|
/**
|
18
16
|
* Update the working directory to match the target iterator. The
|
19
17
|
* expected baseline value can be passed in via the checkout options
|
@@ -73,8 +73,7 @@ static int cherrypick_normalize_opts(
|
|
73
73
|
const char *their_label)
|
74
74
|
{
|
75
75
|
int error = 0;
|
76
|
-
unsigned int default_checkout_strategy =
|
77
|
-
GIT_CHECKOUT_ALLOW_CONFLICTS;
|
76
|
+
unsigned int default_checkout_strategy = GIT_CHECKOUT_ALLOW_CONFLICTS;
|
78
77
|
|
79
78
|
GIT_UNUSED(repo);
|
80
79
|
|
@@ -106,10 +105,10 @@ static int cherrypick_state_cleanup(git_repository *repo)
|
|
106
105
|
|
107
106
|
static int cherrypick_seterr(git_commit *commit, const char *fmt)
|
108
107
|
{
|
109
|
-
char commit_oidstr[
|
108
|
+
char commit_oidstr[GIT_OID_MAX_HEXSIZE + 1];
|
110
109
|
|
111
110
|
git_error_set(GIT_ERROR_CHERRYPICK, fmt,
|
112
|
-
git_oid_tostr(commit_oidstr,
|
111
|
+
git_oid_tostr(commit_oidstr, GIT_OID_MAX_HEXSIZE + 1, git_commit_id(commit)));
|
113
112
|
|
114
113
|
return -1;
|
115
114
|
}
|
@@ -173,7 +172,7 @@ int git_cherrypick(
|
|
173
172
|
git_cherrypick_options opts;
|
174
173
|
git_reference *our_ref = NULL;
|
175
174
|
git_commit *our_commit = NULL;
|
176
|
-
char commit_oidstr[
|
175
|
+
char commit_oidstr[GIT_OID_MAX_HEXSIZE + 1];
|
177
176
|
const char *commit_msg, *commit_summary;
|
178
177
|
git_str their_label = GIT_STR_INIT;
|
179
178
|
git_index *index = NULL;
|