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
data/vendor/libgit2/src/reflog.c
CHANGED
|
@@ -74,8 +74,9 @@ int git_reflog_write(git_reflog *reflog)
|
|
|
74
74
|
|
|
75
75
|
int git_reflog_append(git_reflog *reflog, const git_oid *new_oid, const git_signature *committer, const char *msg)
|
|
76
76
|
{
|
|
77
|
-
const git_reflog_entry *previous;
|
|
78
77
|
git_reflog_entry *entry;
|
|
78
|
+
const git_reflog_entry *previous;
|
|
79
|
+
const char *newline;
|
|
79
80
|
|
|
80
81
|
assert(reflog && new_oid && committer);
|
|
81
82
|
|
|
@@ -86,18 +87,19 @@ int git_reflog_append(git_reflog *reflog, const git_oid *new_oid, const git_sign
|
|
|
86
87
|
goto cleanup;
|
|
87
88
|
|
|
88
89
|
if (msg != NULL) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if ((entry->msg = git__strndup(msg, msglen)) == NULL)
|
|
90
|
+
if ((entry->msg = git__strdup(msg)) == NULL)
|
|
92
91
|
goto cleanup;
|
|
93
92
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
93
|
+
newline = strchr(msg, '\n');
|
|
94
|
+
|
|
95
|
+
if (newline) {
|
|
96
|
+
if (newline[1] != '\0') {
|
|
97
|
+
git_error_set(GIT_ERROR_INVALID, "reflog message cannot contain newline");
|
|
98
|
+
goto cleanup;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
entry->msg[newline - msg] = '\0';
|
|
102
|
+
}
|
|
101
103
|
}
|
|
102
104
|
|
|
103
105
|
previous = git_reflog_entry_byindex(reflog, 0);
|
data/vendor/libgit2/src/refs.c
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
#include "hash.h"
|
|
11
11
|
#include "repository.h"
|
|
12
|
-
#include "
|
|
12
|
+
#include "fileops.h"
|
|
13
13
|
#include "filebuf.h"
|
|
14
14
|
#include "pack.h"
|
|
15
15
|
#include "reflog.h"
|
|
@@ -188,7 +188,7 @@ static int reference_normalize_for_repo(
|
|
|
188
188
|
int precompose;
|
|
189
189
|
unsigned int flags = GIT_REFERENCE_FORMAT_ALLOW_ONELEVEL;
|
|
190
190
|
|
|
191
|
-
if (!
|
|
191
|
+
if (!git_repository__cvar(&precompose, repo, GIT_CVAR_PRECOMPOSE) &&
|
|
192
192
|
precompose)
|
|
193
193
|
flags |= GIT_REFERENCE_FORMAT__PRECOMPOSE_UNICODE;
|
|
194
194
|
|
|
@@ -386,7 +386,7 @@ const git_oid *git_reference_target_peel(const git_reference *ref)
|
|
|
386
386
|
{
|
|
387
387
|
assert(ref);
|
|
388
388
|
|
|
389
|
-
if (ref->type != GIT_REFERENCE_DIRECT ||
|
|
389
|
+
if (ref->type != GIT_REFERENCE_DIRECT || git_oid_iszero(&ref->peel))
|
|
390
390
|
return NULL;
|
|
391
391
|
|
|
392
392
|
return &ref->peel;
|
|
@@ -692,7 +692,7 @@ static int reference__rename(git_reference **out, git_reference *ref, const char
|
|
|
692
692
|
payload.old_name = ref->name;
|
|
693
693
|
memcpy(&payload.new_name, &normalized, sizeof(normalized));
|
|
694
694
|
|
|
695
|
-
error = git_repository_foreach_head(repo, update_wt_heads,
|
|
695
|
+
error = git_repository_foreach_head(repo, update_wt_heads, &payload);
|
|
696
696
|
}
|
|
697
697
|
|
|
698
698
|
return error;
|
|
@@ -897,13 +897,14 @@ static int is_valid_ref_char(char ch)
|
|
|
897
897
|
case '\\':
|
|
898
898
|
case '?':
|
|
899
899
|
case '[':
|
|
900
|
+
case '*':
|
|
900
901
|
return 0;
|
|
901
902
|
default:
|
|
902
903
|
return 1;
|
|
903
904
|
}
|
|
904
905
|
}
|
|
905
906
|
|
|
906
|
-
static int ensure_segment_validity(const char *name
|
|
907
|
+
static int ensure_segment_validity(const char *name)
|
|
907
908
|
{
|
|
908
909
|
const char *current = name;
|
|
909
910
|
char prev = '\0';
|
|
@@ -926,12 +927,6 @@ static int ensure_segment_validity(const char *name, char may_contain_glob)
|
|
|
926
927
|
if (prev == '@' && *current == '{')
|
|
927
928
|
return -1; /* Refname contains "@{" */
|
|
928
929
|
|
|
929
|
-
if (*current == '*') {
|
|
930
|
-
if (!may_contain_glob)
|
|
931
|
-
return -1;
|
|
932
|
-
may_contain_glob = 0;
|
|
933
|
-
}
|
|
934
|
-
|
|
935
930
|
prev = *current;
|
|
936
931
|
}
|
|
937
932
|
|
|
@@ -1010,20 +1005,19 @@ int git_reference__normalize_name(
|
|
|
1010
1005
|
}
|
|
1011
1006
|
|
|
1012
1007
|
while (true) {
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
if (segment_len > 0) {
|
|
1020
|
-
/*
|
|
1021
|
-
* There may only be one glob in a pattern, thus we reset
|
|
1022
|
-
* the pattern-flag in case the current segment has one.
|
|
1023
|
-
*/
|
|
1024
|
-
if (memchr(current, '*', segment_len))
|
|
1008
|
+
segment_len = ensure_segment_validity(current);
|
|
1009
|
+
if (segment_len < 0) {
|
|
1010
|
+
if ((process_flags & GIT_REFERENCE_FORMAT_REFSPEC_PATTERN) &&
|
|
1011
|
+
current[0] == '*' &&
|
|
1012
|
+
(current[1] == '\0' || current[1] == '/')) {
|
|
1013
|
+
/* Accept one wildcard as a full refname component. */
|
|
1025
1014
|
process_flags &= ~GIT_REFERENCE_FORMAT_REFSPEC_PATTERN;
|
|
1015
|
+
segment_len = 1;
|
|
1016
|
+
} else
|
|
1017
|
+
goto cleanup;
|
|
1018
|
+
}
|
|
1026
1019
|
|
|
1020
|
+
if (segment_len > 0) {
|
|
1027
1021
|
if (normalize) {
|
|
1028
1022
|
size_t cur_len = git_buf_len(buf);
|
|
1029
1023
|
|
|
@@ -1380,7 +1374,7 @@ int git_reference_peel(
|
|
|
1380
1374
|
* to a commit. So we only want to use the peeled value
|
|
1381
1375
|
* if it is not zero and the target is not a tag.
|
|
1382
1376
|
*/
|
|
1383
|
-
if (target_type != GIT_OBJECT_TAG && !
|
|
1377
|
+
if (target_type != GIT_OBJECT_TAG && !git_oid_iszero(&resolved->peel)) {
|
|
1384
1378
|
error = git_object_lookup(&target,
|
|
1385
1379
|
git_reference_owner(ref), &resolved->peel, GIT_OBJECT_ANY);
|
|
1386
1380
|
} else {
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
#include "git2/errors.h"
|
|
11
11
|
|
|
12
|
-
#include "refs.h"
|
|
13
12
|
#include "util.h"
|
|
13
|
+
#include "posix.h"
|
|
14
|
+
#include "refs.h"
|
|
14
15
|
#include "vector.h"
|
|
15
|
-
#include "wildmatch.h"
|
|
16
16
|
|
|
17
17
|
int git_refspec__parse(git_refspec *refspec, const char *input, bool is_fetch)
|
|
18
18
|
{
|
|
@@ -213,7 +213,7 @@ int git_refspec_src_matches(const git_refspec *refspec, const char *refname)
|
|
|
213
213
|
if (refspec == NULL || refspec->src == NULL)
|
|
214
214
|
return false;
|
|
215
215
|
|
|
216
|
-
return (
|
|
216
|
+
return (p_fnmatch(refspec->src, refname, 0) == 0);
|
|
217
217
|
}
|
|
218
218
|
|
|
219
219
|
int git_refspec_dst_matches(const git_refspec *refspec, const char *refname)
|
|
@@ -221,13 +221,14 @@ int git_refspec_dst_matches(const git_refspec *refspec, const char *refname)
|
|
|
221
221
|
if (refspec == NULL || refspec->dst == NULL)
|
|
222
222
|
return false;
|
|
223
223
|
|
|
224
|
-
return (
|
|
224
|
+
return (p_fnmatch(refspec->dst, refname, 0) == 0);
|
|
225
225
|
}
|
|
226
226
|
|
|
227
227
|
static int refspec_transform(
|
|
228
228
|
git_buf *out, const char *from, const char *to, const char *name)
|
|
229
229
|
{
|
|
230
230
|
const char *from_star, *to_star;
|
|
231
|
+
const char *name_slash, *from_slash;
|
|
231
232
|
size_t replacement_len, star_offset;
|
|
232
233
|
|
|
233
234
|
git_buf_sanitize(out);
|
|
@@ -250,11 +251,17 @@ static int refspec_transform(
|
|
|
250
251
|
/* the first half is copied over */
|
|
251
252
|
git_buf_put(out, to, to_star - to);
|
|
252
253
|
|
|
253
|
-
/*
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
254
|
+
/* then we copy over the replacement, from the star's offset to the next slash in 'name' */
|
|
255
|
+
name_slash = strchr(name + star_offset, '/');
|
|
256
|
+
if (!name_slash)
|
|
257
|
+
name_slash = strrchr(name, '\0');
|
|
258
|
+
|
|
259
|
+
/* if there is no slash after the star in 'from', we want to copy everything over */
|
|
260
|
+
from_slash = strchr(from + star_offset, '/');
|
|
261
|
+
if (!from_slash)
|
|
262
|
+
name_slash = strrchr(name, '\0');
|
|
263
|
+
|
|
264
|
+
replacement_len = (name_slash - name) - star_offset;
|
|
258
265
|
git_buf_put(out, name + star_offset, replacement_len);
|
|
259
266
|
|
|
260
267
|
return git_buf_puts(out, to_star + 1);
|
data/vendor/libgit2/src/remote.c
CHANGED
|
@@ -136,6 +136,35 @@ cleanup:
|
|
|
136
136
|
return 0;
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
+
#if 0
|
|
140
|
+
/* We could export this as a helper */
|
|
141
|
+
static int get_check_cert(int *out, git_repository *repo)
|
|
142
|
+
{
|
|
143
|
+
git_config *cfg;
|
|
144
|
+
const char *val;
|
|
145
|
+
int error = 0;
|
|
146
|
+
|
|
147
|
+
assert(out && repo);
|
|
148
|
+
|
|
149
|
+
/* By default, we *DO* want to verify the certificate. */
|
|
150
|
+
*out = 1;
|
|
151
|
+
|
|
152
|
+
/* Go through the possible sources for SSL verification settings, from
|
|
153
|
+
* most specific to least specific. */
|
|
154
|
+
|
|
155
|
+
/* GIT_SSL_NO_VERIFY environment variable */
|
|
156
|
+
if ((val = p_getenv("GIT_SSL_NO_VERIFY")) != NULL)
|
|
157
|
+
return git_config_parse_bool(out, val);
|
|
158
|
+
|
|
159
|
+
/* http.sslVerify config setting */
|
|
160
|
+
if ((error = git_repository_config__weakptr(&cfg, repo)) < 0)
|
|
161
|
+
return error;
|
|
162
|
+
|
|
163
|
+
*out = git_config__get_bool_force(cfg, "http.sslverify", 1);
|
|
164
|
+
return 0;
|
|
165
|
+
}
|
|
166
|
+
#endif
|
|
167
|
+
|
|
139
168
|
static int canonicalize_url(git_buf *out, const char *in)
|
|
140
169
|
{
|
|
141
170
|
if (in == NULL || strlen(in) == 0) {
|
|
@@ -188,18 +217,13 @@ static int ensure_remote_doesnot_exist(git_repository *repo, const char *name)
|
|
|
188
217
|
return GIT_EEXISTS;
|
|
189
218
|
}
|
|
190
219
|
|
|
191
|
-
int
|
|
220
|
+
int git_remote_create_init_options(git_remote_create_options *opts, unsigned int version)
|
|
192
221
|
{
|
|
193
222
|
GIT_INIT_STRUCTURE_FROM_TEMPLATE(
|
|
194
223
|
opts, version, git_remote_create_options, GIT_REMOTE_CREATE_OPTIONS_INIT);
|
|
195
224
|
return 0;
|
|
196
225
|
}
|
|
197
226
|
|
|
198
|
-
int git_remote_create_init_options(git_remote_create_options *opts, unsigned int version)
|
|
199
|
-
{
|
|
200
|
-
return git_remote_create_options_init(opts, version);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
227
|
int git_remote_create_with_opts(git_remote **out, const char *url, const git_remote_create_options *opts)
|
|
204
228
|
{
|
|
205
229
|
git_remote *remote = NULL;
|
|
@@ -646,44 +670,21 @@ int git_remote_set_pushurl(git_repository *repo, const char *remote, const char*
|
|
|
646
670
|
return set_url(repo, remote, CONFIG_PUSHURL_FMT, url);
|
|
647
671
|
}
|
|
648
672
|
|
|
649
|
-
|
|
673
|
+
const char* git_remote__urlfordirection(git_remote *remote, int direction)
|
|
650
674
|
{
|
|
651
|
-
int status;
|
|
652
|
-
|
|
653
|
-
if (callbacks && callbacks->resolve_url) {
|
|
654
|
-
git_buf_clear(resolved_url);
|
|
655
|
-
status = callbacks->resolve_url(resolved_url, url, direction, callbacks->payload);
|
|
656
|
-
if (status != GIT_PASSTHROUGH) {
|
|
657
|
-
git_error_set_after_callback_function(status, "git_resolve_url_cb");
|
|
658
|
-
git_buf_sanitize(resolved_url);
|
|
659
|
-
return status;
|
|
660
|
-
}
|
|
661
|
-
}
|
|
662
|
-
|
|
663
|
-
return git_buf_sets(resolved_url, url);
|
|
664
|
-
}
|
|
665
|
-
|
|
666
|
-
int git_remote__urlfordirection(git_buf *url_out, struct git_remote *remote, int direction, const git_remote_callbacks *callbacks)
|
|
667
|
-
{
|
|
668
|
-
const char *url = NULL;
|
|
669
|
-
|
|
670
675
|
assert(remote);
|
|
676
|
+
|
|
671
677
|
assert(direction == GIT_DIRECTION_FETCH || direction == GIT_DIRECTION_PUSH);
|
|
672
678
|
|
|
673
679
|
if (direction == GIT_DIRECTION_FETCH) {
|
|
674
|
-
|
|
675
|
-
} else if (direction == GIT_DIRECTION_PUSH) {
|
|
676
|
-
url = remote->pushurl ? remote->pushurl : remote->url;
|
|
680
|
+
return remote->url;
|
|
677
681
|
}
|
|
678
682
|
|
|
679
|
-
if (
|
|
680
|
-
|
|
681
|
-
"malformed remote '%s' - missing %s URL",
|
|
682
|
-
remote->name ? remote->name : "(anonymous)",
|
|
683
|
-
direction == GIT_DIRECTION_FETCH ? "fetch" : "push");
|
|
684
|
-
return GIT_EINVALID;
|
|
683
|
+
if (direction == GIT_DIRECTION_PUSH) {
|
|
684
|
+
return remote->pushurl ? remote->pushurl : remote->url;
|
|
685
685
|
}
|
|
686
|
-
|
|
686
|
+
|
|
687
|
+
return NULL;
|
|
687
688
|
}
|
|
688
689
|
|
|
689
690
|
int set_transport_callbacks(git_transport *t, const git_remote_callbacks *cbs)
|
|
@@ -706,7 +707,7 @@ static int set_transport_custom_headers(git_transport *t, const git_strarray *cu
|
|
|
706
707
|
int git_remote__connect(git_remote *remote, git_direction direction, const git_remote_callbacks *callbacks, const git_remote_connection_opts *conn)
|
|
707
708
|
{
|
|
708
709
|
git_transport *t;
|
|
709
|
-
|
|
710
|
+
const char *url;
|
|
710
711
|
int flags = GIT_TRANSPORTFLAGS_NONE;
|
|
711
712
|
int error;
|
|
712
713
|
void *payload = NULL;
|
|
@@ -727,38 +728,39 @@ int git_remote__connect(git_remote *remote, git_direction direction, const git_r
|
|
|
727
728
|
|
|
728
729
|
t = remote->transport;
|
|
729
730
|
|
|
730
|
-
|
|
731
|
-
|
|
731
|
+
url = git_remote__urlfordirection(remote, direction);
|
|
732
|
+
if (url == NULL) {
|
|
733
|
+
git_error_set(GIT_ERROR_INVALID,
|
|
734
|
+
"Malformed remote '%s' - missing %s URL",
|
|
735
|
+
remote->name ? remote->name : "(anonymous)",
|
|
736
|
+
direction == GIT_DIRECTION_FETCH ? "fetch" : "push");
|
|
737
|
+
return -1;
|
|
738
|
+
}
|
|
732
739
|
|
|
733
740
|
/* If we don't have a transport object yet, and the caller specified a
|
|
734
741
|
* custom transport factory, use that */
|
|
735
742
|
if (!t && transport &&
|
|
736
743
|
(error = transport(&t, remote, payload)) < 0)
|
|
737
|
-
|
|
744
|
+
return error;
|
|
738
745
|
|
|
739
746
|
/* If we still don't have a transport, then use the global
|
|
740
747
|
* transport registrations which map URI schemes to transport factories */
|
|
741
|
-
if (!t && (error = git_transport_new(&t, remote, url
|
|
742
|
-
|
|
748
|
+
if (!t && (error = git_transport_new(&t, remote, url)) < 0)
|
|
749
|
+
return error;
|
|
743
750
|
|
|
744
751
|
if ((error = set_transport_custom_headers(t, conn->custom_headers)) != 0)
|
|
745
752
|
goto on_error;
|
|
746
753
|
|
|
747
754
|
if ((error = set_transport_callbacks(t, callbacks)) < 0 ||
|
|
748
|
-
(error = t->connect(t, url
|
|
755
|
+
(error = t->connect(t, url, credentials, payload, conn->proxy, direction, flags)) != 0)
|
|
749
756
|
goto on_error;
|
|
750
757
|
|
|
751
758
|
remote->transport = t;
|
|
752
759
|
|
|
753
|
-
git_buf_dispose(&url);
|
|
754
|
-
|
|
755
760
|
return 0;
|
|
756
761
|
|
|
757
762
|
on_error:
|
|
758
|
-
|
|
759
|
-
t->free(t);
|
|
760
|
-
|
|
761
|
-
git_buf_dispose(&url);
|
|
763
|
+
t->free(t);
|
|
762
764
|
|
|
763
765
|
if (t == remote->transport)
|
|
764
766
|
remote->transport = NULL;
|
|
@@ -1768,7 +1770,7 @@ int git_remote_list(git_strarray *remotes_list, git_repository *repo)
|
|
|
1768
1770
|
return 0;
|
|
1769
1771
|
}
|
|
1770
1772
|
|
|
1771
|
-
const
|
|
1773
|
+
const git_transfer_progress* git_remote_stats(git_remote *remote)
|
|
1772
1774
|
{
|
|
1773
1775
|
assert(remote);
|
|
1774
1776
|
return &remote->stats;
|
data/vendor/libgit2/src/remote.h
CHANGED
|
@@ -29,7 +29,7 @@ struct git_remote {
|
|
|
29
29
|
git_transport *transport;
|
|
30
30
|
git_repository *repo;
|
|
31
31
|
git_push *push;
|
|
32
|
-
|
|
32
|
+
git_transfer_progress stats;
|
|
33
33
|
unsigned int need_pack;
|
|
34
34
|
git_remote_autotag_option_t download_tags;
|
|
35
35
|
int prune_refs;
|
|
@@ -45,7 +45,7 @@ typedef struct git_remote_connection_opts {
|
|
|
45
45
|
|
|
46
46
|
int git_remote__connect(git_remote *remote, git_direction direction, const git_remote_callbacks *callbacks, const git_remote_connection_opts *conn);
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
const char* git_remote__urlfordirection(struct git_remote *remote, int direction);
|
|
49
49
|
int git_remote__get_http_proxy(git_remote *remote, bool use_ssl, char **proxy_url);
|
|
50
50
|
|
|
51
51
|
git_refspec *git_remote__matching_refspec(git_remote *remote, const char *refname);
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
#include "commit.h"
|
|
17
17
|
#include "tag.h"
|
|
18
18
|
#include "blob.h"
|
|
19
|
-
#include "
|
|
19
|
+
#include "fileops.h"
|
|
20
20
|
#include "sysdir.h"
|
|
21
21
|
#include "filebuf.h"
|
|
22
22
|
#include "index.h"
|
|
@@ -42,24 +42,23 @@ bool git_repository__fsync_gitdir = false;
|
|
|
42
42
|
|
|
43
43
|
static const struct {
|
|
44
44
|
git_repository_item_t parent;
|
|
45
|
-
git_repository_item_t fallback;
|
|
46
45
|
const char *name;
|
|
47
46
|
bool directory;
|
|
48
47
|
} items[] = {
|
|
49
|
-
{ GIT_REPOSITORY_ITEM_GITDIR,
|
|
50
|
-
{ GIT_REPOSITORY_ITEM_WORKDIR,
|
|
51
|
-
{ GIT_REPOSITORY_ITEM_COMMONDIR,
|
|
52
|
-
{ GIT_REPOSITORY_ITEM_GITDIR,
|
|
53
|
-
{ GIT_REPOSITORY_ITEM_COMMONDIR,
|
|
54
|
-
{ GIT_REPOSITORY_ITEM_COMMONDIR,
|
|
55
|
-
{ GIT_REPOSITORY_ITEM_COMMONDIR,
|
|
56
|
-
{ GIT_REPOSITORY_ITEM_COMMONDIR,
|
|
57
|
-
{ GIT_REPOSITORY_ITEM_COMMONDIR,
|
|
58
|
-
{ GIT_REPOSITORY_ITEM_COMMONDIR,
|
|
59
|
-
{ GIT_REPOSITORY_ITEM_COMMONDIR,
|
|
60
|
-
{ GIT_REPOSITORY_ITEM_COMMONDIR,
|
|
61
|
-
{ GIT_REPOSITORY_ITEM_GITDIR,
|
|
62
|
-
{ GIT_REPOSITORY_ITEM_COMMONDIR,
|
|
48
|
+
{ GIT_REPOSITORY_ITEM_GITDIR, NULL, true },
|
|
49
|
+
{ GIT_REPOSITORY_ITEM_WORKDIR, NULL, true },
|
|
50
|
+
{ GIT_REPOSITORY_ITEM_COMMONDIR, NULL, true },
|
|
51
|
+
{ GIT_REPOSITORY_ITEM_GITDIR, "index", false },
|
|
52
|
+
{ GIT_REPOSITORY_ITEM_COMMONDIR, "objects", true },
|
|
53
|
+
{ GIT_REPOSITORY_ITEM_COMMONDIR, "refs", true },
|
|
54
|
+
{ GIT_REPOSITORY_ITEM_COMMONDIR, "packed-refs", false },
|
|
55
|
+
{ GIT_REPOSITORY_ITEM_COMMONDIR, "remotes", true },
|
|
56
|
+
{ GIT_REPOSITORY_ITEM_COMMONDIR, "config", false },
|
|
57
|
+
{ GIT_REPOSITORY_ITEM_COMMONDIR, "info", true },
|
|
58
|
+
{ GIT_REPOSITORY_ITEM_COMMONDIR, "hooks", true },
|
|
59
|
+
{ GIT_REPOSITORY_ITEM_COMMONDIR, "logs", true },
|
|
60
|
+
{ GIT_REPOSITORY_ITEM_GITDIR, "modules", true },
|
|
61
|
+
{ GIT_REPOSITORY_ITEM_COMMONDIR, "worktrees", true }
|
|
63
62
|
};
|
|
64
63
|
|
|
65
64
|
static int check_repositoryformatversion(git_config *config);
|
|
@@ -122,7 +121,7 @@ static void set_config(git_repository *repo, git_config *config)
|
|
|
122
121
|
git_config_free(config);
|
|
123
122
|
}
|
|
124
123
|
|
|
125
|
-
|
|
124
|
+
git_repository__cvar_cache_clear(repo);
|
|
126
125
|
}
|
|
127
126
|
|
|
128
127
|
static void set_index(git_repository *repo, git_index *index)
|
|
@@ -161,7 +160,7 @@ void git_repository_free(git_repository *repo)
|
|
|
161
160
|
|
|
162
161
|
git_repository__cleanup(repo);
|
|
163
162
|
|
|
164
|
-
|
|
163
|
+
git_cache_free(&repo->objects);
|
|
165
164
|
|
|
166
165
|
git_diff_driver_registry_free(repo->diff_drivers);
|
|
167
166
|
repo->diff_drivers = NULL;
|
|
@@ -239,14 +238,14 @@ static git_repository *repository_alloc(void)
|
|
|
239
238
|
if (!repo->reserved_names.ptr)
|
|
240
239
|
goto on_error;
|
|
241
240
|
|
|
242
|
-
/* set all the entries in the
|
|
243
|
-
|
|
241
|
+
/* set all the entries in the cvar cache to `unset` */
|
|
242
|
+
git_repository__cvar_cache_clear(repo);
|
|
244
243
|
|
|
245
244
|
return repo;
|
|
246
245
|
|
|
247
246
|
on_error:
|
|
248
247
|
if (repo)
|
|
249
|
-
|
|
248
|
+
git_cache_free(&repo->objects);
|
|
250
249
|
|
|
251
250
|
git__free(repo);
|
|
252
251
|
return NULL;
|
|
@@ -800,7 +799,7 @@ int git_repository_open_ext(
|
|
|
800
799
|
unsigned is_worktree;
|
|
801
800
|
git_buf gitdir = GIT_BUF_INIT, workdir = GIT_BUF_INIT,
|
|
802
801
|
gitlink = GIT_BUF_INIT, commondir = GIT_BUF_INIT;
|
|
803
|
-
git_repository *repo
|
|
802
|
+
git_repository *repo;
|
|
804
803
|
git_config *config = NULL;
|
|
805
804
|
|
|
806
805
|
if (flags & GIT_REPOSITORY_OPEN_FROM_ENV)
|
|
@@ -813,7 +812,7 @@ int git_repository_open_ext(
|
|
|
813
812
|
&gitdir, &workdir, &gitlink, &commondir, start_path, flags, ceiling_dirs);
|
|
814
813
|
|
|
815
814
|
if (error < 0 || !repo_ptr)
|
|
816
|
-
|
|
815
|
+
return error;
|
|
817
816
|
|
|
818
817
|
repo = repository_alloc();
|
|
819
818
|
GIT_ERROR_CHECK_ALLOC(repo);
|
|
@@ -859,14 +858,11 @@ int git_repository_open_ext(
|
|
|
859
858
|
cleanup:
|
|
860
859
|
git_buf_dispose(&gitdir);
|
|
861
860
|
git_buf_dispose(&workdir);
|
|
862
|
-
git_buf_dispose(&gitlink);
|
|
863
|
-
git_buf_dispose(&commondir);
|
|
864
861
|
git_config_free(config);
|
|
865
862
|
|
|
866
863
|
if (error < 0)
|
|
867
864
|
git_repository_free(repo);
|
|
868
|
-
|
|
869
|
-
if (repo_ptr)
|
|
865
|
+
else
|
|
870
866
|
*repo_ptr = repo;
|
|
871
867
|
|
|
872
868
|
return error;
|
|
@@ -882,8 +878,7 @@ int git_repository_open_from_worktree(git_repository **repo_out, git_worktree *w
|
|
|
882
878
|
{
|
|
883
879
|
git_buf path = GIT_BUF_INIT;
|
|
884
880
|
git_repository *repo = NULL;
|
|
885
|
-
|
|
886
|
-
int err;
|
|
881
|
+
int len, err;
|
|
887
882
|
|
|
888
883
|
assert(repo_out && wt);
|
|
889
884
|
|
|
@@ -1290,8 +1285,8 @@ bool git_repository__reserved_names(
|
|
|
1290
1285
|
int (*prefixcmp)(const char *, const char *);
|
|
1291
1286
|
int error, ignorecase;
|
|
1292
1287
|
|
|
1293
|
-
error =
|
|
1294
|
-
&ignorecase, repo,
|
|
1288
|
+
error = git_repository__cvar(
|
|
1289
|
+
&ignorecase, repo, GIT_CVAR_IGNORECASE);
|
|
1295
1290
|
prefixcmp = (error || ignorecase) ? git__prefixcmp_icase :
|
|
1296
1291
|
git__prefixcmp;
|
|
1297
1292
|
|
|
@@ -1363,11 +1358,10 @@ int git_repository_create_head(const char *git_dir, const char *ref_name)
|
|
|
1363
1358
|
git_buf ref_path = GIT_BUF_INIT;
|
|
1364
1359
|
git_filebuf ref = GIT_FILEBUF_INIT;
|
|
1365
1360
|
const char *fmt;
|
|
1366
|
-
int error;
|
|
1367
1361
|
|
|
1368
|
-
if (
|
|
1369
|
-
|
|
1370
|
-
goto
|
|
1362
|
+
if (git_buf_joinpath(&ref_path, git_dir, GIT_HEAD_FILE) < 0 ||
|
|
1363
|
+
git_filebuf_open(&ref, ref_path.ptr, 0, GIT_REFS_FILE_MODE) < 0)
|
|
1364
|
+
goto fail;
|
|
1371
1365
|
|
|
1372
1366
|
if (!ref_name)
|
|
1373
1367
|
ref_name = GIT_BRANCH_MASTER;
|
|
@@ -1377,14 +1371,17 @@ int git_repository_create_head(const char *git_dir, const char *ref_name)
|
|
|
1377
1371
|
else
|
|
1378
1372
|
fmt = "ref: " GIT_REFS_HEADS_DIR "%s\n";
|
|
1379
1373
|
|
|
1380
|
-
if (
|
|
1381
|
-
|
|
1382
|
-
goto
|
|
1374
|
+
if (git_filebuf_printf(&ref, fmt, ref_name) < 0 ||
|
|
1375
|
+
git_filebuf_commit(&ref) < 0)
|
|
1376
|
+
goto fail;
|
|
1383
1377
|
|
|
1384
|
-
|
|
1378
|
+
git_buf_dispose(&ref_path);
|
|
1379
|
+
return 0;
|
|
1380
|
+
|
|
1381
|
+
fail:
|
|
1385
1382
|
git_buf_dispose(&ref_path);
|
|
1386
1383
|
git_filebuf_cleanup(&ref);
|
|
1387
|
-
return
|
|
1384
|
+
return -1;
|
|
1388
1385
|
}
|
|
1389
1386
|
|
|
1390
1387
|
static bool is_chmod_supported(const char *file_path)
|
|
@@ -1422,6 +1419,9 @@ static bool are_symlinks_supported(const char *wd_path)
|
|
|
1422
1419
|
git_buf xdg_buf = GIT_BUF_INIT;
|
|
1423
1420
|
git_buf system_buf = GIT_BUF_INIT;
|
|
1424
1421
|
git_buf programdata_buf = GIT_BUF_INIT;
|
|
1422
|
+
git_buf path = GIT_BUF_INIT;
|
|
1423
|
+
int fd;
|
|
1424
|
+
struct stat st;
|
|
1425
1425
|
int symlinks = 0;
|
|
1426
1426
|
|
|
1427
1427
|
/*
|
|
@@ -1448,14 +1448,23 @@ static bool are_symlinks_supported(const char *wd_path)
|
|
|
1448
1448
|
goto done;
|
|
1449
1449
|
#endif
|
|
1450
1450
|
|
|
1451
|
-
if (
|
|
1451
|
+
if ((fd = git_futils_mktmp(&path, wd_path, 0666)) < 0 ||
|
|
1452
|
+
p_close(fd) < 0 ||
|
|
1453
|
+
p_unlink(path.ptr) < 0 ||
|
|
1454
|
+
p_symlink("testing", path.ptr) < 0 ||
|
|
1455
|
+
p_lstat(path.ptr, &st) < 0)
|
|
1452
1456
|
goto done;
|
|
1453
1457
|
|
|
1458
|
+
symlinks = (S_ISLNK(st.st_mode) != 0);
|
|
1459
|
+
|
|
1460
|
+
(void)p_unlink(path.ptr);
|
|
1461
|
+
|
|
1454
1462
|
done:
|
|
1455
1463
|
git_buf_dispose(&global_buf);
|
|
1456
1464
|
git_buf_dispose(&xdg_buf);
|
|
1457
1465
|
git_buf_dispose(&system_buf);
|
|
1458
1466
|
git_buf_dispose(&programdata_buf);
|
|
1467
|
+
git_buf_dispose(&path);
|
|
1459
1468
|
git_config_free(config);
|
|
1460
1469
|
return symlinks != 0;
|
|
1461
1470
|
}
|
|
@@ -1649,7 +1658,7 @@ int git_repository_reinit_filesystem(git_repository *repo, int recurse)
|
|
|
1649
1658
|
git_config_free(config);
|
|
1650
1659
|
git_buf_dispose(&path);
|
|
1651
1660
|
|
|
1652
|
-
|
|
1661
|
+
git_repository__cvar_cache_clear(repo);
|
|
1653
1662
|
|
|
1654
1663
|
if (!repo->is_bare && recurse)
|
|
1655
1664
|
(void)git_submodule_foreach(repo, repo_reinit_submodule_fs, NULL);
|
|
@@ -2047,59 +2056,53 @@ int git_repository_init_ext(
|
|
|
2047
2056
|
const char *given_repo,
|
|
2048
2057
|
git_repository_init_options *opts)
|
|
2049
2058
|
{
|
|
2059
|
+
int error;
|
|
2050
2060
|
git_buf repo_path = GIT_BUF_INIT, wd_path = GIT_BUF_INIT,
|
|
2051
|
-
common_path = GIT_BUF_INIT
|
|
2061
|
+
common_path = GIT_BUF_INIT;
|
|
2052
2062
|
const char *wd;
|
|
2053
|
-
int error;
|
|
2054
2063
|
|
|
2055
2064
|
assert(out && given_repo && opts);
|
|
2056
2065
|
|
|
2057
2066
|
GIT_ERROR_CHECK_VERSION(opts, GIT_REPOSITORY_INIT_OPTIONS_VERSION, "git_repository_init_options");
|
|
2058
2067
|
|
|
2059
|
-
|
|
2060
|
-
|
|
2068
|
+
error = repo_init_directories(&repo_path, &wd_path, given_repo, opts);
|
|
2069
|
+
if (error < 0)
|
|
2070
|
+
goto cleanup;
|
|
2061
2071
|
|
|
2062
2072
|
wd = (opts->flags & GIT_REPOSITORY_INIT_BARE) ? NULL : git_buf_cstr(&wd_path);
|
|
2063
|
-
|
|
2064
2073
|
if (valid_repository_path(&repo_path, &common_path)) {
|
|
2074
|
+
|
|
2065
2075
|
if ((opts->flags & GIT_REPOSITORY_INIT_NO_REINIT) != 0) {
|
|
2066
2076
|
git_error_set(GIT_ERROR_REPOSITORY,
|
|
2067
2077
|
"attempt to reinitialize '%s'", given_repo);
|
|
2068
2078
|
error = GIT_EEXISTS;
|
|
2069
|
-
goto
|
|
2079
|
+
goto cleanup;
|
|
2070
2080
|
}
|
|
2071
2081
|
|
|
2072
2082
|
opts->flags |= GIT_REPOSITORY_INIT__IS_REINIT;
|
|
2073
2083
|
|
|
2074
|
-
|
|
2075
|
-
|
|
2084
|
+
error = repo_init_config(
|
|
2085
|
+
repo_path.ptr, wd, opts->flags, opts->mode);
|
|
2076
2086
|
|
|
2077
2087
|
/* TODO: reinitialize the templates */
|
|
2078
|
-
} else {
|
|
2079
|
-
if ((error = repo_init_structure(repo_path.ptr, wd, opts)) < 0 ||
|
|
2080
|
-
(error = repo_init_config(repo_path.ptr, wd, opts->flags, opts->mode)) < 0 ||
|
|
2081
|
-
(error = git_buf_joinpath(&head_path, repo_path.ptr, GIT_HEAD_FILE)) < 0)
|
|
2082
|
-
goto out;
|
|
2083
|
-
|
|
2084
|
-
/*
|
|
2085
|
-
* Only set the new HEAD if the file does not exist already via
|
|
2086
|
-
* a template or if the caller has explicitly supplied an
|
|
2087
|
-
* initial HEAD value.
|
|
2088
|
-
*/
|
|
2089
|
-
if ((!git_path_exists(head_path.ptr) || opts->initial_head) &&
|
|
2090
|
-
(error = git_repository_create_head(repo_path.ptr, opts->initial_head)) < 0)
|
|
2091
|
-
goto out;
|
|
2092
2088
|
}
|
|
2089
|
+
else {
|
|
2090
|
+
if (!(error = repo_init_structure(
|
|
2091
|
+
repo_path.ptr, wd, opts)) &&
|
|
2092
|
+
!(error = repo_init_config(
|
|
2093
|
+
repo_path.ptr, wd, opts->flags, opts->mode)))
|
|
2094
|
+
error = git_repository_create_head(
|
|
2095
|
+
repo_path.ptr, opts->initial_head);
|
|
2096
|
+
}
|
|
2097
|
+
if (error < 0)
|
|
2098
|
+
goto cleanup;
|
|
2093
2099
|
|
|
2094
|
-
|
|
2095
|
-
goto out;
|
|
2100
|
+
error = git_repository_open(out, repo_path.ptr);
|
|
2096
2101
|
|
|
2097
|
-
if (opts->origin_url
|
|
2098
|
-
|
|
2099
|
-
goto out;
|
|
2102
|
+
if (!error && opts->origin_url)
|
|
2103
|
+
error = repo_init_create_origin(*out, opts->origin_url);
|
|
2100
2104
|
|
|
2101
|
-
|
|
2102
|
-
git_buf_dispose(&head_path);
|
|
2105
|
+
cleanup:
|
|
2103
2106
|
git_buf_dispose(&common_path);
|
|
2104
2107
|
git_buf_dispose(&repo_path);
|
|
2105
2108
|
git_buf_dispose(&wd_path);
|
|
@@ -2207,37 +2210,30 @@ out:
|
|
|
2207
2210
|
return error;
|
|
2208
2211
|
}
|
|
2209
2212
|
|
|
2210
|
-
int git_repository_foreach_head(git_repository *repo,
|
|
2211
|
-
git_repository_foreach_head_cb cb,
|
|
2212
|
-
int flags, void *payload)
|
|
2213
|
+
int git_repository_foreach_head(git_repository *repo, git_repository_foreach_head_cb cb, void *payload)
|
|
2213
2214
|
{
|
|
2214
2215
|
git_strarray worktrees = GIT_VECTOR_INIT;
|
|
2215
2216
|
git_buf path = GIT_BUF_INIT;
|
|
2216
|
-
int error
|
|
2217
|
+
int error;
|
|
2217
2218
|
size_t i;
|
|
2218
2219
|
|
|
2220
|
+
/* Execute callback for HEAD of commondir */
|
|
2221
|
+
if ((error = git_buf_joinpath(&path, repo->commondir, GIT_HEAD_FILE)) < 0 ||
|
|
2222
|
+
(error = cb(repo, path.ptr, payload) != 0))
|
|
2223
|
+
goto out;
|
|
2219
2224
|
|
|
2220
|
-
if (
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
(error = cb(repo, path.ptr, payload) != 0))
|
|
2224
|
-
goto out;
|
|
2225
|
+
if ((error = git_worktree_list(&worktrees, repo)) < 0) {
|
|
2226
|
+
error = 0;
|
|
2227
|
+
goto out;
|
|
2225
2228
|
}
|
|
2226
2229
|
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
}
|
|
2232
|
-
|
|
2233
|
-
/* Gather HEADs of all worktrees */
|
|
2234
|
-
for (i = 0; i < worktrees.count; i++) {
|
|
2235
|
-
if (get_worktree_file_path(&path, repo, worktrees.strings[i], GIT_HEAD_FILE) < 0)
|
|
2236
|
-
continue;
|
|
2230
|
+
/* Execute callback for all worktree HEADs */
|
|
2231
|
+
for (i = 0; i < worktrees.count; i++) {
|
|
2232
|
+
if (get_worktree_file_path(&path, repo, worktrees.strings[i], GIT_HEAD_FILE) < 0)
|
|
2233
|
+
continue;
|
|
2237
2234
|
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
}
|
|
2235
|
+
if ((error = cb(repo, path.ptr, payload)) != 0)
|
|
2236
|
+
goto out;
|
|
2241
2237
|
}
|
|
2242
2238
|
|
|
2243
2239
|
out:
|
|
@@ -2304,11 +2300,11 @@ int git_repository_is_empty(git_repository *repo)
|
|
|
2304
2300
|
return is_empty;
|
|
2305
2301
|
}
|
|
2306
2302
|
|
|
2307
|
-
|
|
2303
|
+
int git_repository_item_path(git_buf *out, const git_repository *repo, git_repository_item_t item)
|
|
2308
2304
|
{
|
|
2309
2305
|
const char *parent;
|
|
2310
2306
|
|
|
2311
|
-
switch (item) {
|
|
2307
|
+
switch (items[item].parent) {
|
|
2312
2308
|
case GIT_REPOSITORY_ITEM_GITDIR:
|
|
2313
2309
|
parent = git_repository_path(repo);
|
|
2314
2310
|
break;
|
|
@@ -2320,17 +2316,9 @@ static const char *resolved_parent_path(const git_repository *repo, git_reposito
|
|
|
2320
2316
|
break;
|
|
2321
2317
|
default:
|
|
2322
2318
|
git_error_set(GIT_ERROR_INVALID, "invalid item directory");
|
|
2323
|
-
return
|
|
2319
|
+
return -1;
|
|
2324
2320
|
}
|
|
2325
|
-
if (!parent && fallback != GIT_REPOSITORY_ITEM__LAST)
|
|
2326
|
-
return resolved_parent_path(repo, fallback, GIT_REPOSITORY_ITEM__LAST);
|
|
2327
|
-
|
|
2328
|
-
return parent;
|
|
2329
|
-
}
|
|
2330
2321
|
|
|
2331
|
-
int git_repository_item_path(git_buf *out, const git_repository *repo, git_repository_item_t item)
|
|
2332
|
-
{
|
|
2333
|
-
const char *parent = resolved_parent_path(repo, items[item].parent, items[item].fallback);
|
|
2334
2322
|
if (parent == NULL) {
|
|
2335
2323
|
git_error_set(GIT_ERROR_INVALID, "path cannot exist in repository");
|
|
2336
2324
|
return GIT_ENOTFOUND;
|
|
@@ -2485,7 +2473,7 @@ int git_repository__set_orig_head(git_repository *repo, const git_oid *orig_head
|
|
|
2485
2473
|
git_oid_fmt(orig_head_str, orig_head);
|
|
2486
2474
|
|
|
2487
2475
|
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_ORIG_HEAD_FILE)) == 0 &&
|
|
2488
|
-
(error = git_filebuf_open(&file, file_path.ptr,
|
|
2476
|
+
(error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_FORCE, GIT_MERGE_FILE_MODE)) == 0 &&
|
|
2489
2477
|
(error = git_filebuf_printf(&file, "%.*s\n", GIT_OID_HEXSZ, orig_head_str)) == 0)
|
|
2490
2478
|
error = git_filebuf_commit(&file);
|
|
2491
2479
|
|
|
@@ -2545,7 +2533,7 @@ int git_repository_hashfile(
|
|
|
2545
2533
|
int error;
|
|
2546
2534
|
git_filter_list *fl = NULL;
|
|
2547
2535
|
git_file fd = -1;
|
|
2548
|
-
|
|
2536
|
+
git_off_t len;
|
|
2549
2537
|
git_buf full_path = GIT_BUF_INIT;
|
|
2550
2538
|
|
|
2551
2539
|
assert(out && path && repo); /* as_path can be NULL */
|
|
@@ -2582,8 +2570,11 @@ int git_repository_hashfile(
|
|
|
2582
2570
|
goto cleanup;
|
|
2583
2571
|
}
|
|
2584
2572
|
|
|
2585
|
-
|
|
2573
|
+
len = git_futils_filesize(fd);
|
|
2574
|
+
if (len < 0) {
|
|
2575
|
+
error = (int)len;
|
|
2586
2576
|
goto cleanup;
|
|
2577
|
+
}
|
|
2587
2578
|
|
|
2588
2579
|
if (!git__is_sizet(len)) {
|
|
2589
2580
|
git_error_set(GIT_ERROR_OS, "file size overflow for 32-bit systems");
|
|
@@ -2872,7 +2863,7 @@ int git_repository_is_shallow(git_repository *repo)
|
|
|
2872
2863
|
return st.st_size == 0 ? 0 : 1;
|
|
2873
2864
|
}
|
|
2874
2865
|
|
|
2875
|
-
int
|
|
2866
|
+
int git_repository_init_init_options(
|
|
2876
2867
|
git_repository_init_options *opts, unsigned int version)
|
|
2877
2868
|
{
|
|
2878
2869
|
GIT_INIT_STRUCTURE_FROM_TEMPLATE(
|
|
@@ -2881,12 +2872,6 @@ int git_repository_init_options_init(
|
|
|
2881
2872
|
return 0;
|
|
2882
2873
|
}
|
|
2883
2874
|
|
|
2884
|
-
int git_repository_init_init_options(
|
|
2885
|
-
git_repository_init_options *opts, unsigned int version)
|
|
2886
|
-
{
|
|
2887
|
-
return git_repository_init_options_init(opts, version);
|
|
2888
|
-
}
|
|
2889
|
-
|
|
2890
2875
|
int git_repository_ident(const char **name, const char **email, const git_repository *repo)
|
|
2891
2876
|
{
|
|
2892
2877
|
*name = repo->ident_name;
|
|
@@ -2924,7 +2909,7 @@ int git_repository_submodule_cache_all(git_repository *repo)
|
|
|
2924
2909
|
|
|
2925
2910
|
assert(repo);
|
|
2926
2911
|
|
|
2927
|
-
if ((error =
|
|
2912
|
+
if ((error = git_strmap_alloc(&repo->submodule_cache)))
|
|
2928
2913
|
return error;
|
|
2929
2914
|
|
|
2930
2915
|
error = git_submodule__map(repo, repo->submodule_cache);
|