rugged 0.28.4 → 0.28.4.1
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/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +0 -1
- data/vendor/libgit2/CMakeLists.txt +16 -36
- data/vendor/libgit2/COPYING +0 -28
- data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +1 -5
- data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +0 -6
- data/vendor/libgit2/deps/http-parser/http_parser.c +6 -11
- data/vendor/libgit2/deps/regex/CMakeLists.txt +2 -0
- data/vendor/libgit2/deps/regex/COPYING +502 -0
- data/vendor/libgit2/deps/regex/config.h +7 -0
- data/vendor/libgit2/deps/regex/regcomp.c +3857 -0
- data/vendor/libgit2/deps/regex/regex.c +92 -0
- data/vendor/libgit2/deps/regex/regex.h +582 -0
- data/vendor/libgit2/deps/regex/regex_internal.c +1744 -0
- data/vendor/libgit2/deps/regex/regex_internal.h +819 -0
- data/vendor/libgit2/deps/regex/regexec.c +4369 -0
- data/vendor/libgit2/deps/zlib/adler32.c +7 -0
- data/vendor/libgit2/deps/zlib/crc32.c +7 -0
- data/vendor/libgit2/include/git2.h +0 -2
- data/vendor/libgit2/include/git2/apply.h +2 -22
- data/vendor/libgit2/include/git2/attr.h +12 -19
- data/vendor/libgit2/include/git2/blame.h +2 -2
- data/vendor/libgit2/include/git2/blob.h +12 -44
- data/vendor/libgit2/include/git2/buffer.h +14 -20
- data/vendor/libgit2/include/git2/checkout.h +14 -46
- data/vendor/libgit2/include/git2/cherrypick.h +3 -3
- data/vendor/libgit2/include/git2/clone.h +2 -2
- data/vendor/libgit2/include/git2/commit.h +1 -23
- data/vendor/libgit2/include/git2/common.h +5 -7
- data/vendor/libgit2/include/git2/config.h +12 -12
- data/vendor/libgit2/include/git2/deprecated.h +3 -243
- data/vendor/libgit2/include/git2/describe.h +4 -4
- data/vendor/libgit2/include/git2/diff.h +14 -16
- data/vendor/libgit2/include/git2/filter.h +0 -8
- data/vendor/libgit2/include/git2/index.h +1 -2
- data/vendor/libgit2/include/git2/indexer.h +4 -48
- data/vendor/libgit2/include/git2/inttypes.h +309 -0
- data/vendor/libgit2/include/git2/merge.h +10 -6
- data/vendor/libgit2/include/git2/net.h +5 -0
- data/vendor/libgit2/include/git2/object.h +14 -2
- data/vendor/libgit2/include/git2/odb.h +2 -3
- data/vendor/libgit2/include/git2/odb_backend.h +4 -5
- data/vendor/libgit2/include/git2/oid.h +1 -1
- data/vendor/libgit2/include/git2/pack.h +1 -12
- data/vendor/libgit2/include/git2/proxy.h +3 -5
- data/vendor/libgit2/include/git2/rebase.h +2 -46
- data/vendor/libgit2/include/git2/refs.h +0 -19
- data/vendor/libgit2/include/git2/remote.h +12 -35
- data/vendor/libgit2/include/git2/repository.h +2 -24
- data/vendor/libgit2/include/git2/revert.h +1 -1
- data/vendor/libgit2/include/git2/stash.h +3 -3
- data/vendor/libgit2/include/git2/status.h +16 -25
- data/vendor/libgit2/include/git2/submodule.h +3 -20
- data/vendor/libgit2/include/git2/sys/alloc.h +9 -9
- data/vendor/libgit2/include/git2/sys/odb_backend.h +4 -48
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +21 -57
- data/vendor/libgit2/include/git2/sys/repository.h +1 -5
- data/vendor/libgit2/include/git2/sys/time.h +31 -0
- data/vendor/libgit2/include/git2/sys/transport.h +2 -2
- data/vendor/libgit2/include/git2/tag.h +2 -11
- data/vendor/libgit2/include/git2/trace.h +2 -2
- data/vendor/libgit2/include/git2/transport.h +340 -11
- data/vendor/libgit2/include/git2/tree.h +1 -1
- data/vendor/libgit2/include/git2/types.h +89 -4
- data/vendor/libgit2/include/git2/version.h +2 -2
- data/vendor/libgit2/include/git2/worktree.h +5 -5
- data/vendor/libgit2/libgit2.pc.in +13 -0
- data/vendor/libgit2/src/CMakeLists.txt +222 -88
- data/vendor/libgit2/src/alloc.c +14 -2
- data/vendor/libgit2/src/apply.c +30 -60
- data/vendor/libgit2/src/attr.c +64 -70
- data/vendor/libgit2/src/attr_file.c +96 -189
- data/vendor/libgit2/src/attr_file.h +9 -9
- data/vendor/libgit2/src/attrcache.c +46 -44
- data/vendor/libgit2/src/attrcache.h +1 -2
- data/vendor/libgit2/src/blame.c +5 -17
- data/vendor/libgit2/src/blame.h +1 -1
- data/vendor/libgit2/src/blame_git.c +7 -21
- data/vendor/libgit2/src/blob.c +17 -81
- data/vendor/libgit2/src/blob.h +2 -2
- data/vendor/libgit2/src/branch.c +5 -29
- data/vendor/libgit2/src/buffer.c +7 -14
- data/vendor/libgit2/src/cache.c +33 -26
- data/vendor/libgit2/src/cache.h +1 -1
- data/vendor/libgit2/src/cc-compat.h +0 -5
- data/vendor/libgit2/src/checkout.c +16 -26
- data/vendor/libgit2/src/cherrypick.c +3 -9
- data/vendor/libgit2/src/clone.c +7 -29
- data/vendor/libgit2/src/clone.h +0 -4
- data/vendor/libgit2/src/commit.c +21 -69
- data/vendor/libgit2/src/commit.h +0 -6
- data/vendor/libgit2/src/commit_list.c +76 -28
- data/vendor/libgit2/src/commit_list.h +2 -2
- data/vendor/libgit2/src/common.h +75 -3
- data/vendor/libgit2/src/config.c +40 -31
- data/vendor/libgit2/src/config.h +6 -7
- data/vendor/libgit2/src/config_backend.h +0 -12
- data/vendor/libgit2/src/config_cache.c +39 -39
- data/vendor/libgit2/src/config_entries.c +99 -69
- data/vendor/libgit2/src/config_entries.h +0 -1
- data/vendor/libgit2/src/config_file.c +380 -337
- data/vendor/libgit2/src/config_mem.c +16 -12
- data/vendor/libgit2/src/config_parse.c +29 -49
- data/vendor/libgit2/src/config_parse.h +12 -13
- data/vendor/libgit2/src/crlf.c +14 -14
- data/vendor/libgit2/src/describe.c +20 -21
- data/vendor/libgit2/src/diff.c +58 -43
- data/vendor/libgit2/src/diff.h +1 -2
- data/vendor/libgit2/src/diff_driver.c +38 -37
- data/vendor/libgit2/src/diff_file.c +7 -9
- data/vendor/libgit2/src/diff_file.h +1 -1
- data/vendor/libgit2/src/diff_generate.c +85 -135
- data/vendor/libgit2/src/diff_generate.h +2 -2
- data/vendor/libgit2/src/diff_parse.c +1 -1
- data/vendor/libgit2/src/diff_print.c +13 -25
- data/vendor/libgit2/src/diff_stats.c +1 -1
- data/vendor/libgit2/src/diff_tform.c +4 -4
- data/vendor/libgit2/src/errors.c +22 -12
- data/vendor/libgit2/src/features.h.in +2 -9
- data/vendor/libgit2/src/fetch.c +2 -7
- data/vendor/libgit2/src/fetchhead.c +1 -1
- data/vendor/libgit2/src/filebuf.c +10 -6
- data/vendor/libgit2/src/filebuf.h +2 -2
- data/vendor/libgit2/src/{futils.c → fileops.c} +17 -21
- data/vendor/libgit2/src/{futils.h → fileops.h} +5 -5
- data/vendor/libgit2/src/filter.c +8 -16
- data/vendor/libgit2/src/fnmatch.c +248 -0
- data/vendor/libgit2/src/fnmatch.h +48 -0
- data/vendor/libgit2/src/global.c +40 -12
- data/vendor/libgit2/src/global.h +2 -0
- data/vendor/libgit2/src/hash.c +0 -61
- data/vendor/libgit2/src/hash.h +21 -19
- data/vendor/libgit2/src/hash/{sha1/collisiondetect.c → hash_collisiondetect.h} +17 -14
- data/vendor/libgit2/src/hash/{sha1/common_crypto.c → hash_common_crypto.h} +19 -15
- data/vendor/libgit2/src/hash/{sha1/generic.c → hash_generic.c} +10 -22
- data/vendor/libgit2/src/hash/{sha1/generic.h → hash_generic.h} +14 -4
- data/vendor/libgit2/src/hash/{sha1/mbedtls.c → hash_mbedtls.c} +7 -15
- data/vendor/libgit2/src/hash/{sha1/mbedtls.h → hash_mbedtls.h} +11 -6
- data/vendor/libgit2/src/hash/{sha1/openssl.c → hash_openssl.h} +18 -14
- data/vendor/libgit2/src/hash/{sha1/win32.c → hash_win32.c} +24 -34
- data/vendor/libgit2/src/hash/{sha1/win32.h → hash_win32.h} +19 -6
- data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/sha1.c +3 -14
- data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/sha1.h +0 -0
- data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/ubc_check.c +0 -0
- data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/ubc_check.h +0 -0
- data/vendor/libgit2/src/hashsig.c +1 -1
- data/vendor/libgit2/src/idxmap.c +65 -91
- data/vendor/libgit2/src/idxmap.h +15 -151
- data/vendor/libgit2/src/ignore.c +38 -32
- data/vendor/libgit2/src/index.c +43 -66
- data/vendor/libgit2/src/index.h +1 -1
- data/vendor/libgit2/src/indexer.c +70 -69
- data/vendor/libgit2/src/integer.h +4 -39
- data/vendor/libgit2/src/iterator.c +22 -27
- data/vendor/libgit2/src/map.h +1 -1
- data/vendor/libgit2/src/merge.c +44 -58
- data/vendor/libgit2/src/merge_driver.c +4 -4
- data/vendor/libgit2/src/merge_file.c +1 -1
- data/vendor/libgit2/src/mwindow.c +23 -18
- data/vendor/libgit2/src/mwindow.h +4 -4
- data/vendor/libgit2/src/netops.c +165 -55
- data/vendor/libgit2/src/netops.h +25 -3
- data/vendor/libgit2/src/notes.c +2 -2
- data/vendor/libgit2/src/object.c +2 -2
- data/vendor/libgit2/src/object.h +0 -2
- data/vendor/libgit2/src/odb.c +23 -41
- data/vendor/libgit2/src/odb.h +2 -3
- data/vendor/libgit2/src/odb_loose.c +10 -17
- data/vendor/libgit2/src/odb_mempack.c +23 -10
- data/vendor/libgit2/src/odb_pack.c +4 -4
- data/vendor/libgit2/src/offmap.c +55 -43
- data/vendor/libgit2/src/offmap.h +24 -102
- data/vendor/libgit2/src/oid.c +1 -6
- data/vendor/libgit2/src/oidmap.c +57 -39
- data/vendor/libgit2/src/oidmap.h +19 -99
- data/vendor/libgit2/src/pack-objects.c +32 -25
- data/vendor/libgit2/src/pack-objects.h +1 -1
- data/vendor/libgit2/src/pack.c +47 -45
- data/vendor/libgit2/src/pack.h +14 -12
- data/vendor/libgit2/src/parse.c +0 -10
- data/vendor/libgit2/src/parse.h +3 -3
- data/vendor/libgit2/src/patch.c +1 -1
- data/vendor/libgit2/src/patch_generate.c +2 -2
- data/vendor/libgit2/src/patch_parse.c +31 -124
- data/vendor/libgit2/src/path.c +6 -43
- data/vendor/libgit2/src/path.h +0 -2
- data/vendor/libgit2/src/pathspec.c +13 -13
- data/vendor/libgit2/src/pool.c +22 -26
- data/vendor/libgit2/src/pool.h +7 -7
- data/vendor/libgit2/src/posix.c +7 -7
- data/vendor/libgit2/src/posix.h +1 -12
- data/vendor/libgit2/src/proxy.c +2 -7
- data/vendor/libgit2/src/push.c +5 -10
- data/vendor/libgit2/src/reader.c +2 -2
- data/vendor/libgit2/src/rebase.c +7 -66
- data/vendor/libgit2/src/refdb.c +0 -12
- data/vendor/libgit2/src/refdb_fs.c +165 -214
- data/vendor/libgit2/src/reflog.c +13 -11
- data/vendor/libgit2/src/refs.c +18 -24
- data/vendor/libgit2/src/refspec.c +16 -9
- data/vendor/libgit2/src/remote.c +52 -50
- data/vendor/libgit2/src/remote.h +2 -2
- data/vendor/libgit2/src/repository.c +100 -115
- data/vendor/libgit2/src/repository.h +40 -49
- data/vendor/libgit2/src/revert.c +3 -8
- data/vendor/libgit2/src/revparse.c +19 -18
- data/vendor/libgit2/src/revwalk.c +30 -63
- data/vendor/libgit2/src/revwalk.h +0 -20
- data/vendor/libgit2/src/settings.c +0 -5
- data/vendor/libgit2/src/sortedcache.c +26 -12
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +65 -45
- data/vendor/libgit2/src/status.c +9 -15
- data/vendor/libgit2/src/{allocators/stdalloc.c → stdalloc.c} +4 -3
- data/vendor/libgit2/src/{allocators/stdalloc.h → stdalloc.h} +4 -4
- data/vendor/libgit2/src/streams/openssl.c +0 -20
- data/vendor/libgit2/src/streams/socket.c +2 -2
- data/vendor/libgit2/src/strmap.c +84 -37
- data/vendor/libgit2/src/strmap.h +33 -105
- data/vendor/libgit2/src/submodule.c +70 -102
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +1 -11
- data/vendor/libgit2/src/tag.c +2 -10
- data/vendor/libgit2/src/trace.c +1 -1
- data/vendor/libgit2/src/trace.h +2 -2
- data/vendor/libgit2/src/trailer.c +32 -46
- data/vendor/libgit2/src/transaction.c +9 -10
- data/vendor/libgit2/src/transports/auth.c +9 -10
- data/vendor/libgit2/src/transports/auth.h +4 -11
- data/vendor/libgit2/src/transports/auth_negotiate.c +9 -23
- data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
- data/vendor/libgit2/src/transports/cred.c +6 -6
- data/vendor/libgit2/src/{allocators/win32_crtdbg.h → transports/cred.h} +4 -5
- data/vendor/libgit2/src/transports/git.c +16 -11
- data/vendor/libgit2/src/transports/http.c +276 -419
- data/vendor/libgit2/src/transports/http.h +1 -1
- data/vendor/libgit2/src/transports/local.c +9 -9
- data/vendor/libgit2/src/transports/smart.c +17 -17
- data/vendor/libgit2/src/transports/smart.h +2 -2
- data/vendor/libgit2/src/transports/smart_protocol.c +60 -36
- data/vendor/libgit2/src/transports/ssh.c +36 -46
- data/vendor/libgit2/src/transports/winhttp.c +207 -231
- data/vendor/libgit2/src/tree-cache.c +7 -14
- data/vendor/libgit2/src/tree.c +24 -10
- data/vendor/libgit2/src/unix/map.c +1 -1
- data/vendor/libgit2/src/unix/posix.h +11 -1
- data/vendor/libgit2/src/userdiff.h +1 -3
- data/vendor/libgit2/src/util.c +53 -51
- data/vendor/libgit2/src/util.h +21 -16
- data/vendor/libgit2/src/win32/map.c +5 -3
- data/vendor/libgit2/src/win32/path_w32.c +2 -12
- data/vendor/libgit2/src/win32/path_w32.h +29 -0
- data/vendor/libgit2/src/win32/posix.h +4 -1
- data/vendor/libgit2/src/win32/posix_w32.c +5 -40
- data/vendor/libgit2/src/win32/precompiled.h +2 -0
- data/vendor/libgit2/src/win32/thread.c +10 -5
- data/vendor/libgit2/src/win32/w32_buffer.c +3 -7
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +93 -0
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +2 -0
- data/vendor/libgit2/src/win32/w32_stack.c +9 -4
- data/vendor/libgit2/src/win32/w32_stack.h +3 -3
- data/vendor/libgit2/src/win32/w32_util.c +0 -31
- data/vendor/libgit2/src/win32/w32_util.h +32 -6
- data/vendor/libgit2/src/worktree.c +22 -36
- data/vendor/libgit2/src/xdiff/xdiffi.c +1 -1
- data/vendor/libgit2/src/xdiff/xmerge.c +0 -12
- data/vendor/libgit2/src/xdiff/xpatience.c +0 -3
- metadata +34 -98
- data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +0 -28
- data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +0 -38
- data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +0 -37
- data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +0 -110
- data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +0 -53
- data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +0 -124
- data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +0 -66
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +0 -21
- data/vendor/libgit2/deps/ntlmclient/compat.h +0 -33
- data/vendor/libgit2/deps/ntlmclient/crypt.h +0 -64
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +0 -120
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +0 -18
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -145
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +0 -18
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +0 -130
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +0 -21
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +0 -1420
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +0 -174
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +0 -320
- data/vendor/libgit2/deps/ntlmclient/unicode.h +0 -36
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +0 -445
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +0 -201
- data/vendor/libgit2/deps/ntlmclient/utf8.h +0 -1257
- data/vendor/libgit2/deps/ntlmclient/util.c +0 -21
- data/vendor/libgit2/deps/ntlmclient/util.h +0 -14
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +0 -140
- data/vendor/libgit2/deps/pcre/COPYING +0 -5
- data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +0 -22
- data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +0 -17
- data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +0 -58
- data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +0 -29
- data/vendor/libgit2/deps/pcre/config.h.in +0 -57
- data/vendor/libgit2/deps/pcre/pcre.h +0 -641
- data/vendor/libgit2/deps/pcre/pcre_byte_order.c +0 -319
- data/vendor/libgit2/deps/pcre/pcre_chartables.c +0 -198
- data/vendor/libgit2/deps/pcre/pcre_compile.c +0 -9800
- data/vendor/libgit2/deps/pcre/pcre_config.c +0 -190
- data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +0 -3676
- data/vendor/libgit2/deps/pcre/pcre_exec.c +0 -7173
- data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +0 -245
- data/vendor/libgit2/deps/pcre/pcre_get.c +0 -669
- data/vendor/libgit2/deps/pcre/pcre_globals.c +0 -86
- data/vendor/libgit2/deps/pcre/pcre_internal.h +0 -2787
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +0 -11913
- data/vendor/libgit2/deps/pcre/pcre_maketables.c +0 -156
- data/vendor/libgit2/deps/pcre/pcre_newline.c +0 -210
- data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +0 -94
- data/vendor/libgit2/deps/pcre/pcre_printint.c +0 -834
- data/vendor/libgit2/deps/pcre/pcre_refcount.c +0 -92
- data/vendor/libgit2/deps/pcre/pcre_string_utils.c +0 -211
- data/vendor/libgit2/deps/pcre/pcre_study.c +0 -1686
- data/vendor/libgit2/deps/pcre/pcre_tables.c +0 -727
- data/vendor/libgit2/deps/pcre/pcre_ucd.c +0 -3644
- data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +0 -301
- data/vendor/libgit2/deps/pcre/pcre_version.c +0 -98
- data/vendor/libgit2/deps/pcre/pcre_xclass.c +0 -268
- data/vendor/libgit2/deps/pcre/pcreposix.c +0 -421
- data/vendor/libgit2/deps/pcre/pcreposix.h +0 -117
- data/vendor/libgit2/deps/pcre/ucp.h +0 -224
- data/vendor/libgit2/include/git2/cert.h +0 -135
- data/vendor/libgit2/include/git2/cred.h +0 -308
- data/vendor/libgit2/include/git2/sys/cred.h +0 -90
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
- data/vendor/libgit2/src/config_snapshot.c +0 -206
- data/vendor/libgit2/src/errors.h +0 -81
- data/vendor/libgit2/src/hash/sha1.h +0 -38
- data/vendor/libgit2/src/hash/sha1/collisiondetect.h +0 -19
- data/vendor/libgit2/src/hash/sha1/common_crypto.h +0 -19
- data/vendor/libgit2/src/hash/sha1/openssl.h +0 -19
- data/vendor/libgit2/src/net.c +0 -184
- data/vendor/libgit2/src/net.h +0 -36
- data/vendor/libgit2/src/regexp.c +0 -221
- data/vendor/libgit2/src/regexp.h +0 -97
- data/vendor/libgit2/src/transports/auth_ntlm.c +0 -223
- data/vendor/libgit2/src/transports/auth_ntlm.h +0 -35
- data/vendor/libgit2/src/wildmatch.c +0 -320
- data/vendor/libgit2/src/wildmatch.h +0 -23
- data/vendor/libgit2/src/win32/w32_common.h +0 -39
|
@@ -88,10 +88,11 @@ static void *stdalloc__reallocarray(void *ptr, size_t nelem, size_t elsize, cons
|
|
|
88
88
|
{
|
|
89
89
|
size_t newsize;
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
GIT_UNUSED(file);
|
|
92
|
+
GIT_UNUSED(line);
|
|
93
93
|
|
|
94
|
-
return
|
|
94
|
+
return GIT_MULTIPLY_SIZET_OVERFLOW(&newsize, nelem, elsize) ?
|
|
95
|
+
NULL : realloc(ptr, newsize);
|
|
95
96
|
}
|
|
96
97
|
|
|
97
98
|
static void *stdalloc__mallocarray(size_t nelem, size_t elsize, const char *file, int line)
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
#ifndef
|
|
9
|
-
#define
|
|
10
|
-
|
|
11
|
-
#include "common.h"
|
|
8
|
+
#ifndef INCLUDE_stdalloc_h__
|
|
9
|
+
#define INCLUDE_stdalloc_h__
|
|
12
10
|
|
|
13
11
|
#include "alloc.h"
|
|
14
12
|
|
|
13
|
+
#include "common.h"
|
|
14
|
+
|
|
15
15
|
int git_stdalloc_init_allocator(git_allocator *allocator);
|
|
16
16
|
|
|
17
17
|
#endif
|
|
@@ -30,10 +30,6 @@
|
|
|
30
30
|
#include <openssl/x509v3.h>
|
|
31
31
|
#include <openssl/bio.h>
|
|
32
32
|
|
|
33
|
-
#ifdef VALGRIND
|
|
34
|
-
# include <valgrind/memcheck.h>
|
|
35
|
-
#endif
|
|
36
|
-
|
|
37
33
|
SSL_CTX *git__ssl_ctx;
|
|
38
34
|
|
|
39
35
|
#define GIT_SSL_DEFAULT_CIPHERS "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-DSS-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA256:DHE-DSS-AES128-SHA:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA"
|
|
@@ -315,10 +311,6 @@ static int bio_write(BIO *b, const char *buf, int len)
|
|
|
315
311
|
{
|
|
316
312
|
git_stream *io = (git_stream *) BIO_get_data(b);
|
|
317
313
|
|
|
318
|
-
#ifdef VALGRIND
|
|
319
|
-
VALGRIND_MAKE_MEM_DEFINED(buf, len);
|
|
320
|
-
#endif
|
|
321
|
-
|
|
322
314
|
return (int) git_stream_write(io, buf, len, 0);
|
|
323
315
|
}
|
|
324
316
|
|
|
@@ -595,10 +587,6 @@ static int openssl_connect(git_stream *stream)
|
|
|
595
587
|
BIO_set_data(bio, st->io);
|
|
596
588
|
SSL_set_bio(st->ssl, bio, bio);
|
|
597
589
|
|
|
598
|
-
#ifdef VALGRIND
|
|
599
|
-
VALGRIND_MAKE_MEM_DEFINED(st->ssl, sizeof(SSL));
|
|
600
|
-
#endif
|
|
601
|
-
|
|
602
590
|
/* specify the host in case SNI is needed */
|
|
603
591
|
#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
|
|
604
592
|
SSL_set_tlsext_host_name(st->ssl, st->host);
|
|
@@ -609,10 +597,6 @@ static int openssl_connect(git_stream *stream)
|
|
|
609
597
|
|
|
610
598
|
st->connected = true;
|
|
611
599
|
|
|
612
|
-
#ifdef VALGRIND
|
|
613
|
-
VALGRIND_MAKE_MEM_DEFINED(st->ssl, sizeof(SSL));
|
|
614
|
-
#endif
|
|
615
|
-
|
|
616
600
|
return verify_server_cert(st->ssl, st->host);
|
|
617
601
|
}
|
|
618
602
|
|
|
@@ -679,10 +663,6 @@ static ssize_t openssl_read(git_stream *stream, void *data, size_t len)
|
|
|
679
663
|
if ((ret = SSL_read(st->ssl, data, len)) <= 0)
|
|
680
664
|
return ssl_set_error(st->ssl, ret);
|
|
681
665
|
|
|
682
|
-
#ifdef VALGRIND
|
|
683
|
-
VALGRIND_MAKE_MEM_DEFINED(data, ret);
|
|
684
|
-
#endif
|
|
685
|
-
|
|
686
666
|
return ret;
|
|
687
667
|
}
|
|
688
668
|
|
|
@@ -138,7 +138,7 @@ static ssize_t socket_write(git_stream *stream, const char *data, size_t len, in
|
|
|
138
138
|
errno = 0;
|
|
139
139
|
|
|
140
140
|
if ((written = p_send(st->s, data, len, flags)) < 0) {
|
|
141
|
-
net_set_error("
|
|
141
|
+
net_set_error("Error sending data");
|
|
142
142
|
return -1;
|
|
143
143
|
}
|
|
144
144
|
|
|
@@ -151,7 +151,7 @@ static ssize_t socket_read(git_stream *stream, void *data, size_t len)
|
|
|
151
151
|
git_socket_stream *st = (git_socket_stream *) stream;
|
|
152
152
|
|
|
153
153
|
if ((ret = p_recv(st->s, data, len, 0)) < 0)
|
|
154
|
-
net_set_error("
|
|
154
|
+
net_set_error("Error receiving socket data");
|
|
155
155
|
|
|
156
156
|
return ret;
|
|
157
157
|
}
|
data/vendor/libgit2/src/strmap.c
CHANGED
|
@@ -18,10 +18,12 @@ __KHASH_TYPE(str, const char *, void *)
|
|
|
18
18
|
|
|
19
19
|
__KHASH_IMPL(str, static kh_inline, const char *, void *, 1, kh_str_hash_func, kh_str_hash_equal)
|
|
20
20
|
|
|
21
|
-
int
|
|
21
|
+
int git_strmap_alloc(git_strmap **map)
|
|
22
22
|
{
|
|
23
|
-
*
|
|
24
|
-
|
|
23
|
+
if ((*map = kh_init(str)) == NULL) {
|
|
24
|
+
git_error_set_oom();
|
|
25
|
+
return -1;
|
|
26
|
+
}
|
|
25
27
|
|
|
26
28
|
return 0;
|
|
27
29
|
}
|
|
@@ -36,65 +38,110 @@ void git_strmap_clear(git_strmap *map)
|
|
|
36
38
|
kh_clear(str, map);
|
|
37
39
|
}
|
|
38
40
|
|
|
39
|
-
size_t
|
|
41
|
+
size_t git_strmap_num_entries(git_strmap *map)
|
|
40
42
|
{
|
|
41
43
|
return kh_size(map);
|
|
42
44
|
}
|
|
43
45
|
|
|
44
|
-
|
|
46
|
+
size_t git_strmap_lookup_index(git_strmap *map, const char *key)
|
|
45
47
|
{
|
|
46
|
-
|
|
47
|
-
if (idx == kh_end(map) || !kh_exist(map, idx))
|
|
48
|
-
return NULL;
|
|
49
|
-
return kh_val(map, idx);
|
|
48
|
+
return kh_get(str, map, key);
|
|
50
49
|
}
|
|
51
50
|
|
|
52
|
-
int
|
|
51
|
+
int git_strmap_valid_index(git_strmap *map, size_t idx)
|
|
53
52
|
{
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
return idx != kh_end(map);
|
|
54
|
+
}
|
|
56
55
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
int git_strmap_exists(git_strmap *map, const char *key)
|
|
57
|
+
{
|
|
58
|
+
return kh_get(str, map, key) != kh_end(map);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
int git_strmap_has_data(git_strmap *map, size_t idx)
|
|
62
|
+
{
|
|
63
|
+
return kh_exist(map, idx);
|
|
64
|
+
}
|
|
60
65
|
|
|
61
|
-
|
|
62
|
-
|
|
66
|
+
const char *git_strmap_key(git_strmap *map, size_t idx)
|
|
67
|
+
{
|
|
68
|
+
return kh_key(map, idx);
|
|
69
|
+
}
|
|
63
70
|
|
|
64
|
-
|
|
71
|
+
void git_strmap_set_key_at(git_strmap *map, size_t idx, char *key)
|
|
72
|
+
{
|
|
73
|
+
kh_val(map, idx) = key;
|
|
74
|
+
}
|
|
65
75
|
|
|
66
|
-
|
|
76
|
+
void *git_strmap_value_at(git_strmap *map, size_t idx)
|
|
77
|
+
{
|
|
78
|
+
return kh_val(map, idx);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
void git_strmap_set_value_at(git_strmap *map, size_t idx, void *value)
|
|
82
|
+
{
|
|
83
|
+
kh_val(map, idx) = value;
|
|
67
84
|
}
|
|
68
85
|
|
|
69
|
-
|
|
86
|
+
void git_strmap_delete_at(git_strmap *map, size_t idx)
|
|
70
87
|
{
|
|
71
|
-
khiter_t idx = kh_get(str, map, key);
|
|
72
|
-
if (idx == kh_end(map))
|
|
73
|
-
return GIT_ENOTFOUND;
|
|
74
88
|
kh_del(str, map, idx);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
int git_strmap_put(git_strmap *map, const char *key, int *err)
|
|
92
|
+
{
|
|
93
|
+
return kh_put(str, map, key, err);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
void git_strmap_insert(git_strmap *map, const char *key, void *value, int *rval)
|
|
97
|
+
{
|
|
98
|
+
khiter_t idx = kh_put(str, map, key, rval);
|
|
99
|
+
|
|
100
|
+
if ((*rval) >= 0) {
|
|
101
|
+
if ((*rval) == 0)
|
|
102
|
+
kh_key(map, idx) = key;
|
|
103
|
+
kh_val(map, idx) = value;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
void git_strmap_delete(git_strmap *map, const char *key)
|
|
108
|
+
{
|
|
109
|
+
khiter_t idx = git_strmap_lookup_index(map, key);
|
|
110
|
+
if (git_strmap_valid_index(map, idx))
|
|
111
|
+
git_strmap_delete_at(map, idx);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
size_t git_strmap_begin(git_strmap *map)
|
|
115
|
+
{
|
|
116
|
+
GIT_UNUSED(map);
|
|
75
117
|
return 0;
|
|
76
118
|
}
|
|
77
119
|
|
|
78
|
-
|
|
120
|
+
size_t git_strmap_end(git_strmap *map)
|
|
79
121
|
{
|
|
80
|
-
return
|
|
122
|
+
return map->n_buckets;
|
|
81
123
|
}
|
|
82
124
|
|
|
83
|
-
int
|
|
125
|
+
int git_strmap_next(
|
|
126
|
+
void **data,
|
|
127
|
+
size_t* iter,
|
|
128
|
+
git_strmap *map)
|
|
84
129
|
{
|
|
85
|
-
|
|
130
|
+
if (!map)
|
|
131
|
+
return GIT_ERROR;
|
|
86
132
|
|
|
87
|
-
while (
|
|
88
|
-
|
|
133
|
+
while (*iter != git_strmap_end(map)) {
|
|
134
|
+
if (!(git_strmap_has_data(map, *iter))) {
|
|
135
|
+
++(*iter);
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
89
138
|
|
|
90
|
-
|
|
91
|
-
return GIT_ITEROVER;
|
|
139
|
+
*data = git_strmap_value_at(map, *iter);
|
|
92
140
|
|
|
93
|
-
|
|
94
|
-
*key = kh_key(map, i);
|
|
95
|
-
if (value)
|
|
96
|
-
*value = kh_val(map, i);
|
|
97
|
-
*iter = ++i;
|
|
141
|
+
++(*iter);
|
|
98
142
|
|
|
99
|
-
|
|
143
|
+
return GIT_OK;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return GIT_ITEROVER;
|
|
100
147
|
}
|
data/vendor/libgit2/src/strmap.h
CHANGED
|
@@ -9,123 +9,51 @@
|
|
|
9
9
|
|
|
10
10
|
#include "common.h"
|
|
11
11
|
|
|
12
|
-
/** A map with C strings as key. */
|
|
13
12
|
typedef struct kh_str_s git_strmap;
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
* Allocate a new string map.
|
|
17
|
-
*
|
|
18
|
-
* @param out Pointer to the map that shall be allocated.
|
|
19
|
-
* @return 0 on success, an error code if allocation has failed.
|
|
20
|
-
*/
|
|
21
|
-
int git_strmap_new(git_strmap **out);
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Free memory associated with the map.
|
|
25
|
-
*
|
|
26
|
-
* Note that this function will _not_ free keys or values added
|
|
27
|
-
* to this map.
|
|
28
|
-
*
|
|
29
|
-
* @param map Pointer to the map that is to be free'd. May be
|
|
30
|
-
* `NULL`.
|
|
31
|
-
*/
|
|
14
|
+
int git_strmap_alloc(git_strmap **map);
|
|
32
15
|
void git_strmap_free(git_strmap *map);
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Clear all entries from the map.
|
|
36
|
-
*
|
|
37
|
-
* This function will remove all entries from the associated map.
|
|
38
|
-
* Memory associated with it will not be released, though.
|
|
39
|
-
*
|
|
40
|
-
* @param map Pointer to the map that shall be cleared. May be
|
|
41
|
-
* `NULL`.
|
|
42
|
-
*/
|
|
43
16
|
void git_strmap_clear(git_strmap *map);
|
|
44
17
|
|
|
45
|
-
|
|
46
|
-
* Return the number of elements in the map.
|
|
47
|
-
*
|
|
48
|
-
* @parameter map map containing the elements
|
|
49
|
-
* @return number of elements in the map
|
|
50
|
-
*/
|
|
51
|
-
size_t git_strmap_size(git_strmap *map);
|
|
18
|
+
size_t git_strmap_num_entries(git_strmap *map);
|
|
52
19
|
|
|
53
|
-
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* @param map map to search key in
|
|
57
|
-
* @param key key to search for
|
|
58
|
-
* @return value associated with the given key or NULL if the key was not found
|
|
59
|
-
*/
|
|
60
|
-
void *git_strmap_get(git_strmap *map, const char *key);
|
|
20
|
+
size_t git_strmap_lookup_index(git_strmap *map, const char *key);
|
|
21
|
+
int git_strmap_valid_index(git_strmap *map, size_t idx);
|
|
61
22
|
|
|
62
|
-
/**
|
|
63
|
-
* Set the entry for key to value.
|
|
64
|
-
*
|
|
65
|
-
* If the map has no corresponding entry for the given key, a new
|
|
66
|
-
* entry will be created with the given value. If an entry exists
|
|
67
|
-
* already, its value will be updated to match the given value.
|
|
68
|
-
*
|
|
69
|
-
* @param map map to create new entry in
|
|
70
|
-
* @param key key to set
|
|
71
|
-
* @param value value to associate the key with; may be NULL
|
|
72
|
-
* @return zero if the key was successfully set, a negative error
|
|
73
|
-
* code otherwise
|
|
74
|
-
*/
|
|
75
|
-
int git_strmap_set(git_strmap *map, const char *key, void *value);
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Delete an entry from the map.
|
|
79
|
-
*
|
|
80
|
-
* Delete the given key and its value from the map. If no such
|
|
81
|
-
* key exists, this will do nothing.
|
|
82
|
-
*
|
|
83
|
-
* @param map map to delete key in
|
|
84
|
-
* @param key key to delete
|
|
85
|
-
* @return `0` if the key has been deleted, GIT_ENOTFOUND if no
|
|
86
|
-
* such key was found, a negative code in case of an
|
|
87
|
-
* error
|
|
88
|
-
*/
|
|
89
|
-
int git_strmap_delete(git_strmap *map, const char *key);
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Check whether a key exists in the given map.
|
|
93
|
-
*
|
|
94
|
-
* @param map map to query for the key
|
|
95
|
-
* @param key key to search for
|
|
96
|
-
* @return 0 if the key has not been found, 1 otherwise
|
|
97
|
-
*/
|
|
98
23
|
int git_strmap_exists(git_strmap *map, const char *key);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
* GIT_ITEROVER if no entries are left. A negative error
|
|
117
|
-
* code otherwise.
|
|
118
|
-
*/
|
|
119
|
-
int git_strmap_iterate(void **value, git_strmap *map, size_t *iter, const char **key);
|
|
120
|
-
|
|
121
|
-
#define git_strmap_foreach(h, kvar, vvar, code) { size_t __i = 0; \
|
|
122
|
-
while (git_strmap_iterate((void **) &(vvar), h, &__i, &(kvar)) == 0) { \
|
|
24
|
+
int git_strmap_has_data(git_strmap *map, size_t idx);
|
|
25
|
+
|
|
26
|
+
const char *git_strmap_key(git_strmap *map, size_t idx);
|
|
27
|
+
void git_strmap_set_key_at(git_strmap *map, size_t idx, char *key);
|
|
28
|
+
void *git_strmap_value_at(git_strmap *map, size_t idx);
|
|
29
|
+
void git_strmap_set_value_at(git_strmap *map, size_t idx, void *value);
|
|
30
|
+
void git_strmap_delete_at(git_strmap *map, size_t idx);
|
|
31
|
+
|
|
32
|
+
int git_strmap_put(git_strmap *map, const char *key, int *err);
|
|
33
|
+
void git_strmap_insert(git_strmap *map, const char *key, void *value, int *rval);
|
|
34
|
+
void git_strmap_delete(git_strmap *map, const char *key);
|
|
35
|
+
|
|
36
|
+
#define git_strmap_foreach(h, kvar, vvar, code) { size_t __i; \
|
|
37
|
+
for (__i = git_strmap_begin(h); __i != git_strmap_end(h); ++__i) { \
|
|
38
|
+
if (!git_strmap_has_data(h,__i)) continue; \
|
|
39
|
+
(kvar) = git_strmap_key(h,__i); \
|
|
40
|
+
(vvar) = git_strmap_value_at(h,__i); \
|
|
123
41
|
code; \
|
|
124
42
|
} }
|
|
125
43
|
|
|
126
|
-
#define git_strmap_foreach_value(h, vvar, code) { size_t __i
|
|
127
|
-
|
|
44
|
+
#define git_strmap_foreach_value(h, vvar, code) { size_t __i; \
|
|
45
|
+
for (__i = git_strmap_begin(h); __i != git_strmap_end(h); ++__i) { \
|
|
46
|
+
if (!git_strmap_has_data(h,__i)) continue; \
|
|
47
|
+
(vvar) = git_strmap_value_at(h,__i); \
|
|
128
48
|
code; \
|
|
129
49
|
} }
|
|
130
50
|
|
|
51
|
+
size_t git_strmap_begin(git_strmap *map);
|
|
52
|
+
size_t git_strmap_end(git_strmap *map);
|
|
53
|
+
|
|
54
|
+
int git_strmap_next(
|
|
55
|
+
void **data,
|
|
56
|
+
size_t *iter,
|
|
57
|
+
git_strmap *map);
|
|
58
|
+
|
|
131
59
|
#endif
|
|
@@ -23,32 +23,31 @@
|
|
|
23
23
|
#include "path.h"
|
|
24
24
|
#include "index.h"
|
|
25
25
|
#include "worktree.h"
|
|
26
|
-
#include "clone.h"
|
|
27
26
|
|
|
28
27
|
#define GIT_MODULES_FILE ".gitmodules"
|
|
29
28
|
|
|
30
|
-
static
|
|
31
|
-
{
|
|
32
|
-
{
|
|
33
|
-
{
|
|
34
|
-
{
|
|
35
|
-
{
|
|
36
|
-
{
|
|
29
|
+
static git_cvar_map _sm_update_map[] = {
|
|
30
|
+
{GIT_CVAR_STRING, "checkout", GIT_SUBMODULE_UPDATE_CHECKOUT},
|
|
31
|
+
{GIT_CVAR_STRING, "rebase", GIT_SUBMODULE_UPDATE_REBASE},
|
|
32
|
+
{GIT_CVAR_STRING, "merge", GIT_SUBMODULE_UPDATE_MERGE},
|
|
33
|
+
{GIT_CVAR_STRING, "none", GIT_SUBMODULE_UPDATE_NONE},
|
|
34
|
+
{GIT_CVAR_FALSE, NULL, GIT_SUBMODULE_UPDATE_NONE},
|
|
35
|
+
{GIT_CVAR_TRUE, NULL, GIT_SUBMODULE_UPDATE_CHECKOUT},
|
|
37
36
|
};
|
|
38
37
|
|
|
39
|
-
static
|
|
40
|
-
{
|
|
41
|
-
{
|
|
42
|
-
{
|
|
43
|
-
{
|
|
44
|
-
{
|
|
45
|
-
{
|
|
38
|
+
static git_cvar_map _sm_ignore_map[] = {
|
|
39
|
+
{GIT_CVAR_STRING, "none", GIT_SUBMODULE_IGNORE_NONE},
|
|
40
|
+
{GIT_CVAR_STRING, "untracked", GIT_SUBMODULE_IGNORE_UNTRACKED},
|
|
41
|
+
{GIT_CVAR_STRING, "dirty", GIT_SUBMODULE_IGNORE_DIRTY},
|
|
42
|
+
{GIT_CVAR_STRING, "all", GIT_SUBMODULE_IGNORE_ALL},
|
|
43
|
+
{GIT_CVAR_FALSE, NULL, GIT_SUBMODULE_IGNORE_NONE},
|
|
44
|
+
{GIT_CVAR_TRUE, NULL, GIT_SUBMODULE_IGNORE_ALL},
|
|
46
45
|
};
|
|
47
46
|
|
|
48
|
-
static
|
|
49
|
-
{
|
|
50
|
-
{
|
|
51
|
-
{
|
|
47
|
+
static git_cvar_map _sm_recurse_map[] = {
|
|
48
|
+
{GIT_CVAR_STRING, "on-demand", GIT_SUBMODULE_RECURSE_ONDEMAND},
|
|
49
|
+
{GIT_CVAR_FALSE, NULL, GIT_SUBMODULE_RECURSE_NO},
|
|
50
|
+
{GIT_CVAR_TRUE, NULL, GIT_SUBMODULE_RECURSE_YES},
|
|
52
51
|
};
|
|
53
52
|
|
|
54
53
|
enum {
|
|
@@ -198,11 +197,12 @@ static int load_submodule_names(git_strmap **out, git_repository *repo, git_conf
|
|
|
198
197
|
git_config_entry *entry;
|
|
199
198
|
git_buf buf = GIT_BUF_INIT;
|
|
200
199
|
git_strmap *names;
|
|
201
|
-
int
|
|
200
|
+
int rval, isvalid;
|
|
201
|
+
int error = 0;
|
|
202
202
|
|
|
203
203
|
*out = NULL;
|
|
204
204
|
|
|
205
|
-
if ((error =
|
|
205
|
+
if ((error = git_strmap_alloc(&names)) < 0)
|
|
206
206
|
goto out;
|
|
207
207
|
|
|
208
208
|
if ((error = git_config_iterator_glob_new(&iter, cfg, key)) < 0)
|
|
@@ -230,7 +230,8 @@ static int load_submodule_names(git_strmap **out, git_repository *repo, git_conf
|
|
|
230
230
|
if (!isvalid)
|
|
231
231
|
continue;
|
|
232
232
|
|
|
233
|
-
|
|
233
|
+
git_strmap_insert(names, git__strdup(entry->value), git_buf_detach(&buf), &rval);
|
|
234
|
+
if (rval < 0) {
|
|
234
235
|
git_error_set(GIT_ERROR_NOMEMORY, "error inserting submodule into hash table");
|
|
235
236
|
error = -1;
|
|
236
237
|
goto out;
|
|
@@ -266,9 +267,10 @@ int git_submodule_lookup(
|
|
|
266
267
|
}
|
|
267
268
|
|
|
268
269
|
if (repo->submodule_cache != NULL) {
|
|
269
|
-
|
|
270
|
+
size_t pos = git_strmap_lookup_index(repo->submodule_cache, name);
|
|
271
|
+
if (git_strmap_valid_index(repo->submodule_cache, pos)) {
|
|
270
272
|
if (out) {
|
|
271
|
-
*out =
|
|
273
|
+
*out = git_strmap_value_at(repo->submodule_cache, pos);
|
|
272
274
|
GIT_REFCOUNT_INC(*out);
|
|
273
275
|
}
|
|
274
276
|
return 0;
|
|
@@ -393,21 +395,30 @@ static void submodule_free_dup(void *sm)
|
|
|
393
395
|
|
|
394
396
|
static int submodule_get_or_create(git_submodule **out, git_repository *repo, git_strmap *map, const char *name)
|
|
395
397
|
{
|
|
398
|
+
int error = 0;
|
|
399
|
+
size_t pos;
|
|
396
400
|
git_submodule *sm = NULL;
|
|
397
|
-
int error;
|
|
398
401
|
|
|
399
|
-
|
|
402
|
+
pos = git_strmap_lookup_index(map, name);
|
|
403
|
+
if (git_strmap_valid_index(map, pos)) {
|
|
404
|
+
sm = git_strmap_value_at(map, pos);
|
|
400
405
|
goto done;
|
|
406
|
+
}
|
|
401
407
|
|
|
402
408
|
/* if the submodule doesn't exist yet in the map, create it */
|
|
403
409
|
if ((error = submodule_alloc(&sm, repo, name)) < 0)
|
|
404
410
|
return error;
|
|
405
411
|
|
|
406
|
-
|
|
412
|
+
pos = git_strmap_put(map, sm->name, &error);
|
|
413
|
+
/* nobody can beat us to adding it */
|
|
414
|
+
assert(error != 0);
|
|
415
|
+
if (error < 0) {
|
|
407
416
|
git_submodule_free(sm);
|
|
408
417
|
return error;
|
|
409
418
|
}
|
|
410
419
|
|
|
420
|
+
git_strmap_set_value_at(map, pos, sm);
|
|
421
|
+
|
|
411
422
|
done:
|
|
412
423
|
GIT_REFCOUNT_INC(sm);
|
|
413
424
|
*out = sm;
|
|
@@ -428,18 +439,26 @@ static int submodules_from_index(git_strmap *map, git_index *idx, git_config *cf
|
|
|
428
439
|
goto done;
|
|
429
440
|
|
|
430
441
|
while (!(error = git_iterator_advance(&entry, i))) {
|
|
442
|
+
size_t pos = git_strmap_lookup_index(map, entry->path);
|
|
431
443
|
git_submodule *sm;
|
|
432
444
|
|
|
433
|
-
if ((
|
|
445
|
+
if (git_strmap_valid_index(map, pos)) {
|
|
446
|
+
sm = git_strmap_value_at(map, pos);
|
|
447
|
+
|
|
434
448
|
if (S_ISGITLINK(entry->mode))
|
|
435
449
|
submodule_update_from_index_entry(sm, entry);
|
|
436
450
|
else
|
|
437
451
|
sm->flags |= GIT_SUBMODULE_STATUS__INDEX_NOT_SUBMODULE;
|
|
438
452
|
} else if (S_ISGITLINK(entry->mode)) {
|
|
453
|
+
size_t name_pos;
|
|
439
454
|
const char *name;
|
|
440
455
|
|
|
441
|
-
|
|
456
|
+
name_pos = git_strmap_lookup_index(names, entry->path);
|
|
457
|
+
if (git_strmap_valid_index(names, name_pos)) {
|
|
458
|
+
name = git_strmap_value_at(names, name_pos);
|
|
459
|
+
} else {
|
|
442
460
|
name = entry->path;
|
|
461
|
+
}
|
|
443
462
|
|
|
444
463
|
if (!submodule_get_or_create(&sm, git_index_owner(idx), map, name)) {
|
|
445
464
|
submodule_update_from_index_entry(sm, entry);
|
|
@@ -472,18 +491,26 @@ static int submodules_from_head(git_strmap *map, git_tree *head, git_config *cfg
|
|
|
472
491
|
goto done;
|
|
473
492
|
|
|
474
493
|
while (!(error = git_iterator_advance(&entry, i))) {
|
|
494
|
+
size_t pos = git_strmap_lookup_index(map, entry->path);
|
|
475
495
|
git_submodule *sm;
|
|
476
496
|
|
|
477
|
-
if ((
|
|
497
|
+
if (git_strmap_valid_index(map, pos)) {
|
|
498
|
+
sm = git_strmap_value_at(map, pos);
|
|
499
|
+
|
|
478
500
|
if (S_ISGITLINK(entry->mode))
|
|
479
501
|
submodule_update_from_head_data(sm, entry->mode, &entry->id);
|
|
480
502
|
else
|
|
481
503
|
sm->flags |= GIT_SUBMODULE_STATUS__HEAD_NOT_SUBMODULE;
|
|
482
504
|
} else if (S_ISGITLINK(entry->mode)) {
|
|
505
|
+
size_t name_pos;
|
|
483
506
|
const char *name;
|
|
484
507
|
|
|
485
|
-
|
|
508
|
+
name_pos = git_strmap_lookup_index(names, entry->path);
|
|
509
|
+
if (git_strmap_valid_index(names, name_pos)) {
|
|
510
|
+
name = git_strmap_value_at(names, name_pos);
|
|
511
|
+
} else {
|
|
486
512
|
name = entry->path;
|
|
513
|
+
}
|
|
487
514
|
|
|
488
515
|
if (!submodule_get_or_create(&sm, git_tree_owner(head), map, name)) {
|
|
489
516
|
submodule_update_from_head_data(
|
|
@@ -591,14 +618,14 @@ int git_submodule_foreach(
|
|
|
591
618
|
return -1;
|
|
592
619
|
}
|
|
593
620
|
|
|
594
|
-
if ((error =
|
|
621
|
+
if ((error = git_strmap_alloc(&submodules)) < 0)
|
|
595
622
|
return error;
|
|
596
623
|
|
|
597
624
|
if ((error = git_submodule__map(repo, submodules)) < 0)
|
|
598
625
|
goto done;
|
|
599
626
|
|
|
600
627
|
if (!(error = git_vector_init(
|
|
601
|
-
&snapshot,
|
|
628
|
+
&snapshot, git_strmap_num_entries(submodules), submodule_cmp))) {
|
|
602
629
|
|
|
603
630
|
git_strmap_foreach_value(submodules, sm, {
|
|
604
631
|
if ((error = git_vector_insert(&snapshot, sm)) < 0)
|
|
@@ -816,64 +843,6 @@ done:
|
|
|
816
843
|
return error;
|
|
817
844
|
}
|
|
818
845
|
|
|
819
|
-
static int clone_return_origin(git_remote **out, git_repository *repo, const char *name, const char *url, void *payload)
|
|
820
|
-
{
|
|
821
|
-
GIT_UNUSED(url);
|
|
822
|
-
GIT_UNUSED(payload);
|
|
823
|
-
return git_remote_lookup(out, repo, name);
|
|
824
|
-
}
|
|
825
|
-
|
|
826
|
-
static int clone_return_repo(git_repository **out, const char *path, int bare, void *payload)
|
|
827
|
-
{
|
|
828
|
-
git_submodule *sm = payload;
|
|
829
|
-
|
|
830
|
-
GIT_UNUSED(path);
|
|
831
|
-
GIT_UNUSED(bare);
|
|
832
|
-
return git_submodule_open(out, sm);
|
|
833
|
-
}
|
|
834
|
-
|
|
835
|
-
int git_submodule_clone(git_repository **out, git_submodule *submodule, const git_submodule_update_options *given_opts)
|
|
836
|
-
{
|
|
837
|
-
int error;
|
|
838
|
-
git_repository *clone;
|
|
839
|
-
git_buf rel_path = GIT_BUF_INIT;
|
|
840
|
-
git_submodule_update_options sub_opts = GIT_SUBMODULE_UPDATE_OPTIONS_INIT;
|
|
841
|
-
git_clone_options opts = GIT_CLONE_OPTIONS_INIT;
|
|
842
|
-
|
|
843
|
-
assert(submodule);
|
|
844
|
-
|
|
845
|
-
if (given_opts)
|
|
846
|
-
memcpy(&sub_opts, given_opts, sizeof(sub_opts));
|
|
847
|
-
|
|
848
|
-
GIT_ERROR_CHECK_VERSION(&sub_opts, GIT_SUBMODULE_UPDATE_OPTIONS_VERSION, "git_submodule_update_options");
|
|
849
|
-
|
|
850
|
-
memcpy(&opts.checkout_opts, &sub_opts.checkout_opts, sizeof(sub_opts.checkout_opts));
|
|
851
|
-
memcpy(&opts.fetch_opts, &sub_opts.fetch_opts, sizeof(sub_opts.fetch_opts));
|
|
852
|
-
opts.repository_cb = clone_return_repo;
|
|
853
|
-
opts.repository_cb_payload = submodule;
|
|
854
|
-
opts.remote_cb = clone_return_origin;
|
|
855
|
-
opts.remote_cb_payload = submodule;
|
|
856
|
-
|
|
857
|
-
git_buf_puts(&rel_path, git_repository_workdir(git_submodule_owner(submodule)));
|
|
858
|
-
git_buf_joinpath(&rel_path, git_buf_cstr(&rel_path), git_submodule_path(submodule));
|
|
859
|
-
|
|
860
|
-
GIT_ERROR_CHECK_ALLOC_BUF(&rel_path);
|
|
861
|
-
|
|
862
|
-
error = git_clone__submodule(&clone, git_submodule_url(submodule), git_buf_cstr(&rel_path), &opts);
|
|
863
|
-
if (error < 0)
|
|
864
|
-
goto cleanup;
|
|
865
|
-
|
|
866
|
-
if (!out)
|
|
867
|
-
git_repository_free(clone);
|
|
868
|
-
else
|
|
869
|
-
*out = clone;
|
|
870
|
-
|
|
871
|
-
cleanup:
|
|
872
|
-
git_buf_dispose(&rel_path);
|
|
873
|
-
|
|
874
|
-
return error;
|
|
875
|
-
}
|
|
876
|
-
|
|
877
846
|
int git_submodule_add_finalize(git_submodule *sm)
|
|
878
847
|
{
|
|
879
848
|
int error;
|
|
@@ -1048,9 +1017,9 @@ cleanup:
|
|
|
1048
1017
|
return error;
|
|
1049
1018
|
}
|
|
1050
1019
|
|
|
1051
|
-
static int write_mapped_var(git_repository *repo, const char *name,
|
|
1020
|
+
static int write_mapped_var(git_repository *repo, const char *name, git_cvar_map *maps, size_t nmaps, const char *var, int ival)
|
|
1052
1021
|
{
|
|
1053
|
-
|
|
1022
|
+
git_cvar_t type;
|
|
1054
1023
|
const char *val;
|
|
1055
1024
|
|
|
1056
1025
|
if (git_config_lookup_map_enum(&type, &val, maps, nmaps, ival) < 0) {
|
|
@@ -1058,7 +1027,7 @@ static int write_mapped_var(git_repository *repo, const char *name, git_configma
|
|
|
1058
1027
|
return -1;
|
|
1059
1028
|
}
|
|
1060
1029
|
|
|
1061
|
-
if (type ==
|
|
1030
|
+
if (type == GIT_CVAR_TRUE)
|
|
1062
1031
|
val = "true";
|
|
1063
1032
|
|
|
1064
1033
|
return write_var(repo, name, var, val);
|
|
@@ -1233,18 +1202,13 @@ static int git_submodule_update_repo_init_cb(
|
|
|
1233
1202
|
return submodule_repo_create(out, sm->repo, path);
|
|
1234
1203
|
}
|
|
1235
1204
|
|
|
1236
|
-
int
|
|
1205
|
+
int git_submodule_update_init_options(git_submodule_update_options *opts, unsigned int version)
|
|
1237
1206
|
{
|
|
1238
1207
|
GIT_INIT_STRUCTURE_FROM_TEMPLATE(
|
|
1239
1208
|
opts, version, git_submodule_update_options, GIT_SUBMODULE_UPDATE_OPTIONS_INIT);
|
|
1240
1209
|
return 0;
|
|
1241
1210
|
}
|
|
1242
1211
|
|
|
1243
|
-
int git_submodule_update_init_options(git_submodule_update_options *opts, unsigned int version)
|
|
1244
|
-
{
|
|
1245
|
-
return git_submodule_update_options_init(opts, version);
|
|
1246
|
-
}
|
|
1247
|
-
|
|
1248
1212
|
int git_submodule_update(git_submodule *sm, int init, git_submodule_update_options *_update_options)
|
|
1249
1213
|
{
|
|
1250
1214
|
int error;
|
|
@@ -1971,6 +1935,7 @@ static int submodule_load_each(const git_config_entry *entry, void *payload)
|
|
|
1971
1935
|
{
|
|
1972
1936
|
lfc_data *data = payload;
|
|
1973
1937
|
const char *namestart, *property;
|
|
1938
|
+
size_t pos;
|
|
1974
1939
|
git_strmap *map = data->map;
|
|
1975
1940
|
git_buf name = GIT_BUF_INIT;
|
|
1976
1941
|
git_submodule *sm;
|
|
@@ -2002,7 +1967,8 @@ static int submodule_load_each(const git_config_entry *entry, void *payload)
|
|
|
2002
1967
|
* a new submodule, load the config and insert it. If it's
|
|
2003
1968
|
* already inserted, we've already loaded it, so we skip.
|
|
2004
1969
|
*/
|
|
2005
|
-
|
|
1970
|
+
pos = git_strmap_lookup_index(map, name.ptr);
|
|
1971
|
+
if (git_strmap_valid_index(map, pos)) {
|
|
2006
1972
|
error = 0;
|
|
2007
1973
|
goto done;
|
|
2008
1974
|
}
|
|
@@ -2015,7 +1981,9 @@ static int submodule_load_each(const git_config_entry *entry, void *payload)
|
|
|
2015
1981
|
goto done;
|
|
2016
1982
|
}
|
|
2017
1983
|
|
|
2018
|
-
|
|
1984
|
+
git_strmap_insert(map, sm->name, sm, &error);
|
|
1985
|
+
assert(error != 0);
|
|
1986
|
+
if (error < 0)
|
|
2019
1987
|
goto done;
|
|
2020
1988
|
|
|
2021
1989
|
error = 0;
|