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
@@ -8,6 +8,10 @@
|
|
8
8
|
#ifndef CLI_opt_usage_h__
|
9
9
|
#define CLI_opt_usage_h__
|
10
10
|
|
11
|
+
typedef enum {
|
12
|
+
CLI_OPT_USAGE_SHOW_HIDDEN = (1 << 0),
|
13
|
+
} cli_opt_usage_flags;
|
14
|
+
|
11
15
|
/**
|
12
16
|
* Prints usage information to the given file handle.
|
13
17
|
*
|
@@ -21,7 +25,8 @@ int cli_opt_usage_fprint(
|
|
21
25
|
FILE *file,
|
22
26
|
const char *command,
|
23
27
|
const char *subcommand,
|
24
|
-
const cli_opt_spec specs[]
|
28
|
+
const cli_opt_spec specs[],
|
29
|
+
unsigned int print_flags);
|
25
30
|
|
26
31
|
int cli_opt_usage_error(
|
27
32
|
const char *subcommand,
|
@@ -15,10 +15,10 @@
|
|
15
15
|
/*
|
16
16
|
* Show updates to the percentage and number of objects received
|
17
17
|
* separately from the throughput to give an accurate progress while
|
18
|
-
* avoiding too much noise on the screen.
|
18
|
+
* avoiding too much noise on the screen. (In milliseconds.)
|
19
19
|
*/
|
20
|
-
#define PROGRESS_UPDATE_TIME
|
21
|
-
#define THROUGHPUT_UPDATE_TIME
|
20
|
+
#define PROGRESS_UPDATE_TIME 60
|
21
|
+
#define THROUGHPUT_UPDATE_TIME 500
|
22
22
|
|
23
23
|
#define is_nl(c) ((c) == '\r' || (c) == '\n')
|
24
24
|
|
@@ -54,7 +54,7 @@ static int progress_write(cli_progress *progress, bool force, git_str *line)
|
|
54
54
|
bool has_nl;
|
55
55
|
size_t no_nl = no_nl_len(line->ptr, line->size);
|
56
56
|
size_t nl = nl_len(&has_nl, line->ptr + no_nl, line->size - no_nl);
|
57
|
-
|
57
|
+
uint64_t now = git_time_monotonic();
|
58
58
|
size_t i;
|
59
59
|
|
60
60
|
/* Avoid spamming the console with progress updates */
|
@@ -191,20 +191,21 @@ static int fetch_receiving(
|
|
191
191
|
{
|
192
192
|
char *recv_units[] = { "B", "KiB", "MiB", "GiB", "TiB", NULL };
|
193
193
|
char *rate_units[] = { "B/s", "KiB/s", "MiB/s", "GiB/s", "TiB/s", NULL };
|
194
|
+
uint64_t now, elapsed;
|
194
195
|
|
195
|
-
double
|
196
|
+
double recv_len, rate;
|
196
197
|
size_t recv_unit_idx = 0, rate_unit_idx = 0;
|
197
198
|
bool done = (stats->received_objects == stats->total_objects);
|
198
199
|
|
199
200
|
if (!progress->action_start)
|
200
|
-
progress->action_start =
|
201
|
+
progress->action_start = git_time_monotonic();
|
201
202
|
|
202
203
|
if (done && progress->action_finish)
|
203
204
|
now = progress->action_finish;
|
204
205
|
else if (done)
|
205
|
-
progress->action_finish = now =
|
206
|
+
progress->action_finish = now = git_time_monotonic();
|
206
207
|
else
|
207
|
-
now =
|
208
|
+
now = git_time_monotonic();
|
208
209
|
|
209
210
|
if (progress->throughput_update &&
|
210
211
|
now - progress->throughput_update < THROUGHPUT_UPDATE_TIME) {
|
@@ -241,7 +242,21 @@ static int fetch_receiving(
|
|
241
242
|
done ? ", done." : "");
|
242
243
|
}
|
243
244
|
|
244
|
-
static int
|
245
|
+
static int indexer_indexing(
|
246
|
+
cli_progress *progress,
|
247
|
+
const git_indexer_progress *stats)
|
248
|
+
{
|
249
|
+
bool done = (stats->received_objects == stats->total_objects);
|
250
|
+
|
251
|
+
return progress_printf(progress, false,
|
252
|
+
"Indexing objects: %3d%% (%d/%d)%s\r",
|
253
|
+
percent(stats->received_objects, stats->total_objects),
|
254
|
+
stats->received_objects,
|
255
|
+
stats->total_objects,
|
256
|
+
done ? ", done." : "");
|
257
|
+
}
|
258
|
+
|
259
|
+
static int indexer_resolving(
|
245
260
|
cli_progress *progress,
|
246
261
|
const git_indexer_progress *stats)
|
247
262
|
{
|
@@ -282,7 +297,42 @@ int cli_progress_fetch_transfer(const git_indexer_progress *stats, void *payload
|
|
282
297
|
/* fall through */
|
283
298
|
|
284
299
|
case CLI_PROGRESS_RESOLVING:
|
285
|
-
error =
|
300
|
+
error = indexer_resolving(progress, stats);
|
301
|
+
break;
|
302
|
+
|
303
|
+
default:
|
304
|
+
/* should not be reached */
|
305
|
+
GIT_ASSERT(!"unexpected progress state");
|
306
|
+
}
|
307
|
+
|
308
|
+
return error;
|
309
|
+
}
|
310
|
+
|
311
|
+
int cli_progress_indexer(
|
312
|
+
const git_indexer_progress *stats,
|
313
|
+
void *payload)
|
314
|
+
{
|
315
|
+
cli_progress *progress = (cli_progress *)payload;
|
316
|
+
int error = 0;
|
317
|
+
|
318
|
+
switch (progress->action) {
|
319
|
+
case CLI_PROGRESS_NONE:
|
320
|
+
progress->action = CLI_PROGRESS_INDEXING;
|
321
|
+
/* fall through */
|
322
|
+
|
323
|
+
case CLI_PROGRESS_INDEXING:
|
324
|
+
if ((error = indexer_indexing(progress, stats)) < 0)
|
325
|
+
break;
|
326
|
+
|
327
|
+
if (stats->indexed_deltas == stats->total_deltas)
|
328
|
+
break;
|
329
|
+
|
330
|
+
progress_complete(progress);
|
331
|
+
progress->action = CLI_PROGRESS_RESOLVING;
|
332
|
+
/* fall through */
|
333
|
+
|
334
|
+
case CLI_PROGRESS_RESOLVING:
|
335
|
+
error = indexer_resolving(progress, stats);
|
286
336
|
break;
|
287
337
|
|
288
338
|
default:
|
@@ -22,6 +22,7 @@
|
|
22
22
|
typedef enum {
|
23
23
|
CLI_PROGRESS_NONE,
|
24
24
|
CLI_PROGRESS_RECEIVING,
|
25
|
+
CLI_PROGRESS_INDEXING,
|
25
26
|
CLI_PROGRESS_RESOLVING,
|
26
27
|
CLI_PROGRESS_CHECKING_OUT
|
27
28
|
} cli_progress_t;
|
@@ -30,11 +31,11 @@ typedef struct {
|
|
30
31
|
cli_progress_t action;
|
31
32
|
|
32
33
|
/* Actions may time themselves (eg fetch) but are not required to */
|
33
|
-
|
34
|
-
|
34
|
+
uint64_t action_start;
|
35
|
+
uint64_t action_finish;
|
35
36
|
|
36
37
|
/* Last console update, avoid too frequent updates. */
|
37
|
-
|
38
|
+
uint64_t last_update;
|
38
39
|
|
39
40
|
/* Accumulators for partial output and deferred updates. */
|
40
41
|
git_str sideband;
|
@@ -42,7 +43,7 @@ typedef struct {
|
|
42
43
|
git_str deferred;
|
43
44
|
|
44
45
|
/* Last update about throughput */
|
45
|
-
|
46
|
+
uint64_t throughput_update;
|
46
47
|
double throughput_bytes;
|
47
48
|
} cli_progress;
|
48
49
|
|
@@ -74,6 +75,17 @@ extern int cli_progress_fetch_transfer(
|
|
74
75
|
const git_indexer_progress *stats,
|
75
76
|
void *payload);
|
76
77
|
|
78
|
+
/**
|
79
|
+
* Prints indexer progress to the console. Suitable for a
|
80
|
+
* `progress_cb` callback for `git_indexer_options`.
|
81
|
+
*
|
82
|
+
* @param stats The indexer stats
|
83
|
+
* @param payload A pointer to the cli_progress
|
84
|
+
*/
|
85
|
+
extern int cli_progress_indexer(
|
86
|
+
const git_indexer_progress *stats,
|
87
|
+
void *payload);
|
88
|
+
|
77
89
|
/**
|
78
90
|
* Prints checkout progress to the console. Suitable for a
|
79
91
|
* `progress_cb` callback for `git_checkout_options`.
|
@@ -2,10 +2,9 @@
|
|
2
2
|
# git library functionality.
|
3
3
|
|
4
4
|
add_library(libgit2 OBJECT)
|
5
|
-
set_target_properties(libgit2 PROPERTIES C_STANDARD 90)
|
6
|
-
set_target_properties(libgit2 PROPERTIES C_EXTENSIONS OFF)
|
7
5
|
|
8
6
|
include(PkgBuildConfig)
|
7
|
+
include(CMakePackageConfigHelpers)
|
9
8
|
|
10
9
|
set(LIBGIT2_INCLUDES
|
11
10
|
"${PROJECT_BINARY_DIR}/src/util"
|
@@ -24,8 +23,7 @@ target_sources(libgit2 PRIVATE ${SRC_H})
|
|
24
23
|
|
25
24
|
file(GLOB SRC_GIT2 *.c *.h
|
26
25
|
streams/*.c streams/*.h
|
27
|
-
transports/*.c transports/*.h
|
28
|
-
xdiff/*.c xdiff/*.h)
|
26
|
+
transports/*.c transports/*.h)
|
29
27
|
list(SORT SRC_GIT2)
|
30
28
|
target_sources(libgit2 PRIVATE ${SRC_GIT2})
|
31
29
|
|
@@ -39,23 +37,6 @@ if(APPLE)
|
|
39
37
|
set_source_files_properties(streams/stransport.c PROPERTIES COMPILE_FLAGS -Wno-deprecated)
|
40
38
|
endif()
|
41
39
|
|
42
|
-
# the xdiff dependency is not (yet) warning-free, disable warnings
|
43
|
-
# as errors for the xdiff sources until we've sorted them out
|
44
|
-
if(MSVC)
|
45
|
-
set_source_files_properties(xdiff/xdiffi.c PROPERTIES COMPILE_FLAGS -WX-)
|
46
|
-
set_source_files_properties(xdiff/xemit.c PROPERTIES COMPILE_FLAGS -WX-)
|
47
|
-
set_source_files_properties(xdiff/xhistogram.c PROPERTIES COMPILE_FLAGS -WX-)
|
48
|
-
set_source_files_properties(xdiff/xmerge.c PROPERTIES COMPILE_FLAGS -WX-)
|
49
|
-
set_source_files_properties(xdiff/xutils.c PROPERTIES COMPILE_FLAGS -WX-)
|
50
|
-
set_source_files_properties(xdiff/xpatience.c PROPERTIES COMPILE_FLAGS -WX-)
|
51
|
-
else()
|
52
|
-
set_source_files_properties(xdiff/xdiffi.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
|
53
|
-
set_source_files_properties(xdiff/xemit.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
|
54
|
-
set_source_files_properties(xdiff/xhistogram.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
|
55
|
-
set_source_files_properties(xdiff/xutils.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
|
56
|
-
set_source_files_properties(xdiff/xpatience.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
|
57
|
-
endif()
|
58
|
-
|
59
40
|
ide_split_sources(libgit2)
|
60
41
|
list(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:util> $<TARGET_OBJECTS:libgit2> ${LIBGIT2_DEPENDENCY_OBJECTS})
|
61
42
|
list(APPEND LIBGIT2_INCLUDES ${LIBGIT2_DEPENDENCY_INCLUDES})
|
@@ -77,18 +58,14 @@ set(LIBGIT2_SYSTEM_LIBS ${LIBGIT2_SYSTEM_LIBS} PARENT_SCOPE)
|
|
77
58
|
add_library(libgit2package ${SRC_RC} ${LIBGIT2_OBJECTS})
|
78
59
|
target_link_libraries(libgit2package ${LIBGIT2_SYSTEM_LIBS})
|
79
60
|
target_include_directories(libgit2package SYSTEM PRIVATE ${LIBGIT2_INCLUDES})
|
61
|
+
target_include_directories(libgit2package INTERFACE $<INSTALL_INTERFACE:./include/git2>)
|
80
62
|
|
81
63
|
set_target_properties(libgit2package PROPERTIES C_STANDARD 90)
|
64
|
+
set_target_properties(libgit2package PROPERTIES C_EXTENSIONS OFF)
|
82
65
|
set_target_properties(libgit2package PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
83
66
|
set_target_properties(libgit2package PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
84
67
|
set_target_properties(libgit2package PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
85
68
|
|
86
|
-
# Workaround for Cmake bug #0011240 (see http://public.kitware.com/Bug/view.php?id=11240)
|
87
|
-
# Win64+MSVC+static libs = linker error
|
88
|
-
if(MSVC AND GIT_ARCH_64 AND NOT BUILD_SHARED_LIBS)
|
89
|
-
set_target_properties(libgit2package PROPERTIES STATIC_LIBRARY_FLAGS "/MACHINE:x64")
|
90
|
-
endif()
|
91
|
-
|
92
69
|
ide_split_sources(libgit2package)
|
93
70
|
|
94
71
|
if(SONAME)
|
@@ -126,9 +103,32 @@ FILE(READ "${PROJECT_SOURCE_DIR}/include/git2.h" LIBGIT2_INCLUDE)
|
|
126
103
|
STRING(REGEX REPLACE "#include \"git2\/" "#include \"${LIBGIT2_FILENAME}/" LIBGIT2_INCLUDE "${LIBGIT2_INCLUDE}")
|
127
104
|
FILE(WRITE "${PROJECT_BINARY_DIR}/include/${LIBGIT2_FILENAME}.h" ${LIBGIT2_INCLUDE})
|
128
105
|
|
106
|
+
# cmake package targets
|
107
|
+
|
108
|
+
set(LIBGIT2_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
|
109
|
+
|
110
|
+
write_basic_package_version_file(
|
111
|
+
"${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"
|
112
|
+
VERSION ${PROJECT_VERSION}
|
113
|
+
COMPATIBILITY SameMajorVersion)
|
114
|
+
|
115
|
+
configure_file(config.cmake.in
|
116
|
+
"${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"
|
117
|
+
@ONLY)
|
118
|
+
|
119
|
+
install(FILES
|
120
|
+
"${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"
|
121
|
+
"${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"
|
122
|
+
DESTINATION "lib/cmake/${PROJECT_NAME}")
|
123
|
+
install(
|
124
|
+
EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME}
|
125
|
+
NAMESPACE "${PROJECT_NAME}::"
|
126
|
+
DESTINATION "lib/cmake/${PROJECT_NAME}")
|
127
|
+
|
129
128
|
# Install
|
130
129
|
|
131
130
|
install(TARGETS libgit2package
|
131
|
+
EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME}
|
132
132
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
133
133
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
134
134
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
@@ -39,8 +39,8 @@ static int annotated_commit_init(
|
|
39
39
|
if ((error = git_commit_dup(&annotated_commit->commit, commit)) < 0)
|
40
40
|
goto done;
|
41
41
|
|
42
|
-
|
43
|
-
|
42
|
+
git_oid_tostr(annotated_commit->id_str, GIT_OID_MAX_HEXSIZE + 1,
|
43
|
+
git_commit_id(commit));
|
44
44
|
|
45
45
|
if (!description)
|
46
46
|
description = annotated_commit->id_str;
|
@@ -19,6 +19,8 @@
|
|
19
19
|
#include "zstream.h"
|
20
20
|
#include "reader.h"
|
21
21
|
#include "index.h"
|
22
|
+
#include "repository.h"
|
23
|
+
#include "hashmap_str.h"
|
22
24
|
#include "apply.h"
|
23
25
|
|
24
26
|
typedef struct {
|
@@ -95,7 +97,7 @@ static void patch_image_free(patch_image *image)
|
|
95
97
|
return;
|
96
98
|
|
97
99
|
git_pool_clear(&image->pool);
|
98
|
-
|
100
|
+
git_vector_dispose(&image->lines);
|
99
101
|
}
|
100
102
|
|
101
103
|
static bool match_hunk(
|
@@ -451,7 +453,7 @@ static int apply_one(
|
|
451
453
|
git_reader *postimage_reader,
|
452
454
|
git_index *postimage,
|
453
455
|
git_diff *diff,
|
454
|
-
|
456
|
+
git_hashset_str *removed_paths,
|
455
457
|
size_t i,
|
456
458
|
const git_apply_options *opts)
|
457
459
|
{
|
@@ -488,7 +490,7 @@ static int apply_one(
|
|
488
490
|
*/
|
489
491
|
if (delta->status != GIT_DELTA_RENAMED &&
|
490
492
|
delta->status != GIT_DELTA_ADDED) {
|
491
|
-
if (
|
493
|
+
if (git_hashset_str_contains(removed_paths, delta->old_file.path)) {
|
492
494
|
error = apply_err("path '%s' has been renamed or deleted", delta->old_file.path);
|
493
495
|
goto done;
|
494
496
|
}
|
@@ -572,11 +574,11 @@ static int apply_one(
|
|
572
574
|
|
573
575
|
if (delta->status == GIT_DELTA_RENAMED ||
|
574
576
|
delta->status == GIT_DELTA_DELETED)
|
575
|
-
error =
|
577
|
+
error = git_hashset_str_add(removed_paths, delta->old_file.path);
|
576
578
|
|
577
579
|
if (delta->status == GIT_DELTA_RENAMED ||
|
578
580
|
delta->status == GIT_DELTA_ADDED)
|
579
|
-
|
581
|
+
git_hashset_str_remove(removed_paths, delta->new_file.path);
|
580
582
|
|
581
583
|
done:
|
582
584
|
git_str_dispose(&pre_contents);
|
@@ -596,20 +598,17 @@ static int apply_deltas(
|
|
596
598
|
git_diff *diff,
|
597
599
|
const git_apply_options *opts)
|
598
600
|
{
|
599
|
-
|
601
|
+
git_hashset_str removed_paths = GIT_HASHSET_INIT;
|
600
602
|
size_t i;
|
601
603
|
int error = 0;
|
602
604
|
|
603
|
-
if (git_strmap_new(&removed_paths) < 0)
|
604
|
-
return -1;
|
605
|
-
|
606
605
|
for (i = 0; i < git_diff_num_deltas(diff); i++) {
|
607
|
-
if ((error = apply_one(repo, pre_reader, preimage, post_reader, postimage, diff, removed_paths, i, opts)) < 0)
|
606
|
+
if ((error = apply_one(repo, pre_reader, preimage, post_reader, postimage, diff, &removed_paths, i, opts)) < 0)
|
608
607
|
goto done;
|
609
608
|
}
|
610
609
|
|
611
610
|
done:
|
612
|
-
|
611
|
+
git_hashset_str_dispose(&removed_paths);
|
613
612
|
return error;
|
614
613
|
}
|
615
614
|
|
@@ -644,7 +643,7 @@ int git_apply_to_tree(
|
|
644
643
|
* put the current tree into the postimage as-is - the diff will
|
645
644
|
* replace any entries contained therein
|
646
645
|
*/
|
647
|
-
if ((error =
|
646
|
+
if ((error = git_index__new(&postimage, repo->oid_type)) < 0 ||
|
648
647
|
(error = git_index_read_tree(postimage, preimage)) < 0 ||
|
649
648
|
(error = git_reader_for_index(&post_reader, repo, postimage)) < 0)
|
650
649
|
goto done;
|
@@ -714,7 +713,6 @@ static int git_apply__to_workdir(
|
|
714
713
|
goto done;
|
715
714
|
}
|
716
715
|
|
717
|
-
checkout_opts.checkout_strategy |= GIT_CHECKOUT_SAFE;
|
718
716
|
checkout_opts.checkout_strategy |= GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH;
|
719
717
|
checkout_opts.checkout_strategy |= GIT_CHECKOUT_DONT_WRITE_INDEX;
|
720
718
|
|
@@ -729,7 +727,7 @@ static int git_apply__to_workdir(
|
|
729
727
|
error = git_checkout_index(repo, postimage, &checkout_opts);
|
730
728
|
|
731
729
|
done:
|
732
|
-
|
730
|
+
git_vector_dispose(&paths);
|
733
731
|
return error;
|
734
732
|
}
|
735
733
|
|
@@ -851,8 +849,8 @@ int git_apply(
|
|
851
849
|
* having the full repo index, so we will limit our checkout
|
852
850
|
* to only write these files that were affected by the diff.
|
853
851
|
*/
|
854
|
-
if ((error =
|
855
|
-
(error =
|
852
|
+
if ((error = git_index__new(&preimage, repo->oid_type)) < 0 ||
|
853
|
+
(error = git_index__new(&postimage, repo->oid_type)) < 0 ||
|
856
854
|
(error = git_reader_for_index(&post_reader, repo, postimage)) < 0)
|
857
855
|
goto done;
|
858
856
|
|
@@ -13,6 +13,7 @@
|
|
13
13
|
#include "attr_file.h"
|
14
14
|
#include "ignore.h"
|
15
15
|
#include "git2/oid.h"
|
16
|
+
#include "hashmap_str.h"
|
16
17
|
#include <ctype.h>
|
17
18
|
|
18
19
|
const char *git_attr__true = "[internal]__TRUE__";
|
@@ -254,7 +255,7 @@ int git_attr_foreach_ext(
|
|
254
255
|
git_attr_file *file;
|
255
256
|
git_attr_rule *rule;
|
256
257
|
git_attr_assignment *assign;
|
257
|
-
|
258
|
+
git_hashset_str seen = GIT_HASHSET_INIT;
|
258
259
|
git_dir_flag dir_flag = GIT_DIR_FLAG_UNKNOWN;
|
259
260
|
|
260
261
|
GIT_ASSERT_ARG(repo);
|
@@ -267,8 +268,7 @@ int git_attr_foreach_ext(
|
|
267
268
|
if (git_attr_path__init(&path, pathname, git_repository_workdir(repo), dir_flag) < 0)
|
268
269
|
return -1;
|
269
270
|
|
270
|
-
if ((error = collect_attr_files(repo, NULL, opts, pathname, &files)) < 0
|
271
|
-
(error = git_strmap_new(&seen)) < 0)
|
271
|
+
if ((error = collect_attr_files(repo, NULL, opts, pathname, &files)) < 0)
|
272
272
|
goto cleanup;
|
273
273
|
|
274
274
|
git_vector_foreach(&files, i, file) {
|
@@ -277,10 +277,10 @@ int git_attr_foreach_ext(
|
|
277
277
|
|
278
278
|
git_vector_foreach(&rule->assigns, k, assign) {
|
279
279
|
/* skip if higher priority assignment was already seen */
|
280
|
-
if (
|
280
|
+
if (git_hashset_str_contains(&seen, assign->name))
|
281
281
|
continue;
|
282
282
|
|
283
|
-
if ((error =
|
283
|
+
if ((error = git_hashset_str_add(&seen, assign->name)) < 0)
|
284
284
|
goto cleanup;
|
285
285
|
|
286
286
|
error = callback(assign->name, assign->value, payload);
|
@@ -293,7 +293,7 @@ int git_attr_foreach_ext(
|
|
293
293
|
}
|
294
294
|
|
295
295
|
cleanup:
|
296
|
-
|
296
|
+
git_hashset_str_dispose(&seen);
|
297
297
|
release_attr_files(&files);
|
298
298
|
git_attr_path__free(&path);
|
299
299
|
|
@@ -384,6 +384,8 @@ static int attr_setup(
|
|
384
384
|
git_attr_file_source index_source = { GIT_ATTR_FILE_SOURCE_INDEX, NULL, GIT_ATTR_FILE, NULL };
|
385
385
|
git_attr_file_source head_source = { GIT_ATTR_FILE_SOURCE_HEAD, NULL, GIT_ATTR_FILE, NULL };
|
386
386
|
git_attr_file_source commit_source = { GIT_ATTR_FILE_SOURCE_COMMIT, NULL, GIT_ATTR_FILE, NULL };
|
387
|
+
git_attr_cache *attrcache;
|
388
|
+
const char *attr_cfg_file = NULL;
|
387
389
|
git_index *idx = NULL;
|
388
390
|
const char *workdir;
|
389
391
|
int error = 0;
|
@@ -407,8 +409,10 @@ static int attr_setup(
|
|
407
409
|
error = 0;
|
408
410
|
}
|
409
411
|
|
410
|
-
if ((
|
411
|
-
|
412
|
+
if ((attrcache = git_repository_attr_cache(repo)) != NULL)
|
413
|
+
attr_cfg_file = git_attr_cache_attributesfile(attrcache);
|
414
|
+
|
415
|
+
if ((error = preload_attr_file(repo, attr_session, NULL, attr_cfg_file)) < 0)
|
412
416
|
goto out;
|
413
417
|
|
414
418
|
if ((error = git_repository__item_path(&info, repo, GIT_REPOSITORY_ITEM_INFO)) < 0 ||
|
@@ -424,9 +428,13 @@ static int attr_setup(
|
|
424
428
|
goto out;
|
425
429
|
|
426
430
|
if ((error = git_repository_index__weakptr(&idx, repo)) < 0 ||
|
427
|
-
(error = preload_attr_source(repo, attr_session, &index_source)) < 0)
|
431
|
+
(error = preload_attr_source(repo, attr_session, &index_source)) < 0) {
|
432
|
+
if (error != GIT_ENOTFOUND)
|
428
433
|
goto out;
|
429
434
|
|
435
|
+
error = 0;
|
436
|
+
}
|
437
|
+
|
430
438
|
if ((opts && (opts->flags & GIT_ATTR_CHECK_INCLUDE_HEAD) != 0) &&
|
431
439
|
(error = preload_attr_source(repo, attr_session, &head_source)) < 0)
|
432
440
|
goto out;
|
@@ -460,6 +468,7 @@ int git_attr_add_macro(
|
|
460
468
|
{
|
461
469
|
int error;
|
462
470
|
git_attr_rule *macro = NULL;
|
471
|
+
git_attr_cache *attrcache;
|
463
472
|
git_pool *pool;
|
464
473
|
|
465
474
|
GIT_ASSERT_ARG(repo);
|
@@ -471,7 +480,8 @@ int git_attr_add_macro(
|
|
471
480
|
macro = git__calloc(1, sizeof(git_attr_rule));
|
472
481
|
GIT_ERROR_CHECK_ALLOC(macro);
|
473
482
|
|
474
|
-
|
483
|
+
attrcache = git_repository_attr_cache(repo);
|
484
|
+
pool = git_attr_cache_pool(attrcache);
|
475
485
|
|
476
486
|
macro->match.pattern = git_pool_strdup(pool, name);
|
477
487
|
GIT_ERROR_CHECK_ALLOC(macro->match.pattern);
|
@@ -614,7 +624,7 @@ static void release_attr_files(git_vector *files)
|
|
614
624
|
git_attr_file__free(file);
|
615
625
|
files->contents[i] = NULL;
|
616
626
|
}
|
617
|
-
|
627
|
+
git_vector_dispose(files);
|
618
628
|
}
|
619
629
|
|
620
630
|
static int collect_attr_files(
|
@@ -627,6 +637,8 @@ static int collect_attr_files(
|
|
627
637
|
int error = 0;
|
628
638
|
git_str dir = GIT_STR_INIT, attrfile = GIT_STR_INIT;
|
629
639
|
const char *workdir = git_repository_workdir(repo);
|
640
|
+
git_attr_cache *attrcache;
|
641
|
+
const char *attr_cfg_file = NULL;
|
630
642
|
attr_walk_up_info info = { NULL };
|
631
643
|
|
632
644
|
GIT_ASSERT(!git_fs_path_is_absolute(path));
|
@@ -675,8 +687,13 @@ static int collect_attr_files(
|
|
675
687
|
if (error < 0)
|
676
688
|
goto cleanup;
|
677
689
|
|
678
|
-
if (git_repository_attr_cache(repo)
|
679
|
-
|
690
|
+
if ((attrcache = git_repository_attr_cache(repo)) != NULL)
|
691
|
+
attr_cfg_file = git_attr_cache_attributesfile(attrcache);
|
692
|
+
|
693
|
+
|
694
|
+
if (attr_cfg_file) {
|
695
|
+
error = push_attr_file(repo, attr_session, files, NULL, attr_cfg_file);
|
696
|
+
|
680
697
|
if (error < 0)
|
681
698
|
goto cleanup;
|
682
699
|
}
|
@@ -69,7 +69,7 @@ int git_attr_file__clear_rules(git_attr_file *file, bool need_lock)
|
|
69
69
|
|
70
70
|
git_vector_foreach(&file->rules, i, rule)
|
71
71
|
git_attr_rule__free(rule);
|
72
|
-
|
72
|
+
git_vector_dispose(&file->rules);
|
73
73
|
|
74
74
|
if (need_lock)
|
75
75
|
git_mutex_unlock(&file->lock);
|
@@ -143,6 +143,8 @@ int git_attr_file__load(
|
|
143
143
|
blobsize = git_blob_rawsize(blob);
|
144
144
|
|
145
145
|
GIT_ERROR_CHECK_BLOBSIZE(blobsize);
|
146
|
+
if (blobsize > GIT_ATTR_MAX_FILE_SIZE) /* TODO: issue warning when warning API is available */
|
147
|
+
goto cleanup;
|
146
148
|
git_str_put(&content, git_blob_rawcontent(blob), (size_t)blobsize);
|
147
149
|
break;
|
148
150
|
}
|
@@ -155,6 +157,7 @@ int git_attr_file__load(
|
|
155
157
|
if (p_stat(entry->fullpath, &st) < 0 ||
|
156
158
|
S_ISDIR(st.st_mode) ||
|
157
159
|
(fd = git_futils_open_ro(entry->fullpath)) < 0 ||
|
160
|
+
(st.st_size > GIT_ATTR_MAX_FILE_SIZE) ||
|
158
161
|
(error = git_futils_readbuffer_fd(&content, fd, (size_t)st.st_size)) < 0)
|
159
162
|
nonexistent = true;
|
160
163
|
|
@@ -198,6 +201,8 @@ int git_attr_file__load(
|
|
198
201
|
blobsize = git_blob_rawsize(blob);
|
199
202
|
|
200
203
|
GIT_ERROR_CHECK_BLOBSIZE(blobsize);
|
204
|
+
if (blobsize > GIT_ATTR_MAX_FILE_SIZE) /* TODO: issue warning when warning API is available */
|
205
|
+
goto cleanup;
|
201
206
|
if ((error = git_str_put(&content,
|
202
207
|
git_blob_rawcontent(blob), (size_t)blobsize)) < 0)
|
203
208
|
goto cleanup;
|
@@ -991,7 +996,7 @@ static void git_attr_rule__clear(git_attr_rule *rule)
|
|
991
996
|
if (!(rule->match.flags & GIT_ATTR_FNMATCH_IGNORE)) {
|
992
997
|
git_vector_foreach(&rule->assigns, i, assign)
|
993
998
|
GIT_REFCOUNT_DEC(assign, git_attr_assignment__free);
|
994
|
-
|
999
|
+
git_vector_dispose(&rule->assigns);
|
995
1000
|
}
|
996
1001
|
|
997
1002
|
/* match.pattern is stored in a git_pool, so no need to free */
|
@@ -21,6 +21,8 @@
|
|
21
21
|
#define GIT_ATTR_FILE_SYSTEM "gitattributes"
|
22
22
|
#define GIT_ATTR_FILE_XDG "attributes"
|
23
23
|
|
24
|
+
#define GIT_ATTR_MAX_FILE_SIZE 100 * 1024 * 1024
|
25
|
+
|
24
26
|
#define GIT_ATTR_FNMATCH_NEGATIVE (1U << 0)
|
25
27
|
#define GIT_ATTR_FNMATCH_DIRECTORY (1U << 1)
|
26
28
|
#define GIT_ATTR_FNMATCH_FULLPATH (1U << 2)
|