rugged 0.27.10 → 0.27.10.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +0 -1
- data/vendor/libgit2/CMakeLists.txt +54 -98
- data/vendor/libgit2/COPYING +0 -28
- data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +1 -15
- data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +8 -9
- 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/CMakeLists.txt +0 -2
- data/vendor/libgit2/deps/http-parser/{COPYING → LICENSE-MIT} +0 -0
- 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/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/CMakeLists.txt +0 -1
- 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 -5
- data/vendor/libgit2/include/git2/annotated_commit.h +0 -9
- data/vendor/libgit2/include/git2/attr.h +20 -38
- data/vendor/libgit2/include/git2/blame.h +25 -42
- data/vendor/libgit2/include/git2/blob.h +13 -45
- data/vendor/libgit2/include/git2/branch.h +1 -1
- data/vendor/libgit2/include/git2/buffer.h +16 -22
- data/vendor/libgit2/include/git2/checkout.h +32 -65
- data/vendor/libgit2/include/git2/cherrypick.h +7 -9
- data/vendor/libgit2/include/git2/clone.h +10 -12
- data/vendor/libgit2/include/git2/commit.h +3 -53
- data/vendor/libgit2/include/git2/common.h +8 -60
- data/vendor/libgit2/include/git2/config.h +19 -30
- data/vendor/libgit2/include/git2/describe.h +9 -32
- data/vendor/libgit2/include/git2/diff.h +156 -208
- data/vendor/libgit2/include/git2/errors.h +46 -54
- data/vendor/libgit2/include/git2/filter.h +0 -8
- data/vendor/libgit2/include/git2/ignore.h +2 -2
- data/vendor/libgit2/include/git2/index.h +52 -74
- data/vendor/libgit2/include/git2/indexer.h +6 -76
- data/vendor/libgit2/include/git2/inttypes.h +309 -0
- data/vendor/libgit2/include/git2/merge.h +18 -35
- data/vendor/libgit2/include/git2/net.h +5 -0
- data/vendor/libgit2/include/git2/notes.h +1 -1
- data/vendor/libgit2/include/git2/object.h +29 -17
- data/vendor/libgit2/include/git2/odb.h +11 -12
- data/vendor/libgit2/include/git2/odb_backend.h +9 -10
- data/vendor/libgit2/include/git2/oid.h +2 -2
- data/vendor/libgit2/include/git2/pack.h +3 -14
- data/vendor/libgit2/include/git2/proxy.h +8 -14
- data/vendor/libgit2/include/git2/rebase.h +6 -53
- data/vendor/libgit2/include/git2/refs.h +15 -33
- data/vendor/libgit2/include/git2/refspec.h +0 -17
- data/vendor/libgit2/include/git2/remote.h +24 -123
- data/vendor/libgit2/include/git2/repository.h +39 -76
- data/vendor/libgit2/include/git2/revert.h +4 -6
- data/vendor/libgit2/include/git2/revwalk.h +7 -7
- data/vendor/libgit2/include/git2/signature.h +2 -2
- data/vendor/libgit2/include/git2/stash.h +12 -15
- data/vendor/libgit2/include/git2/status.h +20 -33
- data/vendor/libgit2/include/git2/submodule.h +12 -30
- data/vendor/libgit2/include/git2/sys/commit.h +1 -1
- data/vendor/libgit2/include/git2/sys/config.h +13 -13
- data/vendor/libgit2/include/git2/sys/filter.h +6 -6
- data/vendor/libgit2/include/git2/sys/index.h +0 -3
- data/vendor/libgit2/include/git2/sys/mempack.h +35 -35
- data/vendor/libgit2/include/git2/sys/merge.h +4 -9
- data/vendor/libgit2/include/git2/sys/odb_backend.h +22 -66
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -76
- data/vendor/libgit2/include/git2/sys/repository.h +1 -5
- data/vendor/libgit2/include/git2/sys/stream.h +12 -92
- data/vendor/libgit2/include/git2/sys/time.h +31 -0
- data/vendor/libgit2/include/git2/sys/transport.h +83 -129
- data/vendor/libgit2/include/git2/tag.h +4 -13
- data/vendor/libgit2/include/git2/trace.h +2 -2
- data/vendor/libgit2/include/git2/transaction.h +0 -1
- data/vendor/libgit2/include/git2/transport.h +311 -11
- data/vendor/libgit2/include/git2/tree.h +4 -4
- data/vendor/libgit2/include/git2/types.h +111 -33
- data/vendor/libgit2/include/git2/version.h +4 -4
- data/vendor/libgit2/include/git2/worktree.h +13 -48
- data/vendor/libgit2/libgit2.pc.in +13 -0
- data/vendor/libgit2/src/CMakeLists.txt +164 -96
- data/vendor/libgit2/src/annotated_commit.c +8 -15
- data/vendor/libgit2/src/apply.c +31 -537
- data/vendor/libgit2/src/apply.h +1 -3
- data/vendor/libgit2/src/array.h +2 -2
- data/vendor/libgit2/src/attr.c +75 -81
- data/vendor/libgit2/src/attr_file.c +121 -207
- data/vendor/libgit2/src/attr_file.h +9 -9
- data/vendor/libgit2/src/attrcache.c +53 -51
- data/vendor/libgit2/src/attrcache.h +1 -2
- data/vendor/libgit2/src/blame.c +20 -47
- data/vendor/libgit2/src/blame.h +1 -2
- data/vendor/libgit2/src/blame_git.c +20 -37
- data/vendor/libgit2/src/blob.c +42 -128
- data/vendor/libgit2/src/blob.h +2 -19
- data/vendor/libgit2/src/branch.c +43 -67
- data/vendor/libgit2/src/buf_text.c +6 -7
- data/vendor/libgit2/src/buffer.c +57 -69
- data/vendor/libgit2/src/buffer.h +1 -1
- data/vendor/libgit2/src/cache.c +45 -38
- data/vendor/libgit2/src/cache.h +3 -3
- data/vendor/libgit2/src/cc-compat.h +3 -20
- data/vendor/libgit2/src/checkout.c +90 -109
- data/vendor/libgit2/src/cherrypick.c +9 -15
- data/vendor/libgit2/src/clone.c +27 -49
- data/vendor/libgit2/src/clone.h +0 -4
- data/vendor/libgit2/src/commit.c +49 -117
- data/vendor/libgit2/src/commit.h +0 -7
- data/vendor/libgit2/src/commit_list.c +78 -30
- data/vendor/libgit2/src/commit_list.h +2 -2
- data/vendor/libgit2/src/common.h +91 -27
- data/vendor/libgit2/src/config.c +176 -194
- data/vendor/libgit2/src/config.h +20 -8
- data/vendor/libgit2/src/config_cache.c +35 -41
- data/vendor/libgit2/src/config_file.c +753 -439
- data/vendor/libgit2/src/config_file.h +73 -0
- data/vendor/libgit2/src/config_parse.c +63 -114
- data/vendor/libgit2/src/config_parse.h +16 -17
- data/vendor/libgit2/src/crlf.c +190 -219
- data/vendor/libgit2/src/delta.c +18 -25
- data/vendor/libgit2/src/describe.c +41 -42
- data/vendor/libgit2/src/diff.c +68 -53
- data/vendor/libgit2/src/diff.h +1 -2
- data/vendor/libgit2/src/diff_driver.c +49 -47
- data/vendor/libgit2/src/diff_file.c +17 -19
- data/vendor/libgit2/src/diff_file.h +1 -1
- data/vendor/libgit2/src/diff_generate.c +106 -162
- data/vendor/libgit2/src/diff_generate.h +3 -3
- data/vendor/libgit2/src/diff_parse.c +4 -4
- data/vendor/libgit2/src/diff_print.c +30 -42
- data/vendor/libgit2/src/diff_stats.c +7 -22
- data/vendor/libgit2/src/diff_tform.c +16 -16
- data/vendor/libgit2/src/diff_xdiff.c +3 -15
- data/vendor/libgit2/src/errors.c +39 -51
- data/vendor/libgit2/src/features.h.in +3 -11
- data/vendor/libgit2/src/fetch.c +5 -10
- data/vendor/libgit2/src/fetchhead.c +17 -17
- data/vendor/libgit2/src/filebuf.c +36 -32
- data/vendor/libgit2/src/filebuf.h +2 -2
- data/vendor/libgit2/src/{futils.c → fileops.c} +73 -80
- data/vendor/libgit2/src/{futils.h → fileops.h} +6 -6
- data/vendor/libgit2/src/filter.c +38 -46
- data/vendor/libgit2/src/filter.h +10 -0
- data/vendor/libgit2/src/fnmatch.c +248 -0
- data/vendor/libgit2/src/fnmatch.h +48 -0
- data/vendor/libgit2/src/global.c +63 -48
- data/vendor/libgit2/src/global.h +2 -0
- data/vendor/libgit2/src/hash.c +0 -61
- data/vendor/libgit2/src/hash.h +19 -20
- data/vendor/libgit2/src/hash/hash_collisiondetect.h +47 -0
- data/vendor/libgit2/src/hash/{sha1/common_crypto.c → hash_common_crypto.h} +17 -17
- data/vendor/libgit2/src/hash/{sha1/generic.c → hash_generic.c} +10 -22
- data/vendor/libgit2/src/hash/{sha1/generic.h → hash_generic.h} +10 -4
- data/vendor/libgit2/src/hash/hash_openssl.h +59 -0
- data/vendor/libgit2/src/hash/{sha1/win32.c → hash_win32.c} +37 -47
- 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 +5 -5
- data/vendor/libgit2/src/idxmap.c +61 -107
- data/vendor/libgit2/src/idxmap.h +31 -153
- data/vendor/libgit2/src/ignore.c +47 -43
- data/vendor/libgit2/src/index.c +232 -337
- data/vendor/libgit2/src/index.h +1 -17
- data/vendor/libgit2/src/indexer.c +175 -346
- data/vendor/libgit2/src/integer.h +26 -71
- data/vendor/libgit2/src/iterator.c +70 -142
- data/vendor/libgit2/src/iterator.h +0 -15
- data/vendor/libgit2/src/khash.h +1 -3
- data/vendor/libgit2/src/map.h +1 -1
- data/vendor/libgit2/src/merge.c +100 -144
- data/vendor/libgit2/src/merge_driver.c +11 -11
- data/vendor/libgit2/src/merge_file.c +2 -2
- data/vendor/libgit2/src/mwindow.c +29 -24
- data/vendor/libgit2/src/mwindow.h +4 -4
- data/vendor/libgit2/src/netops.c +156 -55
- data/vendor/libgit2/src/netops.h +23 -3
- data/vendor/libgit2/src/notes.c +11 -16
- data/vendor/libgit2/src/object.c +69 -120
- data/vendor/libgit2/src/object.h +9 -22
- data/vendor/libgit2/src/object_api.c +8 -8
- data/vendor/libgit2/src/odb.c +93 -116
- data/vendor/libgit2/src/odb.h +7 -8
- data/vendor/libgit2/src/odb_loose.c +55 -62
- data/vendor/libgit2/src/odb_mempack.c +34 -21
- data/vendor/libgit2/src/odb_pack.c +14 -18
- data/vendor/libgit2/src/offmap.c +35 -53
- data/vendor/libgit2/src/offmap.h +21 -108
- data/vendor/libgit2/src/oid.c +7 -12
- data/vendor/libgit2/src/oidmap.c +47 -49
- data/vendor/libgit2/src/oidmap.h +24 -101
- data/vendor/libgit2/src/pack-objects.c +87 -88
- data/vendor/libgit2/src/pack-objects.h +8 -2
- data/vendor/libgit2/src/pack.c +101 -99
- data/vendor/libgit2/src/pack.h +19 -17
- data/vendor/libgit2/src/parse.c +0 -10
- data/vendor/libgit2/src/parse.h +3 -3
- data/vendor/libgit2/src/patch.c +4 -4
- data/vendor/libgit2/src/patch_generate.c +20 -20
- data/vendor/libgit2/src/patch_parse.c +63 -151
- data/vendor/libgit2/src/path.c +104 -117
- data/vendor/libgit2/src/path.h +71 -3
- data/vendor/libgit2/src/pathspec.c +19 -19
- data/vendor/libgit2/src/pool.c +22 -26
- data/vendor/libgit2/src/pool.h +7 -7
- data/vendor/libgit2/src/posix.c +10 -10
- data/vendor/libgit2/src/posix.h +1 -12
- data/vendor/libgit2/src/proxy.c +3 -8
- data/vendor/libgit2/src/push.c +31 -37
- data/vendor/libgit2/src/push.h +1 -2
- data/vendor/libgit2/src/rebase.c +59 -115
- data/vendor/libgit2/src/refdb.c +3 -15
- data/vendor/libgit2/src/refdb_fs.c +254 -381
- data/vendor/libgit2/src/reflog.c +15 -13
- data/vendor/libgit2/src/refs.c +88 -118
- data/vendor/libgit2/src/refs.h +3 -5
- data/vendor/libgit2/src/refspec.c +37 -56
- data/vendor/libgit2/src/refspec.h +1 -1
- data/vendor/libgit2/src/remote.c +215 -266
- data/vendor/libgit2/src/remote.h +2 -11
- data/vendor/libgit2/src/repository.c +225 -280
- data/vendor/libgit2/src/repository.h +40 -52
- data/vendor/libgit2/src/reset.c +8 -8
- data/vendor/libgit2/src/revert.c +9 -14
- data/vendor/libgit2/src/revparse.c +48 -47
- data/vendor/libgit2/src/revwalk.c +57 -120
- data/vendor/libgit2/src/revwalk.h +1 -22
- data/vendor/libgit2/src/settings.c +10 -47
- data/vendor/libgit2/src/signature.c +11 -11
- data/vendor/libgit2/src/sortedcache.c +36 -22
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +99 -125
- data/vendor/libgit2/src/status.c +22 -28
- data/vendor/libgit2/src/stream.h +2 -17
- data/vendor/libgit2/src/streams/curl.c +385 -0
- data/vendor/libgit2/src/{allocators/stdalloc.h → streams/curl.h} +5 -5
- data/vendor/libgit2/src/streams/openssl.c +114 -224
- data/vendor/libgit2/src/streams/openssl.h +108 -4
- data/vendor/libgit2/src/streams/socket.c +30 -55
- data/vendor/libgit2/src/streams/stransport.c +32 -57
- data/vendor/libgit2/src/streams/stransport.h +0 -5
- data/vendor/libgit2/src/streams/tls.c +19 -50
- data/vendor/libgit2/src/streams/tls.h +4 -12
- data/vendor/libgit2/src/strmap.c +74 -47
- data/vendor/libgit2/src/strmap.h +33 -108
- data/vendor/libgit2/src/submodule.c +216 -272
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +19 -29
- data/vendor/libgit2/src/tag.c +28 -41
- data/vendor/libgit2/src/tag.h +1 -2
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +3 -3
- data/vendor/libgit2/src/trailer.c +38 -52
- data/vendor/libgit2/src/transaction.c +29 -30
- data/vendor/libgit2/src/transport.c +5 -5
- data/vendor/libgit2/src/transports/auth.c +11 -15
- data/vendor/libgit2/src/transports/auth.h +3 -10
- data/vendor/libgit2/src/transports/auth_negotiate.c +18 -33
- data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
- data/vendor/libgit2/src/transports/cred.c +24 -24
- data/vendor/libgit2/src/{allocators/win32_crtdbg.h → transports/cred.h} +4 -5
- data/vendor/libgit2/src/transports/git.c +31 -26
- data/vendor/libgit2/src/transports/http.c +348 -881
- data/vendor/libgit2/src/transports/http.h +0 -2
- data/vendor/libgit2/src/transports/local.c +35 -35
- data/vendor/libgit2/src/transports/smart.c +47 -70
- data/vendor/libgit2/src/transports/smart.h +4 -3
- data/vendor/libgit2/src/transports/smart_pkt.c +40 -43
- data/vendor/libgit2/src/transports/smart_protocol.c +116 -96
- data/vendor/libgit2/src/transports/ssh.c +66 -77
- data/vendor/libgit2/src/transports/winhttp.c +314 -318
- data/vendor/libgit2/src/tree-cache.c +12 -19
- data/vendor/libgit2/src/tree.c +142 -103
- data/vendor/libgit2/src/tree.h +12 -1
- data/vendor/libgit2/src/unix/map.c +3 -3
- data/vendor/libgit2/src/unix/posix.h +11 -1
- data/vendor/libgit2/src/userdiff.h +1 -3
- data/vendor/libgit2/src/util.c +56 -70
- data/vendor/libgit2/src/util.h +156 -28
- data/vendor/libgit2/src/vector.c +4 -4
- data/vendor/libgit2/src/win32/dir.c +3 -3
- data/vendor/libgit2/src/win32/findfile.c +3 -3
- data/vendor/libgit2/src/win32/map.c +11 -9
- data/vendor/libgit2/src/win32/msvc-compat.h +0 -6
- data/vendor/libgit2/src/win32/path_w32.c +9 -113
- data/vendor/libgit2/src/win32/path_w32.h +29 -18
- data/vendor/libgit2/src/win32/posix.h +4 -1
- data/vendor/libgit2/src/win32/posix_w32.c +45 -70
- 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 +5 -9
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -3
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +75 -26
- data/vendor/libgit2/src/win32/w32_stack.c +11 -6
- data/vendor/libgit2/src/win32/w32_stack.h +3 -3
- data/vendor/libgit2/src/win32/w32_util.c +64 -27
- data/vendor/libgit2/src/win32/w32_util.h +49 -5
- data/vendor/libgit2/src/worktree.c +60 -95
- data/vendor/libgit2/src/worktree.h +0 -2
- data/vendor/libgit2/src/xdiff/xdiffi.c +5 -7
- data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
- data/vendor/libgit2/src/xdiff/xmerge.c +15 -27
- data/vendor/libgit2/src/xdiff/xpatience.c +0 -3
- data/vendor/libgit2/src/zstream.c +4 -4
- metadata +33 -122
- 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/FindmbedTLS.cmake +0 -93
- 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/deps/winhttp/COPYING.GPL +0 -993
- data/vendor/libgit2/deps/winhttp/COPYING.LGPL +0 -502
- data/vendor/libgit2/deps/zlib/COPYING +0 -27
- data/vendor/libgit2/include/git2/apply.h +0 -149
- data/vendor/libgit2/include/git2/cert.h +0 -135
- data/vendor/libgit2/include/git2/cred.h +0 -308
- data/vendor/libgit2/include/git2/deprecated.h +0 -493
- data/vendor/libgit2/include/git2/mailmap.h +0 -115
- data/vendor/libgit2/include/git2/sys/alloc.h +0 -101
- data/vendor/libgit2/include/git2/sys/cred.h +0 -90
- data/vendor/libgit2/include/git2/sys/path.h +0 -64
- data/vendor/libgit2/src/alloc.c +0 -43
- data/vendor/libgit2/src/alloc.h +0 -40
- data/vendor/libgit2/src/allocators/stdalloc.c +0 -119
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
- data/vendor/libgit2/src/config_backend.h +0 -96
- data/vendor/libgit2/src/config_entries.c +0 -229
- data/vendor/libgit2/src/config_entries.h +0 -24
- data/vendor/libgit2/src/config_mem.c +0 -220
- 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.c +0 -48
- 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/mbedtls.c +0 -46
- data/vendor/libgit2/src/hash/sha1/mbedtls.h +0 -19
- data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
- data/vendor/libgit2/src/hash/sha1/openssl.h +0 -19
- data/vendor/libgit2/src/mailmap.c +0 -485
- data/vendor/libgit2/src/mailmap.h +0 -35
- data/vendor/libgit2/src/net.c +0 -184
- data/vendor/libgit2/src/net.h +0 -36
- data/vendor/libgit2/src/reader.c +0 -265
- data/vendor/libgit2/src/reader.h +0 -107
- data/vendor/libgit2/src/regexp.c +0 -221
- data/vendor/libgit2/src/regexp.h +0 -97
- data/vendor/libgit2/src/streams/mbedtls.c +0 -483
- data/vendor/libgit2/src/streams/mbedtls.h +0 -23
- data/vendor/libgit2/src/streams/registry.c +0 -118
- data/vendor/libgit2/src/streams/registry.h +0 -19
- 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
@@ -120,14 +120,12 @@ static int read_tree_internal(git_tree_cache **out,
|
|
120
120
|
|
121
121
|
/* Parse children: */
|
122
122
|
if (tree->children_count > 0) {
|
123
|
-
|
123
|
+
unsigned int i;
|
124
124
|
|
125
|
-
|
125
|
+
tree->children = git_pool_malloc(pool, tree->children_count * sizeof(git_tree_cache *));
|
126
|
+
GITERR_CHECK_ALLOC(tree->children);
|
126
127
|
|
127
|
-
tree->children
|
128
|
-
GIT_ERROR_CHECK_ALLOC(tree->children);
|
129
|
-
|
130
|
-
memset(tree->children, 0x0, bufsize);
|
128
|
+
memset(tree->children, 0x0, tree->children_count * sizeof(git_tree_cache *));
|
131
129
|
|
132
130
|
for (i = 0; i < tree->children_count; ++i) {
|
133
131
|
if (read_tree_internal(&tree->children[i], &buffer, buffer_end, pool) < 0)
|
@@ -140,7 +138,7 @@ static int read_tree_internal(git_tree_cache **out,
|
|
140
138
|
return 0;
|
141
139
|
|
142
140
|
corrupted:
|
143
|
-
|
141
|
+
giterr_set(GITERR_INDEX, "corrupted TREE extension in index");
|
144
142
|
return -1;
|
145
143
|
}
|
146
144
|
|
@@ -152,7 +150,7 @@ int git_tree_cache_read(git_tree_cache **tree, const char *buffer, size_t buffer
|
|
152
150
|
return -1;
|
153
151
|
|
154
152
|
if (buffer < buffer_end) {
|
155
|
-
|
153
|
+
giterr_set(GITERR_INDEX, "corrupted TREE extension in index (unexpected trailing data)");
|
156
154
|
return -1;
|
157
155
|
}
|
158
156
|
|
@@ -162,7 +160,7 @@ int git_tree_cache_read(git_tree_cache **tree, const char *buffer, size_t buffer
|
|
162
160
|
static int read_tree_recursive(git_tree_cache *cache, const git_tree *tree, git_pool *pool)
|
163
161
|
{
|
164
162
|
git_repository *repo;
|
165
|
-
size_t i, j, nentries, ntrees
|
163
|
+
size_t i, j, nentries, ntrees;
|
166
164
|
int error;
|
167
165
|
|
168
166
|
repo = git_tree_owner(tree);
|
@@ -184,11 +182,9 @@ static int read_tree_recursive(git_tree_cache *cache, const git_tree *tree, git_
|
|
184
182
|
ntrees++;
|
185
183
|
}
|
186
184
|
|
187
|
-
GIT_ERROR_CHECK_ALLOC_MULTIPLY(&alloc_size, ntrees, sizeof(git_tree_cache *));
|
188
|
-
|
189
185
|
cache->children_count = ntrees;
|
190
|
-
cache->children = git_pool_mallocz(pool,
|
191
|
-
|
186
|
+
cache->children = git_pool_mallocz(pool, ntrees * sizeof(git_tree_cache *));
|
187
|
+
GITERR_CHECK_ALLOC(cache->children);
|
192
188
|
|
193
189
|
j = 0;
|
194
190
|
for (i = 0; i < nentries; i++) {
|
@@ -236,15 +232,12 @@ int git_tree_cache_read_tree(git_tree_cache **out, const git_tree *tree, git_poo
|
|
236
232
|
|
237
233
|
int git_tree_cache_new(git_tree_cache **out, const char *name, git_pool *pool)
|
238
234
|
{
|
239
|
-
size_t name_len
|
235
|
+
size_t name_len;
|
240
236
|
git_tree_cache *tree;
|
241
237
|
|
242
238
|
name_len = strlen(name);
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
tree = git_pool_malloc(pool, alloc_size);
|
247
|
-
GIT_ERROR_CHECK_ALLOC(tree);
|
239
|
+
tree = git_pool_malloc(pool, sizeof(git_tree_cache) + name_len + 1);
|
240
|
+
GITERR_CHECK_ALLOC(tree);
|
248
241
|
|
249
242
|
memset(tree, 0x0, sizeof(git_tree_cache));
|
250
243
|
/* NUL-terminated tree name */
|
data/vendor/libgit2/src/tree.c
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
#include "commit.h"
|
11
11
|
#include "git2/repository.h"
|
12
12
|
#include "git2/object.h"
|
13
|
-
#include "
|
13
|
+
#include "fileops.h"
|
14
14
|
#include "tree-cache.h"
|
15
15
|
#include "index.h"
|
16
16
|
|
@@ -18,7 +18,7 @@
|
|
18
18
|
#define MAX_FILEMODE_BYTES 6
|
19
19
|
|
20
20
|
#define TREE_ENTRY_CHECK_NAMELEN(n) \
|
21
|
-
if (n > UINT16_MAX) {
|
21
|
+
if (n > UINT16_MAX) { giterr_set(GITERR_INVALID, "tree entry path too long"); }
|
22
22
|
|
23
23
|
static bool valid_filemode(const int filemode)
|
24
24
|
{
|
@@ -74,6 +74,14 @@ int git_tree_entry_cmp(const git_tree_entry *e1, const git_tree_entry *e2)
|
|
74
74
|
return entry_sort_cmp(e1, e2);
|
75
75
|
}
|
76
76
|
|
77
|
+
int git_tree_entry_icmp(const git_tree_entry *e1, const git_tree_entry *e2)
|
78
|
+
{
|
79
|
+
return git_path_cmp(
|
80
|
+
e1->filename, e1->filename_len, git_tree_entry__is_tree(e1),
|
81
|
+
e2->filename, e2->filename_len, git_tree_entry__is_tree(e2),
|
82
|
+
git__strncasecmp);
|
83
|
+
}
|
84
|
+
|
77
85
|
/**
|
78
86
|
* Allocate a new self-contained entry, with enough space after it to
|
79
87
|
* store the filename and the id.
|
@@ -271,16 +279,16 @@ const git_oid *git_tree_entry_id(const git_tree_entry *entry)
|
|
271
279
|
return entry->oid;
|
272
280
|
}
|
273
281
|
|
274
|
-
|
282
|
+
git_otype git_tree_entry_type(const git_tree_entry *entry)
|
275
283
|
{
|
276
284
|
assert(entry);
|
277
285
|
|
278
286
|
if (S_ISGITLINK(entry->attr))
|
279
|
-
return
|
287
|
+
return GIT_OBJ_COMMIT;
|
280
288
|
else if (S_ISDIR(entry->attr))
|
281
|
-
return
|
289
|
+
return GIT_OBJ_TREE;
|
282
290
|
else
|
283
|
-
return
|
291
|
+
return GIT_OBJ_BLOB;
|
284
292
|
}
|
285
293
|
|
286
294
|
int git_tree_entry_to_object(
|
@@ -289,7 +297,7 @@ int git_tree_entry_to_object(
|
|
289
297
|
const git_tree_entry *entry)
|
290
298
|
{
|
291
299
|
assert(entry && object_out);
|
292
|
-
return git_object_lookup(object_out, repo, entry->oid,
|
300
|
+
return git_object_lookup(object_out, repo, entry->oid, GIT_OBJ_ANY);
|
293
301
|
}
|
294
302
|
|
295
303
|
static const git_tree_entry *entry_fromname(
|
@@ -334,25 +342,60 @@ const git_tree_entry *git_tree_entry_byid(
|
|
334
342
|
return NULL;
|
335
343
|
}
|
336
344
|
|
345
|
+
int git_tree__prefix_position(const git_tree *tree, const char *path)
|
346
|
+
{
|
347
|
+
struct tree_key_search ksearch;
|
348
|
+
size_t at_pos, path_len;
|
349
|
+
|
350
|
+
if (!path)
|
351
|
+
return 0;
|
352
|
+
|
353
|
+
path_len = strlen(path);
|
354
|
+
TREE_ENTRY_CHECK_NAMELEN(path_len);
|
355
|
+
|
356
|
+
ksearch.filename = path;
|
357
|
+
ksearch.filename_len = (uint16_t)path_len;
|
358
|
+
|
359
|
+
/* Find tree entry with appropriate prefix */
|
360
|
+
git_array_search(
|
361
|
+
&at_pos, tree->entries, &homing_search_cmp, &ksearch);
|
362
|
+
|
363
|
+
for (; at_pos < tree->entries.size; ++at_pos) {
|
364
|
+
const git_tree_entry *entry = git_array_get(tree->entries, at_pos);
|
365
|
+
if (homing_search_cmp(&ksearch, entry) < 0)
|
366
|
+
break;
|
367
|
+
}
|
368
|
+
|
369
|
+
for (; at_pos > 0; --at_pos) {
|
370
|
+
const git_tree_entry *entry =
|
371
|
+
git_array_get(tree->entries, at_pos - 1);
|
372
|
+
|
373
|
+
if (homing_search_cmp(&ksearch, entry) > 0)
|
374
|
+
break;
|
375
|
+
}
|
376
|
+
|
377
|
+
return (int)at_pos;
|
378
|
+
}
|
379
|
+
|
337
380
|
size_t git_tree_entrycount(const git_tree *tree)
|
338
381
|
{
|
339
382
|
assert(tree);
|
340
383
|
return tree->entries.size;
|
341
384
|
}
|
342
385
|
|
343
|
-
|
386
|
+
unsigned int git_treebuilder_entrycount(git_treebuilder *bld)
|
344
387
|
{
|
345
388
|
assert(bld);
|
346
389
|
|
347
|
-
return
|
390
|
+
return git_strmap_num_entries(bld->map);
|
348
391
|
}
|
349
392
|
|
350
393
|
static int tree_error(const char *str, const char *path)
|
351
394
|
{
|
352
395
|
if (path)
|
353
|
-
|
396
|
+
giterr_set(GITERR_TREE, "%s - %s", str, path);
|
354
397
|
else
|
355
|
-
|
398
|
+
giterr_set(GITERR_TREE, "%s", str);
|
356
399
|
return -1;
|
357
400
|
}
|
358
401
|
|
@@ -375,18 +418,20 @@ static int parse_mode(uint16_t *mode_out, const char *buffer, size_t buffer_len,
|
|
375
418
|
return 0;
|
376
419
|
}
|
377
420
|
|
378
|
-
int
|
421
|
+
int git_tree__parse(void *_tree, git_odb_object *odb_obj)
|
379
422
|
{
|
380
423
|
git_tree *tree = _tree;
|
381
424
|
const char *buffer;
|
382
425
|
const char *buffer_end;
|
383
426
|
|
384
|
-
|
385
|
-
|
427
|
+
if (git_odb_object_dup(&tree->odb_obj, odb_obj) < 0)
|
428
|
+
return -1;
|
429
|
+
|
430
|
+
buffer = git_odb_object_data(tree->odb_obj);
|
431
|
+
buffer_end = buffer + git_odb_object_size(tree->odb_obj);
|
386
432
|
|
387
|
-
tree->odb_obj = NULL;
|
388
433
|
git_array_init_to_size(tree->entries, DEFAULT_TREE_SIZE);
|
389
|
-
|
434
|
+
GITERR_CHECK_ARRAY(tree->entries);
|
390
435
|
|
391
436
|
while (buffer < buffer_end) {
|
392
437
|
git_tree_entry *entry;
|
@@ -403,7 +448,7 @@ int git_tree__parse_raw(void *_tree, const char *data, size_t size)
|
|
403
448
|
if ((nul = memchr(buffer, 0, buffer_end - buffer)) == NULL)
|
404
449
|
return tree_error("failed to parse tree: object is corrupted", NULL);
|
405
450
|
|
406
|
-
if ((filename_len = nul - buffer) == 0
|
451
|
+
if ((filename_len = nul - buffer) == 0)
|
407
452
|
return tree_error("failed to parse tree: can't parse filename", NULL);
|
408
453
|
|
409
454
|
if ((buffer_end - (nul + 1)) < GIT_OID_RAWSZ)
|
@@ -412,10 +457,10 @@ int git_tree__parse_raw(void *_tree, const char *data, size_t size)
|
|
412
457
|
/* Allocate the entry */
|
413
458
|
{
|
414
459
|
entry = git_array_alloc(tree->entries);
|
415
|
-
|
460
|
+
GITERR_CHECK_ALLOC(entry);
|
416
461
|
|
417
462
|
entry->attr = attr;
|
418
|
-
entry->filename_len =
|
463
|
+
entry->filename_len = filename_len;
|
419
464
|
entry->filename = buffer;
|
420
465
|
entry->oid = (git_oid *) ((char *) buffer + filename_len + 1);
|
421
466
|
}
|
@@ -427,21 +472,6 @@ int git_tree__parse_raw(void *_tree, const char *data, size_t size)
|
|
427
472
|
return 0;
|
428
473
|
}
|
429
474
|
|
430
|
-
int git_tree__parse(void *_tree, git_odb_object *odb_obj)
|
431
|
-
{
|
432
|
-
git_tree *tree = _tree;
|
433
|
-
|
434
|
-
if ((git_tree__parse_raw(tree,
|
435
|
-
git_odb_object_data(odb_obj),
|
436
|
-
git_odb_object_size(odb_obj))) < 0)
|
437
|
-
return -1;
|
438
|
-
|
439
|
-
if (git_odb_object_dup(&tree->odb_obj, odb_obj) < 0)
|
440
|
-
return -1;
|
441
|
-
|
442
|
-
return 0;
|
443
|
-
}
|
444
|
-
|
445
475
|
static size_t find_next_dir(const char *dirname, git_index *index, size_t start)
|
446
476
|
{
|
447
477
|
size_t dirlen, i, entries = git_index_entrycount(index);
|
@@ -459,36 +489,6 @@ static size_t find_next_dir(const char *dirname, git_index *index, size_t start)
|
|
459
489
|
return i;
|
460
490
|
}
|
461
491
|
|
462
|
-
static git_object_t otype_from_mode(git_filemode_t filemode)
|
463
|
-
{
|
464
|
-
switch (filemode) {
|
465
|
-
case GIT_FILEMODE_TREE:
|
466
|
-
return GIT_OBJECT_TREE;
|
467
|
-
case GIT_FILEMODE_COMMIT:
|
468
|
-
return GIT_OBJECT_COMMIT;
|
469
|
-
default:
|
470
|
-
return GIT_OBJECT_BLOB;
|
471
|
-
}
|
472
|
-
}
|
473
|
-
|
474
|
-
static int check_entry(git_repository *repo, const char *filename, const git_oid *id, git_filemode_t filemode)
|
475
|
-
{
|
476
|
-
if (!valid_filemode(filemode))
|
477
|
-
return tree_error("failed to insert entry: invalid filemode for file", filename);
|
478
|
-
|
479
|
-
if (!valid_entry_name(repo, filename))
|
480
|
-
return tree_error("failed to insert entry: invalid name for a tree entry", filename);
|
481
|
-
|
482
|
-
if (git_oid_is_zero(id))
|
483
|
-
return tree_error("failed to insert entry: invalid null OID", filename);
|
484
|
-
|
485
|
-
if (filemode != GIT_FILEMODE_COMMIT &&
|
486
|
-
!git_object__is_valid(repo, id, otype_from_mode(filemode)))
|
487
|
-
return tree_error("failed to insert entry: invalid object specified", filename);
|
488
|
-
|
489
|
-
return 0;
|
490
|
-
}
|
491
|
-
|
492
492
|
static int append_entry(
|
493
493
|
git_treebuilder *bld,
|
494
494
|
const char *filename,
|
@@ -499,17 +499,21 @@ static int append_entry(
|
|
499
499
|
git_tree_entry *entry;
|
500
500
|
int error = 0;
|
501
501
|
|
502
|
-
if (validate && (
|
503
|
-
return
|
502
|
+
if (validate && !valid_entry_name(bld->repo, filename))
|
503
|
+
return tree_error("failed to insert entry: invalid name for a tree entry", filename);
|
504
|
+
|
505
|
+
if (validate && git_oid_iszero(id))
|
506
|
+
return tree_error("failed to insert entry: invalid null OID for a tree entry", filename);
|
504
507
|
|
505
508
|
entry = alloc_entry(filename, strlen(filename), id);
|
506
|
-
|
509
|
+
GITERR_CHECK_ALLOC(entry);
|
507
510
|
|
508
511
|
entry->attr = (uint16_t)filemode;
|
509
512
|
|
510
|
-
|
513
|
+
git_strmap_insert(bld->map, entry->filename, entry, &error);
|
514
|
+
if (error < 0) {
|
511
515
|
git_tree_entry_free(entry);
|
512
|
-
|
516
|
+
giterr_set(GITERR_TREE, "failed to append entry %s to the tree builder", filename);
|
513
517
|
return -1;
|
514
518
|
}
|
515
519
|
|
@@ -572,7 +576,7 @@ static int write_tree(
|
|
572
576
|
char *subdir, *last_comp;
|
573
577
|
|
574
578
|
subdir = git__strndup(entry->path, next_slash - entry->path);
|
575
|
-
|
579
|
+
GITERR_CHECK_ALLOC(subdir);
|
576
580
|
|
577
581
|
/* Write out the subtree */
|
578
582
|
written = write_tree(&sub_oid, repo, index, subdir, i, shared_buf);
|
@@ -629,7 +633,7 @@ int git_tree__write_index(
|
|
629
633
|
assert(oid && index && repo);
|
630
634
|
|
631
635
|
if (git_index_has_conflicts(index)) {
|
632
|
-
|
636
|
+
giterr_set(GITERR_INDEX,
|
633
637
|
"cannot create a tree from a not fully merged index.");
|
634
638
|
return GIT_EUNMERGED;
|
635
639
|
}
|
@@ -650,7 +654,7 @@ int git_tree__write_index(
|
|
650
654
|
}
|
651
655
|
|
652
656
|
ret = write_tree(oid, repo, index, "", 0, &shared_buf);
|
653
|
-
|
657
|
+
git_buf_free(&shared_buf);
|
654
658
|
|
655
659
|
if (old_ignore_case)
|
656
660
|
git_index__set_ignore_case(index, true);
|
@@ -683,11 +687,11 @@ int git_treebuilder_new(
|
|
683
687
|
assert(builder_p && repo);
|
684
688
|
|
685
689
|
bld = git__calloc(1, sizeof(git_treebuilder));
|
686
|
-
|
690
|
+
GITERR_CHECK_ALLOC(bld);
|
687
691
|
|
688
692
|
bld->repo = repo;
|
689
693
|
|
690
|
-
if (
|
694
|
+
if (git_strmap_alloc(&bld->map) < 0) {
|
691
695
|
git__free(bld);
|
692
696
|
return -1;
|
693
697
|
}
|
@@ -713,6 +717,18 @@ on_error:
|
|
713
717
|
return -1;
|
714
718
|
}
|
715
719
|
|
720
|
+
static git_otype otype_from_mode(git_filemode_t filemode)
|
721
|
+
{
|
722
|
+
switch (filemode) {
|
723
|
+
case GIT_FILEMODE_TREE:
|
724
|
+
return GIT_OBJ_TREE;
|
725
|
+
case GIT_FILEMODE_COMMIT:
|
726
|
+
return GIT_OBJ_COMMIT;
|
727
|
+
default:
|
728
|
+
return GIT_OBJ_BLOB;
|
729
|
+
}
|
730
|
+
}
|
731
|
+
|
716
732
|
int git_treebuilder_insert(
|
717
733
|
const git_tree_entry **entry_out,
|
718
734
|
git_treebuilder *bld,
|
@@ -722,21 +738,36 @@ int git_treebuilder_insert(
|
|
722
738
|
{
|
723
739
|
git_tree_entry *entry;
|
724
740
|
int error;
|
741
|
+
git_strmap_iter pos;
|
725
742
|
|
726
743
|
assert(bld && id && filename);
|
727
744
|
|
728
|
-
if ((
|
729
|
-
return
|
745
|
+
if (!valid_filemode(filemode))
|
746
|
+
return tree_error("failed to insert entry: invalid filemode for file", filename);
|
747
|
+
|
748
|
+
if (!valid_entry_name(bld->repo, filename))
|
749
|
+
return tree_error("failed to insert entry: invalid name for a tree entry", filename);
|
730
750
|
|
731
|
-
if ((
|
751
|
+
if (git_oid_iszero(id))
|
752
|
+
return tree_error("failed to insert entry: invalid null OID", filename);
|
753
|
+
|
754
|
+
if (filemode != GIT_FILEMODE_COMMIT &&
|
755
|
+
!git_object__is_valid(bld->repo, id, otype_from_mode(filemode)))
|
756
|
+
return tree_error("failed to insert entry: invalid object specified", filename);
|
757
|
+
|
758
|
+
pos = git_strmap_lookup_index(bld->map, filename);
|
759
|
+
if (git_strmap_valid_index(bld->map, pos)) {
|
760
|
+
entry = git_strmap_value_at(bld->map, pos);
|
732
761
|
git_oid_cpy((git_oid *) entry->oid, id);
|
733
762
|
} else {
|
734
763
|
entry = alloc_entry(filename, strlen(filename), id);
|
735
|
-
|
764
|
+
GITERR_CHECK_ALLOC(entry);
|
765
|
+
|
766
|
+
git_strmap_insert(bld->map, entry->filename, entry, &error);
|
736
767
|
|
737
|
-
if (
|
768
|
+
if (error < 0) {
|
738
769
|
git_tree_entry_free(entry);
|
739
|
-
|
770
|
+
giterr_set(GITERR_TREE, "failed to insert %s", filename);
|
740
771
|
return -1;
|
741
772
|
}
|
742
773
|
}
|
@@ -751,8 +782,16 @@ int git_treebuilder_insert(
|
|
751
782
|
|
752
783
|
static git_tree_entry *treebuilder_get(git_treebuilder *bld, const char *filename)
|
753
784
|
{
|
785
|
+
git_tree_entry *entry = NULL;
|
786
|
+
git_strmap_iter pos;
|
787
|
+
|
754
788
|
assert(bld && filename);
|
755
|
-
|
789
|
+
|
790
|
+
pos = git_strmap_lookup_index(bld->map, filename);
|
791
|
+
if (git_strmap_valid_index(bld->map, pos))
|
792
|
+
entry = git_strmap_value_at(bld->map, pos);
|
793
|
+
|
794
|
+
return entry;
|
756
795
|
}
|
757
796
|
|
758
797
|
const git_tree_entry *git_treebuilder_get(git_treebuilder *bld, const char *filename)
|
@@ -780,7 +819,7 @@ int git_treebuilder_write(git_oid *oid, git_treebuilder *bld)
|
|
780
819
|
|
781
820
|
error = git_treebuilder_write_with_buffer(oid, bld, &buffer);
|
782
821
|
|
783
|
-
|
822
|
+
git_buf_free(&buffer);
|
784
823
|
return error;
|
785
824
|
}
|
786
825
|
|
@@ -797,7 +836,7 @@ int git_treebuilder_write_with_buffer(git_oid *oid, git_treebuilder *bld, git_bu
|
|
797
836
|
|
798
837
|
git_buf_clear(tree);
|
799
838
|
|
800
|
-
entrycount =
|
839
|
+
entrycount = git_strmap_num_entries(bld->map);
|
801
840
|
if ((error = git_vector_init(&entries, entrycount, entry_sort_cmp)) < 0)
|
802
841
|
goto out;
|
803
842
|
|
@@ -826,7 +865,7 @@ int git_treebuilder_write_with_buffer(git_oid *oid, git_treebuilder *bld, git_bu
|
|
826
865
|
}
|
827
866
|
|
828
867
|
if ((error = git_repository_odb__weakptr(&odb, bld->repo)) == 0)
|
829
|
-
error = git_odb_write(oid, odb, tree->ptr, tree->size,
|
868
|
+
error = git_odb_write(oid, odb, tree->ptr, tree->size, GIT_OBJ_TREE);
|
830
869
|
|
831
870
|
out:
|
832
871
|
git_vector_free(&entries);
|
@@ -896,14 +935,14 @@ int git_tree_entry_bypath(
|
|
896
935
|
filename_len = subpath_len(path);
|
897
936
|
|
898
937
|
if (filename_len == 0) {
|
899
|
-
|
938
|
+
giterr_set(GITERR_TREE, "invalid tree path given");
|
900
939
|
return GIT_ENOTFOUND;
|
901
940
|
}
|
902
941
|
|
903
942
|
entry = entry_fromname(root, path, filename_len);
|
904
943
|
|
905
944
|
if (entry == NULL) {
|
906
|
-
|
945
|
+
giterr_set(GITERR_TREE,
|
907
946
|
"the path '%.*s' does not exist in the given tree", (int) filename_len, path);
|
908
947
|
return GIT_ENOTFOUND;
|
909
948
|
}
|
@@ -913,7 +952,7 @@ int git_tree_entry_bypath(
|
|
913
952
|
/* If there are more components in the path...
|
914
953
|
* then this entry *must* be a tree */
|
915
954
|
if (!git_tree_entry__is_tree(entry)) {
|
916
|
-
|
955
|
+
giterr_set(GITERR_TREE,
|
917
956
|
"the path '%.*s' exists but is not a tree", (int) filename_len, path);
|
918
957
|
return GIT_ENOTFOUND;
|
919
958
|
}
|
@@ -958,7 +997,7 @@ static int tree_walk(
|
|
958
997
|
if (preorder) {
|
959
998
|
error = callback(path->ptr, entry, payload);
|
960
999
|
if (error < 0) { /* negative value stops iteration */
|
961
|
-
|
1000
|
+
giterr_set_after_callback_function(error, "git_tree_walk");
|
962
1001
|
break;
|
963
1002
|
}
|
964
1003
|
if (error > 0) { /* positive value skips this entry */
|
@@ -994,7 +1033,7 @@ static int tree_walk(
|
|
994
1033
|
if (!preorder) {
|
995
1034
|
error = callback(path->ptr, entry, payload);
|
996
1035
|
if (error < 0) { /* negative value stops iteration */
|
997
|
-
|
1036
|
+
giterr_set_after_callback_function(error, "git_tree_walk");
|
998
1037
|
break;
|
999
1038
|
}
|
1000
1039
|
error = 0;
|
@@ -1014,14 +1053,14 @@ int git_tree_walk(
|
|
1014
1053
|
git_buf root_path = GIT_BUF_INIT;
|
1015
1054
|
|
1016
1055
|
if (mode != GIT_TREEWALK_POST && mode != GIT_TREEWALK_PRE) {
|
1017
|
-
|
1056
|
+
giterr_set(GITERR_INVALID, "invalid walking mode for tree walk");
|
1018
1057
|
return -1;
|
1019
1058
|
}
|
1020
1059
|
|
1021
1060
|
error = tree_walk(
|
1022
1061
|
tree, callback, &root_path, payload, (mode == GIT_TREEWALK_PRE));
|
1023
1062
|
|
1024
|
-
|
1063
|
+
git_buf_free(&root_path);
|
1025
1064
|
|
1026
1065
|
return error;
|
1027
1066
|
}
|
@@ -1038,7 +1077,7 @@ static int on_dup_entry(void **old, void *new)
|
|
1038
1077
|
{
|
1039
1078
|
GIT_UNUSED(old); GIT_UNUSED(new);
|
1040
1079
|
|
1041
|
-
|
1080
|
+
giterr_set(GITERR_TREE, "duplicate entries given for update");
|
1042
1081
|
return -1;
|
1043
1082
|
}
|
1044
1083
|
|
@@ -1107,14 +1146,14 @@ static int create_popped_tree(tree_stack_entry *current, tree_stack_entry *poppe
|
|
1107
1146
|
git_buf_puts(component, popped->name);
|
1108
1147
|
git__free(popped->name);
|
1109
1148
|
|
1110
|
-
|
1149
|
+
GITERR_CHECK_ALLOC(component->ptr);
|
1111
1150
|
|
1112
1151
|
/* Error out if this would create a D/F conflict in this update */
|
1113
1152
|
if (current->tree) {
|
1114
1153
|
const git_tree_entry *to_replace;
|
1115
1154
|
to_replace = git_tree_entry_byname(current->tree, component->ptr);
|
1116
|
-
if (to_replace && git_tree_entry_type(to_replace) !=
|
1117
|
-
|
1155
|
+
if (to_replace && git_tree_entry_type(to_replace) != GIT_OBJ_TREE) {
|
1156
|
+
giterr_set(GITERR_TREE, "D/F conflict when updating tree");
|
1118
1157
|
return -1;
|
1119
1158
|
}
|
1120
1159
|
}
|
@@ -1141,7 +1180,7 @@ int git_tree_create_updated(git_oid *out, git_repository *repo, git_tree *baseli
|
|
1141
1180
|
}
|
1142
1181
|
|
1143
1182
|
root_elem = git_array_alloc(stack);
|
1144
|
-
|
1183
|
+
GITERR_CHECK_ALLOC(root_elem);
|
1145
1184
|
memset(root_elem, 0, sizeof(*root_elem));
|
1146
1185
|
|
1147
1186
|
if (baseline && (error = git_tree_dup(&root_elem->tree, baseline)) < 0)
|
@@ -1190,14 +1229,14 @@ int git_tree_create_updated(git_oid *out, git_repository *repo, git_tree *baseli
|
|
1190
1229
|
if (!entry)
|
1191
1230
|
entry = treebuilder_get(last->bld, component.ptr);
|
1192
1231
|
|
1193
|
-
if (entry && git_tree_entry_type(entry) !=
|
1194
|
-
|
1232
|
+
if (entry && git_tree_entry_type(entry) != GIT_OBJ_TREE) {
|
1233
|
+
giterr_set(GITERR_TREE, "D/F conflict when updating tree");
|
1195
1234
|
error = -1;
|
1196
1235
|
goto cleanup;
|
1197
1236
|
}
|
1198
1237
|
|
1199
1238
|
new_entry = git_array_alloc(stack);
|
1200
|
-
|
1239
|
+
GITERR_CHECK_ALLOC(new_entry);
|
1201
1240
|
memset(new_entry, 0, sizeof(*new_entry));
|
1202
1241
|
|
1203
1242
|
new_entry->tree = NULL;
|
@@ -1208,7 +1247,7 @@ int git_tree_create_updated(git_oid *out, git_repository *repo, git_tree *baseli
|
|
1208
1247
|
goto cleanup;
|
1209
1248
|
|
1210
1249
|
new_entry->name = git__strdup(component.ptr);
|
1211
|
-
|
1250
|
+
GITERR_CHECK_ALLOC(new_entry->name);
|
1212
1251
|
|
1213
1252
|
/* Get to the start of the next component */
|
1214
1253
|
path += component.size + 1;
|
@@ -1224,7 +1263,7 @@ int git_tree_create_updated(git_oid *out, git_repository *repo, git_tree *baseli
|
|
1224
1263
|
const git_tree_entry *e = git_treebuilder_get(last->bld, basename);
|
1225
1264
|
if (e && git_tree_entry_type(e) != git_object__type_from_filemode(update->filemode)) {
|
1226
1265
|
git__free(basename);
|
1227
|
-
|
1266
|
+
giterr_set(GITERR_TREE, "cannot replace '%s' with '%s' at '%s'",
|
1228
1267
|
git_object_type2string(git_tree_entry_type(e)),
|
1229
1268
|
git_object_type2string(git_object__type_from_filemode(update->filemode)),
|
1230
1269
|
update->path);
|
@@ -1244,7 +1283,7 @@ int git_tree_create_updated(git_oid *out, git_repository *repo, git_tree *baseli
|
|
1244
1283
|
break;
|
1245
1284
|
}
|
1246
1285
|
default:
|
1247
|
-
|
1286
|
+
giterr_set(GITERR_TREE, "unknown action for update");
|
1248
1287
|
error = -1;
|
1249
1288
|
goto cleanup;
|
1250
1289
|
}
|
@@ -1286,7 +1325,7 @@ cleanup:
|
|
1286
1325
|
}
|
1287
1326
|
}
|
1288
1327
|
|
1289
|
-
|
1328
|
+
git_buf_free(&component);
|
1290
1329
|
git_array_clear(stack);
|
1291
1330
|
git_vector_free(&entries);
|
1292
1331
|
return error;
|