rugged 1.7.2 → 1.9.4
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/extconf.rb +4 -4
- data/ext/rugged/rugged.c +12 -1
- data/ext/rugged/rugged_blame.c +22 -6
- data/ext/rugged/rugged_blob.c +24 -9
- data/ext/rugged/rugged_branch.c +10 -7
- data/ext/rugged/rugged_branch_collection.c +8 -6
- data/ext/rugged/rugged_commit.c +7 -6
- data/ext/rugged/rugged_config.c +20 -11
- data/ext/rugged/rugged_diff.c +26 -12
- data/ext/rugged/rugged_diff_hunk.c +2 -1
- data/ext/rugged/rugged_index.c +39 -29
- data/ext/rugged/rugged_note.c +7 -6
- data/ext/rugged/rugged_object.c +3 -2
- data/ext/rugged/rugged_patch.c +23 -9
- data/ext/rugged/rugged_rebase.c +22 -10
- data/ext/rugged/rugged_reference.c +22 -13
- data/ext/rugged/rugged_reference_collection.c +9 -7
- data/ext/rugged/rugged_remote.c +23 -12
- data/ext/rugged/rugged_remote_collection.c +11 -9
- data/ext/rugged/rugged_repo.c +60 -45
- data/ext/rugged/rugged_revwalk.c +22 -12
- data/ext/rugged/rugged_submodule.c +23 -20
- data/ext/rugged/rugged_submodule_collection.c +20 -9
- data/ext/rugged/rugged_tag.c +6 -4
- data/ext/rugged/rugged_tag_collection.c +7 -5
- data/ext/rugged/rugged_tree.c +27 -15
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +3 -0
- data/vendor/libgit2/CMakeLists.txt +23 -10
- data/vendor/libgit2/COPYING +195 -1
- data/vendor/libgit2/cmake/DefaultCFlags.cmake +4 -1
- data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +17 -8
- data/vendor/libgit2/cmake/SelectHashes.cmake +28 -11
- data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
- data/vendor/libgit2/cmake/SelectSSH.cmake +30 -19
- 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 +3 -3
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +1 -1
- data/vendor/libgit2/deps/xdiff/xmerge.c +16 -12
- 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 +120 -63
- 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 +134 -4
- data/vendor/libgit2/include/git2/describe.h +13 -1
- data/vendor/libgit2/include/git2/diff.h +38 -8
- data/vendor/libgit2/include/git2/email.h +9 -29
- data/vendor/libgit2/include/git2/errors.h +46 -73
- 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 -15
- 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 +50 -3
- 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 +23 -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 +12 -3
- 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 +113 -25
- data/vendor/libgit2/include/git2/repository.h +57 -21
- 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 -0
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +103 -62
- 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 +43 -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 +11 -2
- data/vendor/libgit2/include/git2/sys/transport.h +25 -4
- 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 +46 -8
- data/vendor/libgit2/include/git2/worktree.h +16 -6
- data/vendor/libgit2/src/CMakeLists.txt +6 -4
- data/vendor/libgit2/src/cli/CMakeLists.txt +3 -4
- 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 +5 -7
- 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 +31 -5
- 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 +51 -2
- data/vendor/libgit2/src/cli/progress.h +12 -0
- 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 +55 -21
- data/vendor/libgit2/src/libgit2/apply.c +10 -13
- data/vendor/libgit2/src/libgit2/attr.c +30 -13
- data/vendor/libgit2/src/libgit2/attr_file.c +17 -5
- 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 +130 -44
- data/vendor/libgit2/src/libgit2/blame.h +1 -0
- 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 +1 -2
- data/vendor/libgit2/src/libgit2/clone.c +192 -166
- data/vendor/libgit2/src/libgit2/clone.h +4 -1
- data/vendor/libgit2/src/libgit2/commit.c +93 -1
- data/vendor/libgit2/src/libgit2/commit_graph.c +68 -58
- data/vendor/libgit2/src/libgit2/commit_graph.h +1 -2
- data/vendor/libgit2/src/libgit2/config.c +390 -299
- 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 +101 -89
- 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 +195 -40
- data/vendor/libgit2/src/libgit2/config_parse.c +12 -10
- data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
- data/vendor/libgit2/src/libgit2/delta.c +5 -1
- data/vendor/libgit2/src/libgit2/describe.c +24 -24
- data/vendor/libgit2/src/libgit2/diff.c +1 -1
- data/vendor/libgit2/src/libgit2/diff_driver.c +13 -20
- data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
- data/vendor/libgit2/src/libgit2/diff_generate.c +3 -3
- data/vendor/libgit2/src/libgit2/diff_parse.c +2 -2
- data/vendor/libgit2/src/libgit2/diff_print.c +65 -9
- data/vendor/libgit2/src/libgit2/diff_stats.c +19 -12
- data/vendor/libgit2/src/libgit2/diff_tform.c +36 -8
- data/vendor/libgit2/src/libgit2/email.c +1 -0
- data/vendor/libgit2/src/libgit2/fetch.c +5 -3
- data/vendor/libgit2/src/libgit2/fetchhead.c +1 -1
- 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 +18 -20
- data/vendor/libgit2/src/libgit2/grafts.h +0 -1
- data/vendor/libgit2/src/libgit2/graph.c +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/libgit2/ignore.c +9 -5
- data/vendor/libgit2/src/libgit2/index.c +76 -98
- data/vendor/libgit2/src/libgit2/index.h +5 -2
- 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 +36 -40
- data/vendor/libgit2/src/libgit2/iterator.c +14 -8
- data/vendor/libgit2/src/libgit2/libgit2.c +153 -368
- data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
- data/vendor/libgit2/src/libgit2/merge.c +43 -38
- data/vendor/libgit2/src/libgit2/merge.h +4 -0
- data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
- data/vendor/libgit2/src/libgit2/merge_file.c +43 -30
- data/vendor/libgit2/src/libgit2/message.c +1 -1
- data/vendor/libgit2/src/libgit2/midx.c +30 -18
- data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
- data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
- data/vendor/libgit2/src/libgit2/object.c +6 -5
- data/vendor/libgit2/src/libgit2/odb.c +7 -10
- data/vendor/libgit2/src/libgit2/odb_loose.c +24 -14
- data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
- data/vendor/libgit2/src/libgit2/odb_pack.c +13 -5
- data/vendor/libgit2/src/libgit2/oid.c +36 -10
- data/vendor/libgit2/src/libgit2/oid.h +11 -0
- data/vendor/libgit2/src/libgit2/pack-objects.c +59 -34
- data/vendor/libgit2/src/libgit2/pack-objects.h +12 -4
- data/vendor/libgit2/src/libgit2/pack.c +33 -24
- data/vendor/libgit2/src/libgit2/pack.h +15 -10
- data/vendor/libgit2/src/libgit2/patch_parse.c +2 -2
- 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 +79 -28
- data/vendor/libgit2/src/libgit2/push.h +1 -0
- data/vendor/libgit2/src/libgit2/refdb_fs.c +128 -61
- 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 +41 -13
- 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 +125 -62
- data/vendor/libgit2/src/libgit2/remote.h +0 -1
- data/vendor/libgit2/src/libgit2/repository.c +235 -54
- data/vendor/libgit2/src/libgit2/repository.h +10 -6
- data/vendor/libgit2/src/libgit2/revert.c +1 -2
- data/vendor/libgit2/src/libgit2/revparse.c +2 -2
- data/vendor/libgit2/src/libgit2/revwalk.c +13 -10
- 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/status.c +1 -1
- data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -60
- data/vendor/libgit2/src/libgit2/streams/openssl.c +32 -7
- 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/socket.c +30 -0
- data/vendor/libgit2/src/libgit2/streams/stransport.c +39 -7
- data/vendor/libgit2/src/libgit2/submodule.c +118 -68
- data/vendor/libgit2/src/libgit2/submodule.h +6 -7
- data/vendor/libgit2/src/libgit2/tag.c +4 -2
- 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_sspi.c +2 -0
- data/vendor/libgit2/src/libgit2/transports/credential.c +2 -2
- data/vendor/libgit2/src/libgit2/transports/git.c +1 -1
- data/vendor/libgit2/src/libgit2/transports/http.c +1 -2
- data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
- data/vendor/libgit2/src/libgit2/transports/httpclient.c +124 -81
- 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 +16 -8
- data/vendor/libgit2/src/libgit2/transports/smart.c +25 -13
- data/vendor/libgit2/src/libgit2/transports/smart.h +4 -2
- data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +5 -5
- data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +55 -10
- data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +386 -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 +35 -7
- data/vendor/libgit2/src/libgit2/tree.c +34 -26
- data/vendor/libgit2/src/libgit2/tree.h +3 -2
- data/vendor/libgit2/src/libgit2/worktree.c +14 -17
- data/vendor/libgit2/src/util/CMakeLists.txt +7 -10
- data/vendor/libgit2/src/util/alloc.c +4 -1
- 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/stdalloc.c +0 -10
- data/vendor/libgit2/src/util/array.h +18 -17
- data/vendor/libgit2/src/util/cc-compat.h +2 -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/fs_path.c +81 -10
- data/vendor/libgit2/src/util/fs_path.h +29 -0
- data/vendor/libgit2/src/util/futils.c +6 -5
- data/vendor/libgit2/src/util/futils.h +24 -7
- data/vendor/libgit2/src/util/git2_features.h.in +12 -1
- data/vendor/libgit2/src/util/git2_util.h +6 -0
- data/vendor/libgit2/src/util/hash/builtin.c +14 -4
- data/vendor/libgit2/src/util/hash/openssl.c +148 -0
- data/vendor/libgit2/src/util/hash/openssl.h +17 -1
- data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +8 -6
- data/vendor/libgit2/src/util/hash/sha.h +4 -1
- data/vendor/libgit2/src/util/hashmap.h +425 -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 +17 -11
- data/vendor/libgit2/src/util/net.h +2 -0
- data/vendor/libgit2/src/util/pool.c +1 -1
- data/vendor/libgit2/src/util/pool.h +5 -0
- data/vendor/libgit2/src/util/pqueue.h +1 -1
- data/vendor/libgit2/src/util/process.h +223 -0
- data/vendor/libgit2/src/util/rand.c +1 -7
- data/vendor/libgit2/src/util/regexp.c +1 -1
- data/vendor/libgit2/src/util/runtime.c +2 -2
- data/vendor/libgit2/src/util/sortedcache.c +14 -13
- data/vendor/libgit2/src/util/sortedcache.h +3 -3
- data/vendor/libgit2/src/util/str.c +20 -8
- data/vendor/libgit2/src/util/str.h +5 -3
- 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 +706 -0
- data/vendor/libgit2/src/util/unix/realpath.c +23 -5
- data/vendor/libgit2/src/util/util.c +18 -5
- data/vendor/libgit2/src/util/util.h +5 -38
- data/vendor/libgit2/src/util/vector.c +3 -3
- data/vendor/libgit2/src/util/vector.h +2 -2
- data/vendor/libgit2/src/util/win32/path_w32.c +81 -5
- data/vendor/libgit2/src/util/win32/posix_w32.c +29 -6
- data/vendor/libgit2/src/util/win32/process.c +522 -0
- metadata +60 -32
- 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 -293
- 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/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 -97
- data/vendor/libgit2/src/libgit2/threadstate.h +0 -22
- 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
|
@@ -5,35 +5,84 @@
|
|
|
5
5
|
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
#include "
|
|
8
|
+
#include "common.h"
|
|
9
9
|
#include "str.h"
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
#define is_switch_or_value(spec) \
|
|
12
|
+
((spec)->type == CLI_OPT_TYPE_SWITCH || \
|
|
13
|
+
(spec)->type == CLI_OPT_TYPE_VALUE)
|
|
14
|
+
|
|
15
|
+
static int print_spec_args(git_str *out, const cli_opt_spec *spec)
|
|
12
16
|
{
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
!(spec->usage & CLI_OPT_USAGE_SHOW_LONG))
|
|
16
|
-
return git_str_printf(out, "-%c <%s>", spec->alias, spec->value_name);
|
|
17
|
-
if (spec->type == CLI_OPT_TYPE_VALUE && spec->alias &&
|
|
18
|
-
!(spec->usage & CLI_OPT_USAGE_SHOW_LONG))
|
|
19
|
-
return git_str_printf(out, "-%c [<%s>]", spec->alias, spec->value_name);
|
|
20
|
-
if (spec->type == CLI_OPT_TYPE_VALUE &&
|
|
21
|
-
!(spec->usage & CLI_OPT_USAGE_VALUE_OPTIONAL))
|
|
22
|
-
return git_str_printf(out, "--%s[=<%s>]", spec->name, spec->value_name);
|
|
23
|
-
if (spec->type == CLI_OPT_TYPE_VALUE)
|
|
24
|
-
return git_str_printf(out, "--%s=<%s>", spec->name, spec->value_name);
|
|
17
|
+
GIT_ASSERT(!is_switch_or_value(spec));
|
|
18
|
+
|
|
25
19
|
if (spec->type == CLI_OPT_TYPE_ARG)
|
|
26
20
|
return git_str_printf(out, "<%s>", spec->value_name);
|
|
27
21
|
if (spec->type == CLI_OPT_TYPE_ARGS)
|
|
28
22
|
return git_str_printf(out, "<%s>...", spec->value_name);
|
|
29
23
|
if (spec->type == CLI_OPT_TYPE_LITERAL)
|
|
30
24
|
return git_str_printf(out, "--");
|
|
31
|
-
|
|
25
|
+
|
|
26
|
+
GIT_ASSERT(!"unknown option spec type");
|
|
27
|
+
return -1;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
GIT_INLINE(int) print_spec_alias(git_str *out, const cli_opt_spec *spec)
|
|
31
|
+
{
|
|
32
|
+
GIT_ASSERT(is_switch_or_value(spec) && spec->alias);
|
|
33
|
+
|
|
34
|
+
if (spec->type == CLI_OPT_TYPE_VALUE &&
|
|
35
|
+
!(spec->usage & CLI_OPT_USAGE_VALUE_OPTIONAL))
|
|
36
|
+
return git_str_printf(out, "-%c <%s>", spec->alias, spec->value_name);
|
|
37
|
+
else if (spec->type == CLI_OPT_TYPE_VALUE)
|
|
38
|
+
return git_str_printf(out, "-%c [<%s>]", spec->alias, spec->value_name);
|
|
39
|
+
else
|
|
32
40
|
return git_str_printf(out, "-%c", spec->alias);
|
|
33
|
-
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
GIT_INLINE(int) print_spec_name(git_str *out, const cli_opt_spec *spec)
|
|
44
|
+
{
|
|
45
|
+
GIT_ASSERT(is_switch_or_value(spec) && spec->name);
|
|
46
|
+
|
|
47
|
+
if (spec->type == CLI_OPT_TYPE_VALUE &&
|
|
48
|
+
!(spec->usage & CLI_OPT_USAGE_VALUE_OPTIONAL))
|
|
49
|
+
return git_str_printf(out, "--%s=<%s>", spec->name, spec->value_name);
|
|
50
|
+
else if (spec->type == CLI_OPT_TYPE_VALUE)
|
|
51
|
+
return git_str_printf(out, "--%s[=<%s>]", spec->name, spec->value_name);
|
|
52
|
+
else
|
|
34
53
|
return git_str_printf(out, "--%s", spec->name);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
GIT_INLINE(int) print_spec_full(git_str *out, const cli_opt_spec *spec)
|
|
57
|
+
{
|
|
58
|
+
int error = 0;
|
|
35
59
|
|
|
36
|
-
|
|
60
|
+
if (is_switch_or_value(spec)) {
|
|
61
|
+
if (spec->alias)
|
|
62
|
+
error |= print_spec_alias(out, spec);
|
|
63
|
+
|
|
64
|
+
if (spec->alias && spec->name)
|
|
65
|
+
error |= git_str_printf(out, ", ");
|
|
66
|
+
|
|
67
|
+
if (spec->name)
|
|
68
|
+
error |= print_spec_name(out, spec);
|
|
69
|
+
} else {
|
|
70
|
+
error |= print_spec_args(out, spec);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return error;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
GIT_INLINE(int) print_spec(git_str *out, const cli_opt_spec *spec)
|
|
77
|
+
{
|
|
78
|
+
if (is_switch_or_value(spec)) {
|
|
79
|
+
if (spec->alias && !(spec->usage & CLI_OPT_USAGE_SHOW_LONG))
|
|
80
|
+
return print_spec_alias(out, spec);
|
|
81
|
+
else
|
|
82
|
+
return print_spec_name(out, spec);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return print_spec_args(out, spec);
|
|
37
86
|
}
|
|
38
87
|
|
|
39
88
|
/*
|
|
@@ -46,7 +95,8 @@ int cli_opt_usage_fprint(
|
|
|
46
95
|
FILE *file,
|
|
47
96
|
const char *command,
|
|
48
97
|
const char *subcommand,
|
|
49
|
-
const cli_opt_spec specs[]
|
|
98
|
+
const cli_opt_spec specs[],
|
|
99
|
+
unsigned int print_flags)
|
|
50
100
|
{
|
|
51
101
|
git_str usage = GIT_BUF_INIT, opt = GIT_BUF_INIT;
|
|
52
102
|
const cli_opt_spec *spec;
|
|
@@ -55,7 +105,7 @@ int cli_opt_usage_fprint(
|
|
|
55
105
|
int error;
|
|
56
106
|
|
|
57
107
|
/* TODO: query actual console width. */
|
|
58
|
-
int console_width =
|
|
108
|
+
int console_width = 78;
|
|
59
109
|
|
|
60
110
|
if ((error = git_str_printf(&usage, "usage: %s", command)) < 0)
|
|
61
111
|
goto done;
|
|
@@ -73,7 +123,8 @@ int cli_opt_usage_fprint(
|
|
|
73
123
|
|
|
74
124
|
next_choice = !!((spec + 1)->usage & CLI_OPT_USAGE_CHOICE);
|
|
75
125
|
|
|
76
|
-
if (spec->usage & CLI_OPT_USAGE_HIDDEN)
|
|
126
|
+
if ((spec->usage & CLI_OPT_USAGE_HIDDEN) &&
|
|
127
|
+
!(print_flags & CLI_OPT_USAGE_SHOW_HIDDEN))
|
|
77
128
|
continue;
|
|
78
129
|
|
|
79
130
|
if (choice)
|
|
@@ -86,7 +137,7 @@ int cli_opt_usage_fprint(
|
|
|
86
137
|
if (!optional && !choice && next_choice)
|
|
87
138
|
git_str_putc(&opt, '(');
|
|
88
139
|
|
|
89
|
-
if ((error =
|
|
140
|
+
if ((error = print_spec(&opt, spec)) < 0)
|
|
90
141
|
goto done;
|
|
91
142
|
|
|
92
143
|
if (!optional && choice && !next_choice)
|
|
@@ -111,11 +162,11 @@ int cli_opt_usage_fprint(
|
|
|
111
162
|
git_str_putc(&usage, ' ');
|
|
112
163
|
|
|
113
164
|
linelen = prefixlen;
|
|
114
|
-
} else {
|
|
115
|
-
git_str_putc(&usage, ' ');
|
|
116
|
-
linelen += git_str_len(&opt) + 1;
|
|
117
165
|
}
|
|
118
166
|
|
|
167
|
+
git_str_putc(&usage, ' ');
|
|
168
|
+
linelen += git_str_len(&opt) + 1;
|
|
169
|
+
|
|
119
170
|
git_str_puts(&usage, git_str_cstr(&opt));
|
|
120
171
|
|
|
121
172
|
if (git_str_oom(&usage)) {
|
|
@@ -140,7 +191,7 @@ int cli_opt_usage_error(
|
|
|
140
191
|
const cli_opt *invalid_opt)
|
|
141
192
|
{
|
|
142
193
|
cli_opt_status_fprint(stderr, PROGRAM_NAME, invalid_opt);
|
|
143
|
-
cli_opt_usage_fprint(stderr, PROGRAM_NAME, subcommand, specs);
|
|
194
|
+
cli_opt_usage_fprint(stderr, PROGRAM_NAME, subcommand, specs, 0);
|
|
144
195
|
return CLI_EXIT_USAGE;
|
|
145
196
|
}
|
|
146
197
|
|
|
@@ -150,35 +201,53 @@ int cli_opt_help_fprint(
|
|
|
150
201
|
{
|
|
151
202
|
git_str help = GIT_BUF_INIT;
|
|
152
203
|
const cli_opt_spec *spec;
|
|
204
|
+
bool required = true;
|
|
153
205
|
int error = 0;
|
|
154
206
|
|
|
155
207
|
/* Display required arguments first */
|
|
156
208
|
for (spec = specs; spec->type; ++spec) {
|
|
157
|
-
if (
|
|
158
|
-
(spec->
|
|
209
|
+
if ((spec->usage & CLI_OPT_USAGE_HIDDEN) ||
|
|
210
|
+
(spec->type == CLI_OPT_TYPE_LITERAL))
|
|
211
|
+
continue;
|
|
212
|
+
|
|
213
|
+
required = ((spec->usage & CLI_OPT_USAGE_REQUIRED) ||
|
|
214
|
+
((spec->usage & CLI_OPT_USAGE_CHOICE) && required));
|
|
215
|
+
|
|
216
|
+
if (!required)
|
|
159
217
|
continue;
|
|
160
218
|
|
|
161
219
|
git_str_printf(&help, " ");
|
|
162
220
|
|
|
163
|
-
if ((error =
|
|
221
|
+
if ((error = print_spec_full(&help, spec)) < 0)
|
|
164
222
|
goto done;
|
|
165
223
|
|
|
166
|
-
git_str_printf(&help, "
|
|
224
|
+
git_str_printf(&help, "\n");
|
|
225
|
+
|
|
226
|
+
if (spec->help)
|
|
227
|
+
git_str_printf(&help, " %s\n", spec->help);
|
|
167
228
|
}
|
|
168
229
|
|
|
169
230
|
/* Display the remaining arguments */
|
|
170
231
|
for (spec = specs; spec->type; ++spec) {
|
|
171
|
-
if ((spec->usage &
|
|
172
|
-
(spec->
|
|
232
|
+
if ((spec->usage & CLI_OPT_USAGE_HIDDEN) ||
|
|
233
|
+
(spec->type == CLI_OPT_TYPE_LITERAL))
|
|
234
|
+
continue;
|
|
235
|
+
|
|
236
|
+
required = ((spec->usage & CLI_OPT_USAGE_REQUIRED) ||
|
|
237
|
+
((spec->usage & CLI_OPT_USAGE_CHOICE) && required));
|
|
238
|
+
|
|
239
|
+
if (required)
|
|
173
240
|
continue;
|
|
174
241
|
|
|
175
242
|
git_str_printf(&help, " ");
|
|
176
243
|
|
|
177
|
-
if ((error =
|
|
244
|
+
if ((error = print_spec_full(&help, spec)) < 0)
|
|
178
245
|
goto done;
|
|
179
246
|
|
|
180
|
-
git_str_printf(&help, "
|
|
247
|
+
git_str_printf(&help, "\n");
|
|
181
248
|
|
|
249
|
+
if (spec->help)
|
|
250
|
+
git_str_printf(&help, " %s\n", spec->help);
|
|
182
251
|
}
|
|
183
252
|
|
|
184
253
|
if (git_str_oom(&help) ||
|
|
@@ -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,
|
|
@@ -242,7 +242,21 @@ static int fetch_receiving(
|
|
|
242
242
|
done ? ", done." : "");
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
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(
|
|
246
260
|
cli_progress *progress,
|
|
247
261
|
const git_indexer_progress *stats)
|
|
248
262
|
{
|
|
@@ -283,7 +297,42 @@ int cli_progress_fetch_transfer(const git_indexer_progress *stats, void *payload
|
|
|
283
297
|
/* fall through */
|
|
284
298
|
|
|
285
299
|
case CLI_PROGRESS_RESOLVING:
|
|
286
|
-
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);
|
|
287
336
|
break;
|
|
288
337
|
|
|
289
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;
|
|
@@ -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,17 +2,15 @@
|
|
|
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
|
-
"${PROJECT_BINARY_DIR}/src/util"
|
|
12
|
-
"${PROJECT_BINARY_DIR}/include"
|
|
13
10
|
"${PROJECT_SOURCE_DIR}/src/libgit2"
|
|
14
11
|
"${PROJECT_SOURCE_DIR}/src/util"
|
|
15
|
-
"${PROJECT_SOURCE_DIR}/include"
|
|
12
|
+
"${PROJECT_SOURCE_DIR}/include"
|
|
13
|
+
"${PROJECT_BINARY_DIR}/gen_headers")
|
|
16
14
|
|
|
17
15
|
# Collect sourcefiles
|
|
18
16
|
file(GLOB SRC_H
|
|
@@ -42,7 +40,11 @@ ide_split_sources(libgit2)
|
|
|
42
40
|
list(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:util> $<TARGET_OBJECTS:libgit2> ${LIBGIT2_DEPENDENCY_OBJECTS})
|
|
43
41
|
list(APPEND LIBGIT2_INCLUDES ${LIBGIT2_DEPENDENCY_INCLUDES})
|
|
44
42
|
|
|
45
|
-
target_include_directories(libgit2
|
|
43
|
+
target_include_directories(libgit2
|
|
44
|
+
PRIVATE ${LIBGIT2_INCLUDES} ${LIBGIT2_DEPENDENCY_INCLUDES}
|
|
45
|
+
PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
|
|
46
|
+
$<INSTALL_INTERFACE:include>)
|
|
47
|
+
|
|
46
48
|
target_include_directories(libgit2 SYSTEM PRIVATE ${LIBGIT2_SYSTEM_INCLUDES})
|
|
47
49
|
|
|
48
50
|
set(LIBGIT2_INCLUDES ${LIBGIT2_INCLUDES} PARENT_SCOPE)
|
|
@@ -56,21 +58,23 @@ set(LIBGIT2_SYSTEM_LIBS ${LIBGIT2_SYSTEM_LIBS} PARENT_SCOPE)
|
|
|
56
58
|
# Compile and link libgit2
|
|
57
59
|
#
|
|
58
60
|
|
|
61
|
+
if (NOT BUILD_SHARED_LIBS AND XCODE_VERSION)
|
|
62
|
+
# This is required for Xcode to actually create the static libgit2 library
|
|
63
|
+
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/dummy.c "")
|
|
64
|
+
list(APPEND LIBGIT2_OBJECTS ${CMAKE_CURRENT_BINARY_DIR}/dummy.c)
|
|
65
|
+
endif()
|
|
66
|
+
|
|
59
67
|
add_library(libgit2package ${SRC_RC} ${LIBGIT2_OBJECTS})
|
|
60
68
|
target_link_libraries(libgit2package ${LIBGIT2_SYSTEM_LIBS})
|
|
61
69
|
target_include_directories(libgit2package SYSTEM PRIVATE ${LIBGIT2_INCLUDES})
|
|
70
|
+
target_include_directories(libgit2package INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
|
62
71
|
|
|
63
72
|
set_target_properties(libgit2package PROPERTIES C_STANDARD 90)
|
|
73
|
+
set_target_properties(libgit2package PROPERTIES C_EXTENSIONS OFF)
|
|
64
74
|
set_target_properties(libgit2package PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
|
65
75
|
set_target_properties(libgit2package PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
|
66
76
|
set_target_properties(libgit2package PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
|
67
77
|
|
|
68
|
-
# Workaround for Cmake bug #0011240 (see http://public.kitware.com/Bug/view.php?id=11240)
|
|
69
|
-
# Win64+MSVC+static libs = linker error
|
|
70
|
-
if(MSVC AND GIT_ARCH_64 AND NOT BUILD_SHARED_LIBS)
|
|
71
|
-
set_target_properties(libgit2package PROPERTIES STATIC_LIBRARY_FLAGS "/MACHINE:x64")
|
|
72
|
-
endif()
|
|
73
|
-
|
|
74
78
|
ide_split_sources(libgit2package)
|
|
75
79
|
|
|
76
80
|
if(SONAME)
|
|
@@ -99,24 +103,54 @@ endif()
|
|
|
99
103
|
|
|
100
104
|
# support experimental features and functionality
|
|
101
105
|
|
|
102
|
-
configure_file(experimental.h.in "${PROJECT_BINARY_DIR}/
|
|
106
|
+
configure_file(experimental.h.in "${PROJECT_BINARY_DIR}/gen_headers/experimental.h")
|
|
103
107
|
|
|
104
|
-
# translate filenames in the
|
|
108
|
+
# translate filenames in the headers so that they match the install directory
|
|
105
109
|
# (allows for side-by-side installs of libgit2 and libgit2-experimental.)
|
|
106
110
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
111
|
+
foreach(HEADER_SOURCE ${SRC_H})
|
|
112
|
+
file(RELATIVE_PATH HEADER_RELATIVE ${PROJECT_SOURCE_DIR} ${HEADER_SOURCE})
|
|
113
|
+
string(REGEX REPLACE "^include\/git2" "include/${LIBGIT2_FILENAME}" HEADER_RELATIVE ${HEADER_RELATIVE})
|
|
114
|
+
|
|
115
|
+
file(READ "${HEADER_SOURCE}" HEADER_CONTENTS)
|
|
116
|
+
string(REGEX REPLACE "#include \"git2\/" "#include \"${LIBGIT2_FILENAME}/" HEADER_CONTENTS "${HEADER_CONTENTS}")
|
|
117
|
+
|
|
118
|
+
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${HEADER_RELATIVE}.tmp" "${HEADER_CONTENTS}")
|
|
119
|
+
configure_file("${CMAKE_CURRENT_BINARY_DIR}/${HEADER_RELATIVE}.tmp" "${PROJECT_BINARY_DIR}/${HEADER_RELATIVE}" COPYONLY)
|
|
120
|
+
endforeach()
|
|
121
|
+
|
|
122
|
+
configure_file("${PROJECT_BINARY_DIR}/gen_headers/experimental.h" "${PROJECT_BINARY_DIR}/include/${LIBGIT2_FILENAME}/experimental.h" COPYONLY)
|
|
123
|
+
|
|
124
|
+
# cmake package targets
|
|
125
|
+
|
|
126
|
+
set(LIBGIT2_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
|
|
127
|
+
|
|
128
|
+
write_basic_package_version_file(
|
|
129
|
+
"${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"
|
|
130
|
+
VERSION ${PROJECT_VERSION}
|
|
131
|
+
COMPATIBILITY SameMajorVersion)
|
|
132
|
+
|
|
133
|
+
configure_file(config.cmake.in
|
|
134
|
+
"${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"
|
|
135
|
+
@ONLY)
|
|
136
|
+
|
|
137
|
+
install(FILES
|
|
138
|
+
"${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"
|
|
139
|
+
"${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"
|
|
140
|
+
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
|
|
141
|
+
install(
|
|
142
|
+
EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME}
|
|
143
|
+
NAMESPACE "${PROJECT_NAME}::"
|
|
144
|
+
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
|
|
110
145
|
|
|
111
146
|
# Install
|
|
112
147
|
|
|
113
148
|
install(TARGETS libgit2package
|
|
149
|
+
EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME}
|
|
114
150
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
115
151
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
116
152
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
117
|
-
install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/git2/
|
|
118
|
-
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${LIBGIT2_FILENAME}")
|
|
119
|
-
install(FILES ${PROJECT_BINARY_DIR}/include/git2/experimental.h
|
|
120
|
-
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${LIBGIT2_FILENAME}")
|
|
121
153
|
install(FILES "${PROJECT_BINARY_DIR}/include/${LIBGIT2_FILENAME}.h"
|
|
122
154
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
155
|
+
install(DIRECTORY "${PROJECT_BINARY_DIR}/include/${LIBGIT2_FILENAME}"
|
|
156
|
+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
#include "reader.h"
|
|
21
21
|
#include "index.h"
|
|
22
22
|
#include "repository.h"
|
|
23
|
+
#include "hashmap_str.h"
|
|
23
24
|
#include "apply.h"
|
|
24
25
|
|
|
25
26
|
typedef struct {
|
|
@@ -96,7 +97,7 @@ static void patch_image_free(patch_image *image)
|
|
|
96
97
|
return;
|
|
97
98
|
|
|
98
99
|
git_pool_clear(&image->pool);
|
|
99
|
-
|
|
100
|
+
git_vector_dispose(&image->lines);
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
static bool match_hunk(
|
|
@@ -452,7 +453,7 @@ static int apply_one(
|
|
|
452
453
|
git_reader *postimage_reader,
|
|
453
454
|
git_index *postimage,
|
|
454
455
|
git_diff *diff,
|
|
455
|
-
|
|
456
|
+
git_hashset_str *removed_paths,
|
|
456
457
|
size_t i,
|
|
457
458
|
const git_apply_options *opts)
|
|
458
459
|
{
|
|
@@ -489,7 +490,7 @@ static int apply_one(
|
|
|
489
490
|
*/
|
|
490
491
|
if (delta->status != GIT_DELTA_RENAMED &&
|
|
491
492
|
delta->status != GIT_DELTA_ADDED) {
|
|
492
|
-
if (
|
|
493
|
+
if (git_hashset_str_contains(removed_paths, delta->old_file.path)) {
|
|
493
494
|
error = apply_err("path '%s' has been renamed or deleted", delta->old_file.path);
|
|
494
495
|
goto done;
|
|
495
496
|
}
|
|
@@ -573,11 +574,11 @@ static int apply_one(
|
|
|
573
574
|
|
|
574
575
|
if (delta->status == GIT_DELTA_RENAMED ||
|
|
575
576
|
delta->status == GIT_DELTA_DELETED)
|
|
576
|
-
error =
|
|
577
|
+
error = git_hashset_str_add(removed_paths, delta->old_file.path);
|
|
577
578
|
|
|
578
579
|
if (delta->status == GIT_DELTA_RENAMED ||
|
|
579
580
|
delta->status == GIT_DELTA_ADDED)
|
|
580
|
-
|
|
581
|
+
git_hashset_str_remove(removed_paths, delta->new_file.path);
|
|
581
582
|
|
|
582
583
|
done:
|
|
583
584
|
git_str_dispose(&pre_contents);
|
|
@@ -597,20 +598,17 @@ static int apply_deltas(
|
|
|
597
598
|
git_diff *diff,
|
|
598
599
|
const git_apply_options *opts)
|
|
599
600
|
{
|
|
600
|
-
|
|
601
|
+
git_hashset_str removed_paths = GIT_HASHSET_INIT;
|
|
601
602
|
size_t i;
|
|
602
603
|
int error = 0;
|
|
603
604
|
|
|
604
|
-
if (git_strmap_new(&removed_paths) < 0)
|
|
605
|
-
return -1;
|
|
606
|
-
|
|
607
605
|
for (i = 0; i < git_diff_num_deltas(diff); i++) {
|
|
608
|
-
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)
|
|
609
607
|
goto done;
|
|
610
608
|
}
|
|
611
609
|
|
|
612
610
|
done:
|
|
613
|
-
|
|
611
|
+
git_hashset_str_dispose(&removed_paths);
|
|
614
612
|
return error;
|
|
615
613
|
}
|
|
616
614
|
|
|
@@ -715,7 +713,6 @@ static int git_apply__to_workdir(
|
|
|
715
713
|
goto done;
|
|
716
714
|
}
|
|
717
715
|
|
|
718
|
-
checkout_opts.checkout_strategy |= GIT_CHECKOUT_SAFE;
|
|
719
716
|
checkout_opts.checkout_strategy |= GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH;
|
|
720
717
|
checkout_opts.checkout_strategy |= GIT_CHECKOUT_DONT_WRITE_INDEX;
|
|
721
718
|
|
|
@@ -730,7 +727,7 @@ static int git_apply__to_workdir(
|
|
|
730
727
|
error = git_checkout_index(repo, postimage, &checkout_opts);
|
|
731
728
|
|
|
732
729
|
done:
|
|
733
|
-
|
|
730
|
+
git_vector_dispose(&paths);
|
|
734
731
|
return error;
|
|
735
732
|
}
|
|
736
733
|
|