rugged 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +1 -0
- data/README.md +3 -3
- data/ext/rugged/rugged.c +7 -4
- data/ext/rugged/rugged_commit.c +1 -1
- data/ext/rugged/rugged_config.c +1 -1
- data/ext/rugged/rugged_object.c +1 -1
- data/ext/rugged/rugged_remote.c +32 -2
- data/ext/rugged/rugged_repo.c +13 -3
- data/lib/rugged/commit.rb +17 -4
- data/lib/rugged/repository.rb +7 -8
- data/lib/rugged/submodule_collection.rb +4 -4
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +41 -74
- data/vendor/libgit2/COPYING +109 -1
- data/vendor/libgit2/cmake/{Modules/AddCFlagIfSupported.cmake → AddCFlagIfSupported.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/EnableWarnings.cmake → EnableWarnings.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindCoreFoundation.cmake → FindCoreFoundation.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindGSSAPI.cmake → FindGSSAPI.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindGSSFramework.cmake → FindGSSFramework.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindHTTP_Parser.cmake → FindHTTP_Parser.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindIconv.cmake → FindIconv.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindPCRE.cmake → FindPCRE.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindPCRE2.cmake → FindPCRE2.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindPkgLibraries.cmake → FindPkgLibraries.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindSecurity.cmake → FindSecurity.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindStatNsec.cmake → FindStatNsec.cmake} +0 -0
- data/vendor/libgit2/cmake/Findfutimens.cmake +14 -0
- data/vendor/libgit2/cmake/{Modules/FindmbedTLS.cmake → FindmbedTLS.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/IdeSplitSources.cmake → IdeSplitSources.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/PkgBuildConfig.cmake → PkgBuildConfig.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/SanitizeBool.cmake → SanitizeBool.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/SelectGSSAPI.cmake → SelectGSSAPI.cmake} +18 -26
- data/vendor/libgit2/cmake/{Modules/SelectHTTPSBackend.cmake → SelectHTTPSBackend.cmake} +29 -32
- data/vendor/libgit2/cmake/{Modules/SelectHashes.cmake → SelectHashes.cmake} +21 -28
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +4 -3
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +24 -10
- data/vendor/libgit2/deps/ntlmclient/compat.h +0 -27
- data/vendor/libgit2/deps/ntlmclient/crypt.h +14 -9
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +20 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +3 -3
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +37 -36
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +4 -3
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +178 -51
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +74 -5
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +164 -135
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +13 -9
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +16 -3
- data/vendor/libgit2/deps/ntlmclient/unicode.h +10 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +16 -27
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.h +20 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +28 -52
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.h +22 -0
- data/vendor/libgit2/deps/ntlmclient/util.c +15 -1
- data/vendor/libgit2/deps/ntlmclient/util.h +2 -1
- data/vendor/libgit2/deps/pcre/LICENCE +93 -0
- data/vendor/libgit2/deps/pcre/pcre.h +2 -2
- data/vendor/libgit2/deps/pcre/pcre_compile.c +29 -17
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +4 -4
- data/vendor/libgit2/deps/pcre/pcreposix.c +2 -3
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -5
- data/vendor/libgit2/deps/zlib/deflate.c +1 -0
- data/vendor/libgit2/include/git2/annotated_commit.h +1 -1
- data/vendor/libgit2/include/git2/apply.h +2 -0
- data/vendor/libgit2/include/git2/attr.h +89 -0
- data/vendor/libgit2/include/git2/blame.h +95 -42
- data/vendor/libgit2/include/git2/blob.h +31 -3
- data/vendor/libgit2/include/git2/branch.h +25 -0
- data/vendor/libgit2/include/git2/cert.h +42 -5
- data/vendor/libgit2/include/git2/checkout.h +28 -12
- data/vendor/libgit2/include/git2/commit.h +35 -19
- data/vendor/libgit2/include/git2/common.h +33 -6
- data/vendor/libgit2/include/git2/config.h +1 -1
- data/vendor/libgit2/include/git2/deprecated.h +248 -8
- data/vendor/libgit2/include/git2/diff.h +35 -20
- data/vendor/libgit2/include/git2/errors.h +8 -7
- data/vendor/libgit2/include/git2/filter.h +57 -17
- data/vendor/libgit2/include/git2/graph.h +20 -2
- data/vendor/libgit2/include/git2/index.h +4 -5
- data/vendor/libgit2/include/git2/indexer.h +2 -1
- data/vendor/libgit2/include/git2/odb.h +44 -20
- data/vendor/libgit2/include/git2/pack.h +1 -1
- data/vendor/libgit2/include/git2/patch.h +8 -0
- data/vendor/libgit2/include/git2/rebase.h +25 -1
- data/vendor/libgit2/include/git2/refs.h +9 -5
- data/vendor/libgit2/include/git2/remote.h +59 -6
- data/vendor/libgit2/include/git2/repository.h +95 -52
- data/vendor/libgit2/include/git2/revparse.h +5 -5
- data/vendor/libgit2/include/git2/status.h +115 -59
- data/vendor/libgit2/include/git2/strarray.h +6 -10
- data/vendor/libgit2/include/git2/submodule.h +9 -0
- data/vendor/libgit2/include/git2/sys/commit_graph.h +174 -0
- data/vendor/libgit2/include/git2/sys/filter.h +49 -28
- data/vendor/libgit2/include/git2/sys/midx.h +74 -0
- data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -0
- data/vendor/libgit2/include/git2/sys/transport.h +1 -0
- data/vendor/libgit2/include/git2/tag.h +12 -0
- data/vendor/libgit2/include/git2/transport.h +1 -1
- data/vendor/libgit2/include/git2/tree.h +2 -14
- data/vendor/libgit2/include/git2/types.h +9 -0
- data/vendor/libgit2/include/git2/version.h +3 -3
- data/vendor/libgit2/include/git2/worktree.h +1 -0
- data/vendor/libgit2/src/CMakeLists.txt +77 -44
- data/vendor/libgit2/src/alloc.c +21 -8
- data/vendor/libgit2/src/allocators/failalloc.c +92 -0
- data/vendor/libgit2/src/allocators/failalloc.h +23 -0
- data/vendor/libgit2/src/allocators/stdalloc.c +41 -10
- data/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
- data/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
- data/vendor/libgit2/src/annotated_commit.c +21 -9
- data/vendor/libgit2/src/apply.c +21 -8
- data/vendor/libgit2/src/array.h +11 -11
- data/vendor/libgit2/src/assert_safe.h +58 -0
- data/vendor/libgit2/src/attr.c +181 -74
- data/vendor/libgit2/src/attr_file.c +92 -42
- data/vendor/libgit2/src/attr_file.h +32 -11
- data/vendor/libgit2/src/attrcache.c +44 -40
- data/vendor/libgit2/src/attrcache.h +4 -5
- data/vendor/libgit2/src/blame.c +28 -15
- data/vendor/libgit2/src/blame_git.c +6 -3
- data/vendor/libgit2/src/blob.c +46 -24
- data/vendor/libgit2/src/branch.c +87 -37
- data/vendor/libgit2/src/buffer.c +339 -27
- data/vendor/libgit2/src/buffer.h +153 -2
- data/vendor/libgit2/src/cache.c +3 -24
- data/vendor/libgit2/src/cache.h +7 -7
- data/vendor/libgit2/src/cc-compat.h +10 -2
- data/vendor/libgit2/src/checkout.c +97 -98
- data/vendor/libgit2/src/cherrypick.c +8 -2
- data/vendor/libgit2/src/clone.c +104 -29
- data/vendor/libgit2/src/commit.c +41 -28
- data/vendor/libgit2/src/commit_graph.c +1209 -0
- data/vendor/libgit2/src/commit_graph.h +162 -0
- data/vendor/libgit2/src/commit_list.c +46 -0
- data/vendor/libgit2/src/commit_list.h +2 -0
- data/vendor/libgit2/src/common.h +26 -2
- data/vendor/libgit2/src/config.c +40 -22
- data/vendor/libgit2/src/config_cache.c +9 -4
- data/vendor/libgit2/src/config_entries.c +35 -27
- data/vendor/libgit2/src/config_file.c +25 -8
- data/vendor/libgit2/src/config_parse.c +5 -7
- data/vendor/libgit2/src/config_snapshot.c +2 -1
- data/vendor/libgit2/src/crlf.c +16 -6
- data/vendor/libgit2/src/date.c +4 -3
- data/vendor/libgit2/src/delta.c +1 -1
- data/vendor/libgit2/src/describe.c +11 -4
- data/vendor/libgit2/src/diff.c +23 -19
- data/vendor/libgit2/src/diff_driver.c +21 -17
- data/vendor/libgit2/src/diff_file.c +5 -7
- data/vendor/libgit2/src/diff_generate.c +56 -28
- data/vendor/libgit2/src/diff_parse.c +2 -3
- data/vendor/libgit2/src/diff_print.c +81 -65
- data/vendor/libgit2/src/diff_stats.c +19 -16
- data/vendor/libgit2/src/diff_tform.c +13 -13
- data/vendor/libgit2/src/diff_xdiff.c +4 -2
- data/vendor/libgit2/src/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/errors.c +26 -19
- data/vendor/libgit2/src/features.h.in +5 -1
- data/vendor/libgit2/src/fetch.c +7 -2
- data/vendor/libgit2/src/fetchhead.c +8 -4
- data/vendor/libgit2/src/filebuf.c +9 -7
- data/vendor/libgit2/src/filter.c +209 -113
- data/vendor/libgit2/src/filter.h +24 -5
- data/vendor/libgit2/src/futils.c +8 -8
- data/vendor/libgit2/src/futils.h +4 -4
- data/vendor/libgit2/src/graph.c +64 -9
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
- data/vendor/libgit2/src/hash/sha1/generic.h +1 -1
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
- data/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
- data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +0 -2
- data/vendor/libgit2/src/hash/sha1/win32.c +15 -11
- data/vendor/libgit2/src/hash.c +16 -13
- data/vendor/libgit2/src/hash.h +1 -1
- data/vendor/libgit2/src/hashsig.c +23 -10
- data/vendor/libgit2/src/ident.c +13 -3
- data/vendor/libgit2/src/idxmap.c +0 -22
- data/vendor/libgit2/src/ignore.c +35 -19
- data/vendor/libgit2/src/index.c +126 -84
- data/vendor/libgit2/src/index.h +1 -1
- data/vendor/libgit2/src/indexer.c +60 -36
- data/vendor/libgit2/src/integer.h +79 -2
- data/vendor/libgit2/src/iterator.c +40 -28
- data/vendor/libgit2/src/iterator.h +1 -1
- data/vendor/libgit2/src/khash.h +2 -11
- data/vendor/libgit2/src/{settings.c → libgit2.c} +125 -49
- data/vendor/libgit2/src/libgit2.h +15 -0
- data/vendor/libgit2/src/mailmap.c +23 -10
- data/vendor/libgit2/src/map.h +3 -3
- data/vendor/libgit2/src/merge.c +108 -46
- data/vendor/libgit2/src/merge.h +2 -1
- data/vendor/libgit2/src/merge_driver.c +19 -13
- data/vendor/libgit2/src/merge_file.c +15 -9
- data/vendor/libgit2/src/message.c +3 -1
- data/vendor/libgit2/src/midx.c +879 -0
- data/vendor/libgit2/src/midx.h +110 -0
- data/vendor/libgit2/src/mwindow.c +214 -95
- data/vendor/libgit2/src/mwindow.h +3 -3
- data/vendor/libgit2/src/net.c +133 -4
- data/vendor/libgit2/src/net.h +16 -2
- data/vendor/libgit2/src/netops.c +6 -4
- data/vendor/libgit2/src/netops.h +2 -2
- data/vendor/libgit2/src/notes.c +10 -10
- data/vendor/libgit2/src/object.c +24 -15
- data/vendor/libgit2/src/odb.c +298 -57
- data/vendor/libgit2/src/odb.h +16 -2
- data/vendor/libgit2/src/odb_loose.c +31 -21
- data/vendor/libgit2/src/odb_mempack.c +3 -1
- data/vendor/libgit2/src/odb_pack.c +391 -114
- data/vendor/libgit2/src/oid.c +7 -4
- data/vendor/libgit2/src/pack-objects.c +83 -69
- data/vendor/libgit2/src/pack.c +383 -150
- data/vendor/libgit2/src/pack.h +44 -9
- data/vendor/libgit2/src/patch.c +14 -7
- data/vendor/libgit2/src/patch_generate.c +3 -5
- data/vendor/libgit2/src/patch_parse.c +6 -3
- data/vendor/libgit2/src/path.c +102 -57
- data/vendor/libgit2/src/path.h +79 -6
- data/vendor/libgit2/src/pathspec.c +12 -11
- data/vendor/libgit2/src/pool.c +34 -22
- data/vendor/libgit2/src/pool.h +9 -1
- data/vendor/libgit2/src/posix.c +43 -12
- data/vendor/libgit2/src/posix.h +9 -0
- data/vendor/libgit2/src/proxy.c +2 -0
- data/vendor/libgit2/src/push.c +2 -0
- data/vendor/libgit2/src/reader.c +10 -6
- data/vendor/libgit2/src/rebase.c +95 -49
- data/vendor/libgit2/src/refdb.c +165 -13
- data/vendor/libgit2/src/refdb.h +69 -0
- data/vendor/libgit2/src/refdb_fs.c +144 -152
- data/vendor/libgit2/src/reflog.c +21 -20
- data/vendor/libgit2/src/refs.c +151 -231
- data/vendor/libgit2/src/refs.h +2 -20
- data/vendor/libgit2/src/refspec.c +80 -44
- data/vendor/libgit2/src/regexp.c +2 -2
- data/vendor/libgit2/src/remote.c +312 -121
- data/vendor/libgit2/src/remote.h +2 -1
- data/vendor/libgit2/src/repository.c +351 -189
- data/vendor/libgit2/src/repository.h +23 -29
- data/vendor/libgit2/src/reset.c +7 -6
- data/vendor/libgit2/src/revert.c +8 -2
- data/vendor/libgit2/src/revparse.c +19 -13
- data/vendor/libgit2/src/revwalk.c +35 -20
- data/vendor/libgit2/src/runtime.c +162 -0
- data/vendor/libgit2/src/runtime.h +62 -0
- data/vendor/libgit2/src/{refdb_fs.h → settings.h} +3 -11
- data/vendor/libgit2/src/signature.c +6 -5
- data/vendor/libgit2/src/sortedcache.c +2 -3
- data/vendor/libgit2/src/sortedcache.h +10 -8
- data/vendor/libgit2/src/stash.c +7 -3
- data/vendor/libgit2/src/status.c +9 -4
- data/vendor/libgit2/src/strarray.c +64 -0
- data/vendor/libgit2/src/streams/mbedtls.c +14 -17
- data/vendor/libgit2/src/streams/mbedtls.h +1 -1
- data/vendor/libgit2/src/streams/openssl.c +113 -207
- data/vendor/libgit2/src/streams/openssl.h +9 -1
- data/vendor/libgit2/src/streams/openssl_dynamic.c +309 -0
- data/vendor/libgit2/src/streams/openssl_dynamic.h +348 -0
- data/vendor/libgit2/src/streams/openssl_legacy.c +203 -0
- data/vendor/libgit2/src/streams/openssl_legacy.h +63 -0
- data/vendor/libgit2/src/streams/registry.c +10 -9
- data/vendor/libgit2/src/streams/socket.c +6 -2
- data/vendor/libgit2/src/streams/stransport.c +6 -3
- data/vendor/libgit2/src/streams/tls.c +5 -3
- data/vendor/libgit2/src/submodule.c +134 -66
- data/vendor/libgit2/src/submodule.h +9 -9
- data/vendor/libgit2/src/sysdir.c +8 -26
- data/vendor/libgit2/src/sysdir.h +0 -11
- data/vendor/libgit2/src/tag.c +49 -11
- data/vendor/libgit2/src/thread.c +140 -0
- data/vendor/libgit2/src/thread.h +479 -0
- data/vendor/libgit2/src/threadstate.c +83 -0
- data/vendor/libgit2/src/threadstate.h +24 -0
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +17 -13
- data/vendor/libgit2/src/transaction.c +21 -9
- data/vendor/libgit2/src/transport.c +3 -3
- data/vendor/libgit2/src/transports/auth.c +1 -1
- data/vendor/libgit2/src/transports/auth_negotiate.c +11 -4
- data/vendor/libgit2/src/transports/auth_ntlm.c +10 -6
- data/vendor/libgit2/src/transports/credential.c +17 -7
- data/vendor/libgit2/src/transports/credential_helpers.c +2 -0
- data/vendor/libgit2/src/transports/git.c +1 -3
- data/vendor/libgit2/src/transports/http.c +19 -17
- data/vendor/libgit2/src/transports/http.h +1 -0
- data/vendor/libgit2/src/transports/httpclient.c +84 -42
- data/vendor/libgit2/src/transports/httpclient.h +1 -1
- data/vendor/libgit2/src/transports/local.c +5 -5
- data/vendor/libgit2/src/transports/smart.c +14 -9
- data/vendor/libgit2/src/transports/smart.h +1 -1
- data/vendor/libgit2/src/transports/smart_protocol.c +11 -5
- data/vendor/libgit2/src/transports/ssh.c +51 -17
- data/vendor/libgit2/src/transports/winhttp.c +156 -88
- data/vendor/libgit2/src/tree.c +100 -77
- data/vendor/libgit2/src/tree.h +1 -0
- data/vendor/libgit2/src/tsort.c +0 -2
- data/vendor/libgit2/src/unix/map.c +3 -1
- data/vendor/libgit2/src/unix/posix.h +16 -1
- data/vendor/libgit2/src/unix/pthread.h +2 -1
- data/vendor/libgit2/src/utf8.c +150 -0
- data/vendor/libgit2/src/utf8.h +52 -0
- data/vendor/libgit2/src/util.c +74 -183
- data/vendor/libgit2/src/util.h +33 -39
- data/vendor/libgit2/src/vector.c +23 -19
- data/vendor/libgit2/src/vector.h +4 -2
- data/vendor/libgit2/src/win32/findfile.c +4 -2
- data/vendor/libgit2/src/win32/git2.rc +18 -3
- data/vendor/libgit2/src/win32/map.c +1 -1
- data/vendor/libgit2/src/win32/msvc-compat.h +9 -1
- data/vendor/libgit2/src/win32/path_w32.c +23 -25
- data/vendor/libgit2/src/win32/path_w32.h +0 -1
- data/vendor/libgit2/src/win32/posix_w32.c +77 -1
- data/vendor/libgit2/src/win32/precompiled.h +0 -1
- data/vendor/libgit2/src/win32/reparse.h +4 -4
- data/vendor/libgit2/src/win32/thread.c +24 -15
- data/vendor/libgit2/src/win32/thread.h +1 -1
- data/vendor/libgit2/src/win32/w32_buffer.c +3 -3
- data/vendor/libgit2/src/win32/w32_common.h +18 -9
- data/vendor/libgit2/src/win32/{w32_crtdbg_stacktrace.c → w32_leakcheck.c} +269 -33
- data/vendor/libgit2/src/win32/w32_leakcheck.h +222 -0
- data/vendor/libgit2/src/win32/w32_util.h +6 -6
- data/vendor/libgit2/src/worktree.c +37 -15
- data/vendor/libgit2/src/zstream.c +1 -1
- metadata +56 -38
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +0 -29
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +0 -96
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
- data/vendor/libgit2/src/buf_text.c +0 -316
- data/vendor/libgit2/src/buf_text.h +0 -122
- data/vendor/libgit2/src/global.c +0 -361
- data/vendor/libgit2/src/global.h +0 -41
- data/vendor/libgit2/src/thread-utils.c +0 -58
- data/vendor/libgit2/src/thread-utils.h +0 -246
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
- data/vendor/libgit2/src/win32/w32_stack.c +0 -188
- data/vendor/libgit2/src/win32/w32_stack.h +0 -140
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 19936f56e898dca579bf9fcf65f00269b370f258cacf7ca8bd5078a87adc4671
|
|
4
|
+
data.tar.gz: 401815655a41971104e0a4f798c9558caf435810b30f26057b3685f597e1252a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1f2c4a448530f16527106b68698d8515680c6bd5bb2e2cccd06ce3abffdae089f8b9a230adc89ce25866c13279ede19a4bb7ba0319f5afc05062e8bcb6046bce
|
|
7
|
+
data.tar.gz: faad75d0f246a51902dec3f8805fd91dce80add042e737b1bf6df437e41988987e1f88cd9296e798fbba3f94d246e2592895b28d484a63b5b507417a0605d147
|
data/LICENSE
CHANGED
data/README.md
CHANGED
|
@@ -17,9 +17,9 @@ Rugged is a self-contained gem. You can install it by running:
|
|
|
17
17
|
|
|
18
18
|
$ gem install rugged
|
|
19
19
|
|
|
20
|
-
You need to have CMake and `pkg-config` installed on your system to be able to build the included version of `libgit2`. On OS X, after installing [Homebrew](http://brew.sh/), you can get
|
|
20
|
+
You need to have CMake and `pkg-config` installed on your system to be able to build the included version of `libgit2`. On OS X, after installing [Homebrew](http://brew.sh/), you can get the required packages with:
|
|
21
21
|
```bash
|
|
22
|
-
$ brew install cmake
|
|
22
|
+
$ brew install cmake pkg-config
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
Please follow the above in case installation of the gem fails with `ERROR: CMake is required to build Rugged.`.
|
|
@@ -577,7 +577,7 @@ You can store bare repositories in alternative backends instead of storing on di
|
|
|
577
577
|
`redbadger/rugged-redis` for an example of how a rugged backend works).
|
|
578
578
|
|
|
579
579
|
```ruby
|
|
580
|
-
a_backend =
|
|
580
|
+
a_backend = MyProject::CustomObjectDB(opt1: 'setting', opt2: 'setting')
|
|
581
581
|
|
|
582
582
|
repo = Rugged::Repository.init_at('repo_name', :bare, backend: a_backend)
|
|
583
583
|
|
data/ext/rugged/rugged.c
CHANGED
|
@@ -220,15 +220,18 @@ static VALUE rb_git_prettify_message(int argc, VALUE *argv, VALUE self)
|
|
|
220
220
|
return result;
|
|
221
221
|
}
|
|
222
222
|
|
|
223
|
-
static VALUE minimize_cb(
|
|
223
|
+
static VALUE minimize_cb(RB_BLOCK_CALL_FUNC_ARGLIST(rb_oid, shorten))
|
|
224
224
|
{
|
|
225
|
+
git_oid_shorten *shortener = (git_oid_shorten*) shorten;
|
|
226
|
+
|
|
225
227
|
Check_Type(rb_oid, T_STRING);
|
|
226
228
|
git_oid_shorten_add(shortener, RSTRING_PTR(rb_oid));
|
|
227
229
|
return Qnil;
|
|
228
230
|
}
|
|
229
231
|
|
|
230
|
-
static VALUE minimize_yield(
|
|
232
|
+
static VALUE minimize_yield(RB_BLOCK_CALL_FUNC_ARGLIST(rb_oid, args))
|
|
231
233
|
{
|
|
234
|
+
VALUE *data = (VALUE*) args;
|
|
232
235
|
rb_funcall(data[0], rb_intern("call"), 1,
|
|
233
236
|
rb_str_substr(rb_oid, 0, FIX2INT(data[1])));
|
|
234
237
|
return Qnil;
|
|
@@ -293,7 +296,7 @@ static VALUE rb_git_minimize_oid(int argc, VALUE *argv, VALUE self)
|
|
|
293
296
|
|
|
294
297
|
shrt = git_oid_shorten_new(minlen);
|
|
295
298
|
|
|
296
|
-
|
|
299
|
+
rb_block_call(rb_enum, rb_intern("each"), 0, NULL, minimize_cb, (VALUE)shrt);
|
|
297
300
|
length = git_oid_shorten_add(shrt, NULL);
|
|
298
301
|
|
|
299
302
|
git_oid_shorten_free(shrt);
|
|
@@ -305,7 +308,7 @@ static VALUE rb_git_minimize_oid(int argc, VALUE *argv, VALUE self)
|
|
|
305
308
|
yield_data[0] = rb_block;
|
|
306
309
|
yield_data[1] = INT2FIX(length);
|
|
307
310
|
|
|
308
|
-
|
|
311
|
+
rb_block_call(rb_enum, rb_intern("each"), 0, NULL, minimize_yield, (VALUE)yield_data);
|
|
309
312
|
return Qnil;
|
|
310
313
|
}
|
|
311
314
|
|
data/ext/rugged/rugged_commit.c
CHANGED
|
@@ -425,7 +425,7 @@ struct commit_data {
|
|
|
425
425
|
* Note that parents may be set even when the function errors, so make
|
|
426
426
|
* sure to free this data.
|
|
427
427
|
*/
|
|
428
|
-
static
|
|
428
|
+
static int parse_commit_options(struct commit_data *out, git_repository *repo, VALUE rb_data)
|
|
429
429
|
{
|
|
430
430
|
VALUE rb_message, rb_tree, rb_parents, rb_ref;
|
|
431
431
|
int error = 0, parent_count, i;
|
data/ext/rugged/rugged_config.c
CHANGED
|
@@ -173,7 +173,7 @@ static int cb_config__each_key(const git_config_entry *entry, void *payload)
|
|
|
173
173
|
{
|
|
174
174
|
int *exception = (int *) payload;
|
|
175
175
|
|
|
176
|
-
rb_protect(rb_yield,
|
|
176
|
+
rb_protect(rb_yield, rb_str_new_utf8(entry->name), exception);
|
|
177
177
|
|
|
178
178
|
return (*exception != 0) ? GIT_EUSER : GIT_OK;
|
|
179
179
|
}
|
data/ext/rugged/rugged_object.c
CHANGED
|
@@ -400,7 +400,7 @@ static VALUE rb_git_object_read_raw(VALUE self)
|
|
|
400
400
|
|
|
401
401
|
void Init_rugged_object(void)
|
|
402
402
|
{
|
|
403
|
-
rb_cRuggedObject = rb_define_class_under(rb_mRugged, "Object",
|
|
403
|
+
rb_cRuggedObject = rb_define_class_under(rb_mRugged, "Object", rb_cObject);
|
|
404
404
|
rb_define_singleton_method(rb_cRuggedObject, "lookup", rb_git_object_lookup, 2);
|
|
405
405
|
rb_define_singleton_method(rb_cRuggedObject, "rev_parse", rb_git_object_rev_parse, 2);
|
|
406
406
|
rb_define_singleton_method(rb_cRuggedObject, "rev_parse_oid", rb_git_object_rev_parse_oid, 2);
|
data/ext/rugged/rugged_remote.c
CHANGED
|
@@ -207,6 +207,18 @@ static void init_custom_headers(VALUE rb_options, git_strarray *custom_headers)
|
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
+
static void init_proxy_options(VALUE rb_options, git_proxy_options *proxy_options)
|
|
211
|
+
{
|
|
212
|
+
if (NIL_P(rb_options)) return;
|
|
213
|
+
|
|
214
|
+
VALUE val = rb_hash_aref(rb_options, CSTR2SYM("proxy_url"));
|
|
215
|
+
if (!NIL_P(val)) {
|
|
216
|
+
Check_Type(val, T_STRING);
|
|
217
|
+
proxy_options->type = GIT_PROXY_SPECIFIED;
|
|
218
|
+
proxy_options->url = StringValueCStr(val);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
210
222
|
static int parse_prune_type(VALUE rb_prune_type)
|
|
211
223
|
{
|
|
212
224
|
if (rb_prune_type == Qtrue) {
|
|
@@ -283,11 +295,15 @@ static VALUE rugged_rhead_new(const git_remote_head *head)
|
|
|
283
295
|
*
|
|
284
296
|
* :headers ::
|
|
285
297
|
* Extra HTTP headers to include with the request (only applies to http:// or https:// remotes)
|
|
298
|
+
*
|
|
299
|
+
* :proxy_url ::
|
|
300
|
+
* The url of an http proxy to use to access the remote repository.
|
|
286
301
|
*/
|
|
287
302
|
static VALUE rb_git_remote_ls(int argc, VALUE *argv, VALUE self)
|
|
288
303
|
{
|
|
289
304
|
git_remote *remote;
|
|
290
305
|
git_remote_callbacks callbacks = GIT_REMOTE_CALLBACKS_INIT;
|
|
306
|
+
git_proxy_options proxy_options = GIT_PROXY_OPTIONS_INIT;
|
|
291
307
|
git_strarray custom_headers = {0};
|
|
292
308
|
const git_remote_head **heads;
|
|
293
309
|
|
|
@@ -304,8 +320,9 @@ static VALUE rb_git_remote_ls(int argc, VALUE *argv, VALUE self)
|
|
|
304
320
|
|
|
305
321
|
rugged_remote_init_callbacks_and_payload_from_options(rb_options, &callbacks, &payload);
|
|
306
322
|
init_custom_headers(rb_options, &custom_headers);
|
|
323
|
+
init_proxy_options(rb_options, &proxy_options);
|
|
307
324
|
|
|
308
|
-
if ((error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks,
|
|
325
|
+
if ((error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks, &proxy_options, &custom_headers)) ||
|
|
309
326
|
(error = git_remote_ls(&heads, &heads_len, remote)))
|
|
310
327
|
goto cleanup;
|
|
311
328
|
|
|
@@ -474,6 +491,9 @@ static VALUE rb_git_remote_push_refspecs(VALUE self)
|
|
|
474
491
|
* :headers ::
|
|
475
492
|
* Extra HTTP headers to include with the request (only applies to http:// or https:// remotes)
|
|
476
493
|
*
|
|
494
|
+
* :proxy_url ::
|
|
495
|
+
* The url of an http proxy to use to access the remote repository.
|
|
496
|
+
*
|
|
477
497
|
* Example:
|
|
478
498
|
*
|
|
479
499
|
* remote = repo.remotes["origin"]
|
|
@@ -484,6 +504,7 @@ static VALUE rb_git_remote_check_connection(int argc, VALUE *argv, VALUE self)
|
|
|
484
504
|
{
|
|
485
505
|
git_remote *remote;
|
|
486
506
|
git_remote_callbacks callbacks = GIT_REMOTE_CALLBACKS_INIT;
|
|
507
|
+
git_proxy_options proxy_options = GIT_PROXY_OPTIONS_INIT;
|
|
487
508
|
git_strarray custom_headers = {0};
|
|
488
509
|
struct rugged_remote_cb_payload payload = { Qnil, Qnil, Qnil, Qnil, Qnil, Qnil, Qnil, 0 };
|
|
489
510
|
VALUE rb_direction, rb_options;
|
|
@@ -504,8 +525,9 @@ static VALUE rb_git_remote_check_connection(int argc, VALUE *argv, VALUE self)
|
|
|
504
525
|
|
|
505
526
|
rugged_remote_init_callbacks_and_payload_from_options(rb_options, &callbacks, &payload);
|
|
506
527
|
init_custom_headers(rb_options, &custom_headers);
|
|
528
|
+
init_proxy_options(rb_options, &proxy_options);
|
|
507
529
|
|
|
508
|
-
error = git_remote_connect(remote, direction, &callbacks,
|
|
530
|
+
error = git_remote_connect(remote, direction, &callbacks, &proxy_options, &custom_headers);
|
|
509
531
|
git_remote_disconnect(remote);
|
|
510
532
|
|
|
511
533
|
xfree(custom_headers.strings);
|
|
@@ -563,6 +585,9 @@ static VALUE rb_git_remote_check_connection(int argc, VALUE *argv, VALUE self)
|
|
|
563
585
|
* Specifies the prune mode for the fetch. +true+ remove any remote-tracking references that
|
|
564
586
|
* no longer exist, +false+ do not prune, +nil+ use configured settings Defaults to "nil".
|
|
565
587
|
*
|
|
588
|
+
* :proxy_url ::
|
|
589
|
+
* The url of an http proxy to use to access the remote repository.
|
|
590
|
+
*
|
|
566
591
|
* Example:
|
|
567
592
|
*
|
|
568
593
|
* remote = Rugged::Remote.lookup(@repo, 'origin')
|
|
@@ -593,6 +618,7 @@ static VALUE rb_git_remote_fetch(int argc, VALUE *argv, VALUE self)
|
|
|
593
618
|
|
|
594
619
|
rugged_remote_init_callbacks_and_payload_from_options(rb_options, &opts.callbacks, &payload);
|
|
595
620
|
init_custom_headers(rb_options, &opts.custom_headers);
|
|
621
|
+
init_proxy_options(rb_options, &opts.proxy_opts);
|
|
596
622
|
|
|
597
623
|
if (!NIL_P(rb_options)) {
|
|
598
624
|
VALUE rb_prune_type;
|
|
@@ -654,6 +680,9 @@ static VALUE rb_git_remote_fetch(int argc, VALUE *argv, VALUE self)
|
|
|
654
680
|
* :headers ::
|
|
655
681
|
* Extra HTTP headers to include with the push (only applies to http:// or https:// remotes)
|
|
656
682
|
*
|
|
683
|
+
* :proxy_url ::
|
|
684
|
+
* The url of an http proxy to use to access the remote repository.
|
|
685
|
+
*
|
|
657
686
|
* Example:
|
|
658
687
|
*
|
|
659
688
|
* remote = Rugged::Remote.lookup(@repo, 'origin')
|
|
@@ -679,6 +708,7 @@ static VALUE rb_git_remote_push(int argc, VALUE *argv, VALUE self)
|
|
|
679
708
|
|
|
680
709
|
rugged_remote_init_callbacks_and_payload_from_options(rb_options, &opts.callbacks, &payload);
|
|
681
710
|
init_custom_headers(rb_options, &opts.custom_headers);
|
|
711
|
+
init_proxy_options(rb_options, &opts.proxy_opts);
|
|
682
712
|
|
|
683
713
|
error = git_remote_push(remote, &refspecs, &opts);
|
|
684
714
|
|
data/ext/rugged/rugged_repo.c
CHANGED
|
@@ -528,6 +528,13 @@ static void parse_clone_options(git_clone_options *ret, VALUE rb_options, struct
|
|
|
528
528
|
ret->checkout_branch = StringValueCStr(val);
|
|
529
529
|
}
|
|
530
530
|
|
|
531
|
+
val = rb_hash_aref(rb_options, CSTR2SYM("proxy_url"));
|
|
532
|
+
if (!NIL_P(val)) {
|
|
533
|
+
Check_Type(val, T_STRING);
|
|
534
|
+
ret->fetch_opts.proxy_opts.type = GIT_PROXY_SPECIFIED;
|
|
535
|
+
ret->fetch_opts.proxy_opts.url = StringValueCStr(val);
|
|
536
|
+
}
|
|
537
|
+
|
|
531
538
|
rugged_remote_init_callbacks_and_payload_from_options(rb_options, &ret->fetch_opts.callbacks, remote_payload);
|
|
532
539
|
}
|
|
533
540
|
|
|
@@ -552,6 +559,9 @@ static void parse_clone_options(git_clone_options *ret, VALUE rb_options, struct
|
|
|
552
559
|
* :ignore_cert_errors ::
|
|
553
560
|
* If set to +true+, errors while validating the remote's host certificate will be ignored.
|
|
554
561
|
*
|
|
562
|
+
* :proxy_url ::
|
|
563
|
+
* The url of an http proxy to use to access the remote repository.
|
|
564
|
+
*
|
|
555
565
|
* :credentials ::
|
|
556
566
|
* The credentials to use for the clone operation. Can be either an instance of one
|
|
557
567
|
* of the Rugged::Credentials types, or a proc returning one of the former.
|
|
@@ -1450,8 +1460,8 @@ static VALUE rb_git_repo_is_shallow(VALUE self)
|
|
|
1450
1460
|
* call-seq:
|
|
1451
1461
|
* repo.empty? -> true or false
|
|
1452
1462
|
*
|
|
1453
|
-
* Return whether a repository is empty or not. An empty repository has
|
|
1454
|
-
*
|
|
1463
|
+
* Return whether a repository is empty or not. An empty repository has HEAD
|
|
1464
|
+
* pointing to the default value and there are no other references.
|
|
1455
1465
|
*/
|
|
1456
1466
|
static VALUE rb_git_repo_is_empty(VALUE self)
|
|
1457
1467
|
{
|
|
@@ -2835,7 +2845,7 @@ void Init_rugged_repo(void)
|
|
|
2835
2845
|
rb_define_method(rb_cRuggedRepo, "cherrypick_commit", rb_git_repo_cherrypick_commit, -1);
|
|
2836
2846
|
rb_define_method(rb_cRuggedRepo, "fetch_attributes", rb_git_repo_attributes, -1);
|
|
2837
2847
|
|
|
2838
|
-
rb_cRuggedOdbObject = rb_define_class_under(rb_mRugged, "OdbObject",
|
|
2848
|
+
rb_cRuggedOdbObject = rb_define_class_under(rb_mRugged, "OdbObject", rb_cObject);
|
|
2839
2849
|
rb_define_method(rb_cRuggedOdbObject, "data", rb_git_odbobj_data, 0);
|
|
2840
2850
|
rb_define_method(rb_cRuggedOdbObject, "len", rb_git_odbobj_size, 0);
|
|
2841
2851
|
rb_define_method(rb_cRuggedOdbObject, "type", rb_git_odbobj_type, 0);
|
data/lib/rugged/commit.rb
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
module Rugged
|
|
7
7
|
class Commit
|
|
8
|
-
|
|
9
8
|
def self.prettify_message(msg, strip_comments = true)
|
|
10
9
|
Rugged::prettify_message(msg, strip_comments)
|
|
11
10
|
end
|
|
@@ -20,17 +19,31 @@ module Rugged
|
|
|
20
19
|
|
|
21
20
|
# Return a diff between this commit and its first parent or another commit or tree.
|
|
22
21
|
#
|
|
22
|
+
# The commit is treated as the new side of the diff by default
|
|
23
|
+
#
|
|
23
24
|
# See Rugged::Tree#diff for more details.
|
|
24
25
|
def diff(*args)
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
raise ArgumentError("wrong number of arguments (given #{args.length}, expected 0..2") if args.length > 2
|
|
27
|
+
other, opts = args
|
|
28
|
+
if other.is_a?(Hash)
|
|
29
|
+
opts = other
|
|
30
|
+
other = nil
|
|
31
|
+
end
|
|
32
|
+
opts ||= {}
|
|
33
|
+
# if other is not provided at all (as opposed to explicitly nil, or given)
|
|
34
|
+
# then diff against the prior commit
|
|
35
|
+
if args.empty? || args.first.is_a?(Hash)
|
|
36
|
+
other = parents.first
|
|
37
|
+
opts[:reverse] = !opts[:reverse]
|
|
38
|
+
end
|
|
39
|
+
self.tree.diff(other, opts)
|
|
27
40
|
end
|
|
28
41
|
|
|
29
42
|
# Return a diff between this commit and the workdir.
|
|
30
43
|
#
|
|
31
44
|
# See Rugged::Tree#diff_workdir for more details.
|
|
32
45
|
def diff_workdir(options = {})
|
|
33
|
-
self.tree.diff_workdir(options)
|
|
46
|
+
self.tree.diff_workdir(**options)
|
|
34
47
|
end
|
|
35
48
|
|
|
36
49
|
# The time when this commit was made effective. This is the same value
|
data/lib/rugged/repository.rb
CHANGED
|
@@ -30,7 +30,7 @@ module Rugged
|
|
|
30
30
|
options[:strategy] ||= :safe
|
|
31
31
|
options.delete(:paths)
|
|
32
32
|
|
|
33
|
-
return checkout_head(options) if target == "HEAD"
|
|
33
|
+
return checkout_head(**options) if target == "HEAD"
|
|
34
34
|
|
|
35
35
|
if target.kind_of?(Rugged::Branch)
|
|
36
36
|
branch = target
|
|
@@ -39,7 +39,7 @@ module Rugged
|
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
if branch
|
|
42
|
-
self.checkout_tree(branch.target, options)
|
|
42
|
+
self.checkout_tree(branch.target, **options)
|
|
43
43
|
|
|
44
44
|
if branch.remote?
|
|
45
45
|
references.create("HEAD", branch.target_id, force: true)
|
|
@@ -49,7 +49,7 @@ module Rugged
|
|
|
49
49
|
else
|
|
50
50
|
commit = Commit.lookup(self, self.rev_parse_oid(target))
|
|
51
51
|
references.create("HEAD", commit.oid, force: true)
|
|
52
|
-
self.checkout_tree(commit, options)
|
|
52
|
+
self.checkout_tree(commit, **options)
|
|
53
53
|
end
|
|
54
54
|
end
|
|
55
55
|
|
|
@@ -250,12 +250,11 @@ module Rugged
|
|
|
250
250
|
(blob.type == :blob) ? blob : nil
|
|
251
251
|
end
|
|
252
252
|
|
|
253
|
-
def fetch(remote_or_url, *args)
|
|
253
|
+
def fetch(remote_or_url, *args, **kwargs)
|
|
254
254
|
unless remote_or_url.kind_of? Remote
|
|
255
255
|
remote_or_url = remotes[remote_or_url] || remotes.create_anonymous(remote_or_url)
|
|
256
256
|
end
|
|
257
|
-
|
|
258
|
-
remote_or_url.fetch(*args)
|
|
257
|
+
remote_or_url.fetch(*args, **kwargs)
|
|
259
258
|
end
|
|
260
259
|
|
|
261
260
|
# Push a list of refspecs to the given remote.
|
|
@@ -264,12 +263,12 @@ module Rugged
|
|
|
264
263
|
#
|
|
265
264
|
# Returns a hash containing the pushed refspecs as keys and
|
|
266
265
|
# any error messages or +nil+ as values.
|
|
267
|
-
def push(remote_or_url, *args)
|
|
266
|
+
def push(remote_or_url, *args, **kwargs)
|
|
268
267
|
unless remote_or_url.kind_of? Remote
|
|
269
268
|
remote_or_url = remotes[remote_or_url] || remotes.create_anonymous(remote_or_url)
|
|
270
269
|
end
|
|
271
270
|
|
|
272
|
-
remote_or_url.push(*args)
|
|
271
|
+
remote_or_url.push(*args, **kwargs)
|
|
273
272
|
end
|
|
274
273
|
end
|
|
275
274
|
end
|
|
@@ -26,8 +26,8 @@ module Rugged
|
|
|
26
26
|
#
|
|
27
27
|
# Returns the newly created +submodule+
|
|
28
28
|
def add(url, path, options = {})
|
|
29
|
-
submodule = setup_add(url, path, options)
|
|
30
|
-
clone_submodule(submodule.repository, options)
|
|
29
|
+
submodule = setup_add(url, path, **options)
|
|
30
|
+
clone_submodule(submodule.repository, **options)
|
|
31
31
|
submodule.finalize_add
|
|
32
32
|
end
|
|
33
33
|
|
|
@@ -40,9 +40,9 @@ module Rugged
|
|
|
40
40
|
# 1. fetches the remote
|
|
41
41
|
# 2. sets up a master branch to be tracking origin/master
|
|
42
42
|
# 3. checkouts the submodule
|
|
43
|
-
def clone_submodule(repo, fetch_options)
|
|
43
|
+
def clone_submodule(repo, **fetch_options)
|
|
44
44
|
# the remote was just added by setup_add, no need to check presence
|
|
45
|
-
repo.remotes['origin'].fetch(fetch_options)
|
|
45
|
+
repo.remotes['origin'].fetch(**fetch_options)
|
|
46
46
|
|
|
47
47
|
repo.branches.create('master','origin/master')
|
|
48
48
|
repo.branches['master'].upstream = repo.branches['origin/master']
|
data/lib/rugged/version.rb
CHANGED
|
@@ -11,21 +11,12 @@
|
|
|
11
11
|
# Install:
|
|
12
12
|
# > cmake --build . --target install
|
|
13
13
|
|
|
14
|
-
PROJECT(libgit2 C)
|
|
15
14
|
CMAKE_MINIMUM_REQUIRED(VERSION 3.5.1)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
CMAKE_POLICY(SET CMP0051 NEW)
|
|
19
|
-
ENDIF()
|
|
20
|
-
IF(POLICY CMP0042)
|
|
21
|
-
CMAKE_POLICY(SET CMP0042 NEW)
|
|
22
|
-
ENDIF()
|
|
23
|
-
IF(POLICY CMP0054)
|
|
24
|
-
CMAKE_POLICY(SET CMP0054 NEW)
|
|
25
|
-
ENDIF()
|
|
15
|
+
|
|
16
|
+
project(libgit2 VERSION "1.2.0" LANGUAGES C)
|
|
26
17
|
|
|
27
18
|
# Add find modules to the path
|
|
28
|
-
|
|
19
|
+
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${libgit2_SOURCE_DIR}/cmake/")
|
|
29
20
|
|
|
30
21
|
INCLUDE(CheckLibraryExists)
|
|
31
22
|
INCLUDE(CheckFunctionExists)
|
|
@@ -36,6 +27,7 @@ INCLUDE(AddCFlagIfSupported)
|
|
|
36
27
|
INCLUDE(FindPkgLibraries)
|
|
37
28
|
INCLUDE(FindThreads)
|
|
38
29
|
INCLUDE(FindStatNsec)
|
|
30
|
+
INCLUDE(Findfutimens)
|
|
39
31
|
INCLUDE(GNUInstallDirs)
|
|
40
32
|
INCLUDE(IdeSplitSources)
|
|
41
33
|
INCLUDE(FeatureSummary)
|
|
@@ -49,8 +41,6 @@ OPTION(THREADSAFE "Build libgit2 as threadsafe" ON)
|
|
|
49
41
|
OPTION(BUILD_CLAR "Build Tests using the Clar suite" ON)
|
|
50
42
|
OPTION(BUILD_EXAMPLES "Build library usage example apps" OFF)
|
|
51
43
|
OPTION(BUILD_FUZZERS "Build the fuzz targets" OFF)
|
|
52
|
-
OPTION(TAGS "Generate tags" OFF)
|
|
53
|
-
OPTION(PROFILE "Generate profiling information" OFF)
|
|
54
44
|
OPTION(ENABLE_TRACE "Enables tracing support" ON)
|
|
55
45
|
OPTION(LIBGIT2_FILENAME "Name of the produced binary" OFF)
|
|
56
46
|
OPTION(USE_SSH "Link with libssh2 to enable SSH support" ON)
|
|
@@ -60,8 +50,10 @@ OPTION(USE_GSSAPI "Link with libgssapi for SPNEGO auth" OFF)
|
|
|
60
50
|
OPTION(USE_STANDALONE_FUZZERS "Enable standalone fuzzers (compatible with gcc)" OFF)
|
|
61
51
|
OPTION(USE_LEAK_CHECKER "Run tests with leak checker" OFF)
|
|
62
52
|
OPTION(DEBUG_POOL "Enable debug pool allocator" OFF)
|
|
53
|
+
OPTION(DEBUG_STRICT_ALLOC "Enable strict allocator behavior" OFF)
|
|
54
|
+
OPTION(DEBUG_STRICT_OPEN "Enable path validation in open" OFF)
|
|
63
55
|
OPTION(ENABLE_WERROR "Enable compilation with -Werror" OFF)
|
|
64
|
-
OPTION(USE_BUNDLED_ZLIB "Use the bundled version of zlib" OFF)
|
|
56
|
+
OPTION(USE_BUNDLED_ZLIB "Use the bundled version of zlib. Can be set to one of Bundled(ON)/Chromium. The Chromium option requires a x86_64 processor with SSE4.2 and CLMUL" OFF)
|
|
65
57
|
SET(USE_HTTP_PARSER "" CACHE STRING "Specifies the HTTP Parser implementation; either system or builtin.")
|
|
66
58
|
OPTION(DEPRECATE_HARD "Do not include deprecated functions in the library" OFF)
|
|
67
59
|
SET(REGEX_BACKEND "" CACHE STRING "Regular expression implementation. One of regcomp_l, pcre2, pcre, regcomp, or builtin.")
|
|
@@ -100,20 +92,10 @@ IF(WIN32)
|
|
|
100
92
|
ENDIF()
|
|
101
93
|
|
|
102
94
|
IF(MSVC)
|
|
103
|
-
# Enable
|
|
104
|
-
OPTION(
|
|
95
|
+
# Enable leak checking using the debugging C runtime.
|
|
96
|
+
OPTION(WIN32_LEAKCHECK "Enable leak reporting via crtdbg" OFF)
|
|
105
97
|
ENDIF()
|
|
106
98
|
|
|
107
|
-
FILE(STRINGS "${libgit2_SOURCE_DIR}/include/git2/version.h" GIT2_HEADER REGEX "^#define LIBGIT2_VERSION \"[^\"]*\"$")
|
|
108
|
-
|
|
109
|
-
STRING(REGEX REPLACE "^.*LIBGIT2_VERSION \"([0-9]+).*$" "\\1" LIBGIT2_VERSION_MAJOR "${GIT2_HEADER}")
|
|
110
|
-
STRING(REGEX REPLACE "^.*LIBGIT2_VERSION \"[0-9]+\\.([0-9]+).*$" "\\1" LIBGIT2_VERSION_MINOR "${GIT2_HEADER}")
|
|
111
|
-
STRING(REGEX REPLACE "^.*LIBGIT2_VERSION \"[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" LIBGIT2_VERSION_REV "${GIT2_HEADER}")
|
|
112
|
-
SET(LIBGIT2_VERSION_STRING "${LIBGIT2_VERSION_MAJOR}.${LIBGIT2_VERSION_MINOR}.${LIBGIT2_VERSION_REV}")
|
|
113
|
-
|
|
114
|
-
FILE(STRINGS "${libgit2_SOURCE_DIR}/include/git2/version.h" GIT2_HEADER_SOVERSION REGEX "^#define LIBGIT2_SOVERSION \"([0-9.]+)\"$")
|
|
115
|
-
STRING(REGEX REPLACE "^.*LIBGIT2_SOVERSION \"([0-9.]+)\"$" "\\1" LIBGIT2_SOVERSION "${GIT2_HEADER_SOVERSION}")
|
|
116
|
-
|
|
117
99
|
IF (DEPRECATE_HARD)
|
|
118
100
|
ADD_DEFINITIONS(-DGIT_DEPRECATE_HARD)
|
|
119
101
|
ENDIF()
|
|
@@ -137,6 +119,11 @@ IF (MSVC)
|
|
|
137
119
|
# /Gd - explicitly set cdecl calling convention
|
|
138
120
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Gd")
|
|
139
121
|
|
|
122
|
+
IF (NOT (MSVC_VERSION LESS 1900))
|
|
123
|
+
# /guard:cf - Enable Control Flow Guard
|
|
124
|
+
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /guard:cf")
|
|
125
|
+
ENDIF()
|
|
126
|
+
|
|
140
127
|
IF (STATIC_CRT)
|
|
141
128
|
SET(CRT_FLAG_DEBUG "/MTd")
|
|
142
129
|
SET(CRT_FLAG_RELEASE "/MT")
|
|
@@ -145,8 +132,8 @@ IF (MSVC)
|
|
|
145
132
|
SET(CRT_FLAG_RELEASE "/MD")
|
|
146
133
|
ENDIF()
|
|
147
134
|
|
|
148
|
-
IF (
|
|
149
|
-
SET(
|
|
135
|
+
IF (WIN32_LEAKCHECK)
|
|
136
|
+
SET(GIT_WIN32_LEAKCHECK 1)
|
|
150
137
|
SET(CRT_FLAG_DEBUG "${CRT_FLAG_DEBUG}")
|
|
151
138
|
SET(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} Dbghelp.lib")
|
|
152
139
|
ENDIF()
|
|
@@ -181,7 +168,12 @@ IF (MSVC)
|
|
|
181
168
|
# /NXCOMPAT - Data execution prevention (DEP)
|
|
182
169
|
# /LARGEADDRESSAWARE - >2GB user address space on x86
|
|
183
170
|
# /VERSION - Embed version information in PE header
|
|
184
|
-
SET(CMAKE_EXE_LINKER_FLAGS "/DYNAMICBASE /NXCOMPAT /LARGEADDRESSAWARE /VERSION:${
|
|
171
|
+
SET(CMAKE_EXE_LINKER_FLAGS "/DYNAMICBASE /NXCOMPAT /LARGEADDRESSAWARE /VERSION:${libgit2_VERSION_MAJOR}.${libgit2_VERSION_MINOR}")
|
|
172
|
+
|
|
173
|
+
IF (NOT (MSVC_VERSION LESS 1900))
|
|
174
|
+
# /GUARD:CF - Enable Control Flow Guard
|
|
175
|
+
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /GUARD:CF")
|
|
176
|
+
ENDIF()
|
|
185
177
|
|
|
186
178
|
# /DEBUG - Create a PDB
|
|
187
179
|
# /LTCG - Link time code generation (whole program optimization)
|
|
@@ -232,35 +224,29 @@ ELSE ()
|
|
|
232
224
|
ADD_DEFINITIONS(-D__USE_MINGW_ANSI_STDIO=1)
|
|
233
225
|
ENDIF ()
|
|
234
226
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
227
|
+
enable_warnings(documentation)
|
|
228
|
+
disable_warnings(documentation-deprecated-sync)
|
|
229
|
+
disable_warnings(missing-field-initializers)
|
|
230
|
+
enable_warnings(strict-aliasing)
|
|
231
|
+
enable_warnings(strict-prototypes)
|
|
232
|
+
enable_warnings(declaration-after-statement)
|
|
233
|
+
enable_warnings(shift-count-overflow)
|
|
234
|
+
enable_warnings(unused-const-variable)
|
|
235
|
+
enable_warnings(unused-function)
|
|
236
|
+
enable_warnings(int-conversion)
|
|
237
|
+
enable_warnings(c11-extensions)
|
|
238
|
+
enable_warnings(c99-c11-compat)
|
|
244
239
|
|
|
245
240
|
# MinGW uses gcc, which expects POSIX formatting for printf, but
|
|
246
241
|
# uses the Windows C library, which uses its own format specifiers.
|
|
247
242
|
# Disable format specifier warnings.
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
IF("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
|
|
257
|
-
DISABLE_WARNINGS(documentation-deprecated-sync)
|
|
258
|
-
ENDIF()
|
|
259
|
-
|
|
260
|
-
IF (PROFILE)
|
|
261
|
-
SET(CMAKE_C_FLAGS "-pg ${CMAKE_C_FLAGS}")
|
|
262
|
-
SET(CMAKE_EXE_LINKER_FLAGS "-pg ${CMAKE_EXE_LINKER_FLAGS}")
|
|
263
|
-
ENDIF ()
|
|
243
|
+
if(MINGW)
|
|
244
|
+
disable_warnings(format)
|
|
245
|
+
disable_warnings(format-security)
|
|
246
|
+
else()
|
|
247
|
+
enable_warnings(format)
|
|
248
|
+
enable_warnings(format-security)
|
|
249
|
+
endif()
|
|
264
250
|
ENDIF()
|
|
265
251
|
|
|
266
252
|
# Ensure that MinGW provides the correct header files.
|
|
@@ -300,25 +286,6 @@ IF (BUILD_CLAR)
|
|
|
300
286
|
ADD_SUBDIRECTORY(tests)
|
|
301
287
|
ENDIF ()
|
|
302
288
|
|
|
303
|
-
IF (TAGS)
|
|
304
|
-
FIND_PROGRAM(CTAGS ctags)
|
|
305
|
-
IF (NOT CTAGS)
|
|
306
|
-
MESSAGE(FATAL_ERROR "Could not find ctags command")
|
|
307
|
-
ENDIF ()
|
|
308
|
-
|
|
309
|
-
FILE(GLOB_RECURSE SRC_ALL *.[ch])
|
|
310
|
-
|
|
311
|
-
ADD_CUSTOM_COMMAND(
|
|
312
|
-
OUTPUT tags
|
|
313
|
-
COMMAND ${CTAGS} -a ${SRC_ALL}
|
|
314
|
-
DEPENDS ${SRC_ALL}
|
|
315
|
-
)
|
|
316
|
-
ADD_CUSTOM_TARGET(
|
|
317
|
-
do_tags ALL
|
|
318
|
-
DEPENDS tags
|
|
319
|
-
)
|
|
320
|
-
ENDIF ()
|
|
321
|
-
|
|
322
289
|
IF (BUILD_EXAMPLES)
|
|
323
290
|
ADD_SUBDIRECTORY(examples)
|
|
324
291
|
ENDIF ()
|