rugged 1.6.3 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/rugged/rugged_allocator.c +0 -54
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +25 -17
- data/vendor/libgit2/COPYING +195 -1
- data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
- data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +4 -4
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +34 -6
- data/vendor/libgit2/cmake/SelectHashes.cmake +32 -11
- data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
- data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
- data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
- data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
- data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
- data/vendor/libgit2/deps/llhttp/api.c +510 -0
- data/vendor/libgit2/deps/llhttp/http.c +170 -0
- data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
- data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
- data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +1 -0
- data/vendor/libgit2/deps/pcre/LICENCE +5 -5
- data/vendor/libgit2/deps/pcre/pcre.h +2 -2
- data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
- data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/git-xdiff.h +4 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.c +19 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.h +2 -4
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.c +3 -3
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xhistogram.c +7 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmacros.h +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmerge.c +22 -20
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xpatience.c +21 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.c +13 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.c +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.h +2 -1
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
- data/vendor/libgit2/deps/zlib/LICENSE +22 -0
- data/vendor/libgit2/deps/zlib/adler32.c +5 -27
- data/vendor/libgit2/deps/zlib/crc32.c +94 -167
- data/vendor/libgit2/deps/zlib/deflate.c +358 -435
- data/vendor/libgit2/deps/zlib/deflate.h +41 -10
- data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
- data/vendor/libgit2/deps/zlib/infback.c +17 -30
- data/vendor/libgit2/deps/zlib/inffast.c +1 -4
- data/vendor/libgit2/deps/zlib/inffast.h +1 -1
- data/vendor/libgit2/deps/zlib/inflate.c +36 -102
- data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
- data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
- data/vendor/libgit2/deps/zlib/trees.c +287 -352
- data/vendor/libgit2/deps/zlib/zconf.h +23 -14
- data/vendor/libgit2/deps/zlib/zlib.h +202 -202
- data/vendor/libgit2/deps/zlib/zutil.c +18 -44
- data/vendor/libgit2/deps/zlib/zutil.h +13 -33
- data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
- data/vendor/libgit2/include/git2/apply.h +27 -6
- data/vendor/libgit2/include/git2/attr.h +17 -4
- data/vendor/libgit2/include/git2/blame.h +133 -28
- data/vendor/libgit2/include/git2/blob.h +71 -28
- data/vendor/libgit2/include/git2/branch.h +22 -15
- data/vendor/libgit2/include/git2/buffer.h +6 -4
- data/vendor/libgit2/include/git2/cert.h +2 -1
- data/vendor/libgit2/include/git2/checkout.h +83 -32
- data/vendor/libgit2/include/git2/cherrypick.h +10 -3
- data/vendor/libgit2/include/git2/clone.h +25 -9
- data/vendor/libgit2/include/git2/commit.h +132 -3
- data/vendor/libgit2/include/git2/common.h +138 -56
- data/vendor/libgit2/include/git2/config.h +93 -23
- data/vendor/libgit2/include/git2/credential.h +30 -2
- data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
- data/vendor/libgit2/include/git2/deprecated.h +133 -3
- data/vendor/libgit2/include/git2/describe.h +13 -1
- data/vendor/libgit2/include/git2/diff.h +77 -9
- data/vendor/libgit2/include/git2/email.h +9 -29
- data/vendor/libgit2/include/git2/errors.h +49 -74
- data/vendor/libgit2/include/git2/filter.h +14 -7
- data/vendor/libgit2/include/git2/global.h +8 -1
- data/vendor/libgit2/include/git2/graph.h +3 -2
- data/vendor/libgit2/include/git2/ignore.h +10 -0
- data/vendor/libgit2/include/git2/index.h +100 -6
- data/vendor/libgit2/include/git2/indexer.h +21 -4
- data/vendor/libgit2/include/git2/mailmap.h +7 -1
- data/vendor/libgit2/include/git2/merge.h +46 -1
- data/vendor/libgit2/include/git2/message.h +2 -2
- data/vendor/libgit2/include/git2/net.h +3 -1
- data/vendor/libgit2/include/git2/notes.h +9 -6
- data/vendor/libgit2/include/git2/object.h +9 -8
- data/vendor/libgit2/include/git2/odb.h +91 -49
- data/vendor/libgit2/include/git2/odb_backend.h +80 -52
- data/vendor/libgit2/include/git2/oid.h +24 -25
- data/vendor/libgit2/include/git2/oidarray.h +7 -1
- data/vendor/libgit2/include/git2/pack.h +13 -1
- data/vendor/libgit2/include/git2/patch.h +2 -3
- data/vendor/libgit2/include/git2/pathspec.h +9 -0
- data/vendor/libgit2/include/git2/proxy.h +10 -0
- data/vendor/libgit2/include/git2/rebase.h +9 -6
- data/vendor/libgit2/include/git2/refdb.h +2 -2
- data/vendor/libgit2/include/git2/reflog.h +3 -2
- data/vendor/libgit2/include/git2/refs.h +9 -6
- data/vendor/libgit2/include/git2/refspec.h +14 -4
- data/vendor/libgit2/include/git2/remote.h +112 -18
- data/vendor/libgit2/include/git2/repository.h +61 -15
- data/vendor/libgit2/include/git2/reset.h +16 -3
- data/vendor/libgit2/include/git2/revert.h +9 -4
- data/vendor/libgit2/include/git2/revparse.h +3 -3
- data/vendor/libgit2/include/git2/revwalk.h +3 -2
- data/vendor/libgit2/include/git2/signature.h +46 -1
- data/vendor/libgit2/include/git2/stash.h +17 -3
- data/vendor/libgit2/include/git2/status.h +10 -6
- data/vendor/libgit2/include/git2/stdint.h +87 -85
- data/vendor/libgit2/include/git2/strarray.h +2 -3
- data/vendor/libgit2/include/git2/submodule.h +20 -9
- data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +109 -58
- data/vendor/libgit2/include/git2/sys/config.h +80 -4
- data/vendor/libgit2/include/git2/sys/credential.h +4 -3
- data/vendor/libgit2/include/git2/sys/diff.h +21 -1
- data/vendor/libgit2/include/git2/sys/email.h +7 -0
- data/vendor/libgit2/include/git2/sys/errors.h +76 -0
- data/vendor/libgit2/include/git2/sys/filter.h +66 -3
- data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
- data/vendor/libgit2/include/git2/sys/index.h +3 -2
- data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
- data/vendor/libgit2/include/git2/sys/merge.h +55 -7
- data/vendor/libgit2/include/git2/sys/midx.h +47 -4
- data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
- data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
- data/vendor/libgit2/include/git2/sys/path.h +12 -1
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
- data/vendor/libgit2/include/git2/sys/refs.h +3 -2
- data/vendor/libgit2/include/git2/sys/remote.h +8 -1
- data/vendor/libgit2/include/git2/sys/repository.h +63 -3
- data/vendor/libgit2/include/git2/sys/stream.h +25 -2
- data/vendor/libgit2/include/git2/sys/transport.h +44 -5
- data/vendor/libgit2/include/git2/tag.h +3 -1
- data/vendor/libgit2/include/git2/trace.h +9 -3
- data/vendor/libgit2/include/git2/transaction.h +3 -2
- data/vendor/libgit2/include/git2/transport.h +11 -3
- data/vendor/libgit2/include/git2/tree.h +16 -5
- data/vendor/libgit2/include/git2/types.h +19 -3
- data/vendor/libgit2/include/git2/version.h +44 -8
- data/vendor/libgit2/include/git2/worktree.h +19 -7
- data/vendor/libgit2/src/CMakeLists.txt +40 -15
- data/vendor/libgit2/src/cli/CMakeLists.txt +2 -2
- data/vendor/libgit2/src/cli/cmd.c +1 -1
- data/vendor/libgit2/src/cli/cmd.h +4 -0
- data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
- data/vendor/libgit2/src/cli/cmd_clone.c +27 -13
- data/vendor/libgit2/src/cli/cmd_config.c +241 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
- data/vendor/libgit2/src/cli/cmd_help.c +6 -7
- data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
- data/vendor/libgit2/src/cli/cmd_init.c +102 -0
- data/vendor/libgit2/src/cli/common.c +168 -0
- data/vendor/libgit2/src/cli/common.h +63 -0
- data/vendor/libgit2/src/cli/error.h +1 -1
- data/vendor/libgit2/src/cli/main.c +52 -24
- data/vendor/libgit2/src/cli/opt.c +29 -3
- data/vendor/libgit2/src/cli/opt.h +21 -3
- data/vendor/libgit2/src/cli/opt_usage.c +102 -33
- data/vendor/libgit2/src/cli/opt_usage.h +6 -1
- data/vendor/libgit2/src/cli/progress.c +60 -10
- data/vendor/libgit2/src/cli/progress.h +16 -4
- data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
- data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
- data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +27 -27
- data/vendor/libgit2/src/libgit2/annotated_commit.c +2 -2
- data/vendor/libgit2/src/libgit2/annotated_commit.h +1 -1
- data/vendor/libgit2/src/libgit2/apply.c +14 -16
- data/vendor/libgit2/src/libgit2/attr.c +30 -13
- data/vendor/libgit2/src/libgit2/attr_file.c +7 -2
- data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
- data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
- data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
- data/vendor/libgit2/src/libgit2/blame.c +152 -59
- data/vendor/libgit2/src/libgit2/blame.h +1 -0
- data/vendor/libgit2/src/libgit2/blame_git.c +0 -1
- data/vendor/libgit2/src/libgit2/branch.c +2 -2
- data/vendor/libgit2/src/libgit2/cache.c +22 -17
- data/vendor/libgit2/src/libgit2/cache.h +7 -9
- data/vendor/libgit2/src/libgit2/checkout.c +34 -24
- data/vendor/libgit2/src/libgit2/checkout.h +0 -2
- data/vendor/libgit2/src/libgit2/cherrypick.c +4 -5
- data/vendor/libgit2/src/libgit2/clone.c +186 -164
- data/vendor/libgit2/src/libgit2/clone.h +4 -1
- data/vendor/libgit2/src/libgit2/commit.c +123 -9
- data/vendor/libgit2/src/libgit2/commit_graph.c +166 -88
- data/vendor/libgit2/src/libgit2/commit_graph.h +21 -6
- data/vendor/libgit2/src/libgit2/commit_list.c +12 -5
- data/vendor/libgit2/src/libgit2/commit_list.h +1 -0
- data/vendor/libgit2/src/libgit2/config.c +394 -300
- data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
- data/vendor/libgit2/src/libgit2/config.h +9 -4
- data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
- data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
- data/vendor/libgit2/src/libgit2/config_file.c +113 -96
- data/vendor/libgit2/src/libgit2/config_list.c +285 -0
- data/vendor/libgit2/src/libgit2/config_list.h +32 -0
- data/vendor/libgit2/src/libgit2/config_mem.c +194 -40
- data/vendor/libgit2/src/libgit2/config_parse.c +10 -9
- data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
- data/vendor/libgit2/src/libgit2/describe.c +34 -31
- data/vendor/libgit2/src/libgit2/diff.c +17 -8
- data/vendor/libgit2/src/libgit2/diff.h +6 -6
- data/vendor/libgit2/src/libgit2/diff_driver.c +12 -19
- data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
- data/vendor/libgit2/src/libgit2/diff_file.c +7 -7
- data/vendor/libgit2/src/libgit2/diff_generate.c +39 -18
- data/vendor/libgit2/src/libgit2/diff_parse.c +22 -6
- data/vendor/libgit2/src/libgit2/diff_print.c +88 -13
- data/vendor/libgit2/src/libgit2/diff_tform.c +40 -12
- data/vendor/libgit2/src/libgit2/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/libgit2/email.c +5 -3
- data/vendor/libgit2/src/libgit2/fetch.c +39 -9
- data/vendor/libgit2/src/libgit2/fetch.h +0 -2
- data/vendor/libgit2/src/libgit2/fetchhead.c +11 -9
- data/vendor/libgit2/src/libgit2/filter.c +5 -5
- data/vendor/libgit2/src/libgit2/git2.rc +3 -3
- data/vendor/libgit2/src/libgit2/grafts.c +270 -0
- data/vendor/libgit2/src/libgit2/grafts.h +35 -0
- data/vendor/libgit2/src/libgit2/graph.c +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/libgit2/ident.c +3 -3
- data/vendor/libgit2/src/libgit2/ignore.c +9 -5
- data/vendor/libgit2/src/libgit2/index.c +392 -208
- data/vendor/libgit2/src/libgit2/index.h +16 -3
- data/vendor/libgit2/src/libgit2/index_map.c +95 -0
- data/vendor/libgit2/src/libgit2/index_map.h +28 -0
- data/vendor/libgit2/src/libgit2/indexer.c +44 -41
- data/vendor/libgit2/src/libgit2/iterator.c +34 -13
- data/vendor/libgit2/src/libgit2/iterator.h +3 -0
- data/vendor/libgit2/src/libgit2/libgit2.c +155 -331
- data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
- data/vendor/libgit2/src/libgit2/merge.c +56 -46
- data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
- data/vendor/libgit2/src/libgit2/merge_file.c +0 -2
- data/vendor/libgit2/src/libgit2/midx.c +86 -44
- data/vendor/libgit2/src/libgit2/midx.h +13 -3
- data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
- data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
- data/vendor/libgit2/src/libgit2/notes.c +9 -8
- data/vendor/libgit2/src/libgit2/object.c +42 -16
- data/vendor/libgit2/src/libgit2/object.h +6 -0
- data/vendor/libgit2/src/libgit2/odb.c +16 -9
- data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
- data/vendor/libgit2/src/libgit2/odb_pack.c +28 -7
- data/vendor/libgit2/src/libgit2/oid.c +35 -2
- data/vendor/libgit2/src/libgit2/oid.h +11 -0
- data/vendor/libgit2/src/libgit2/oidarray.c +49 -3
- data/vendor/libgit2/src/libgit2/oidarray.h +5 -1
- data/vendor/libgit2/src/libgit2/pack-objects.c +77 -43
- data/vendor/libgit2/src/libgit2/pack-objects.h +17 -6
- data/vendor/libgit2/src/libgit2/pack.c +33 -27
- data/vendor/libgit2/src/libgit2/pack.h +15 -10
- data/vendor/libgit2/src/libgit2/parse.c +7 -4
- data/vendor/libgit2/src/libgit2/parse.h +1 -1
- data/vendor/libgit2/src/libgit2/patch.h +7 -1
- data/vendor/libgit2/src/libgit2/patch_generate.c +24 -5
- data/vendor/libgit2/src/libgit2/patch_parse.c +18 -10
- data/vendor/libgit2/src/libgit2/path.c +1 -1
- data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
- data/vendor/libgit2/src/libgit2/push.c +81 -30
- data/vendor/libgit2/src/libgit2/push.h +1 -0
- data/vendor/libgit2/src/libgit2/reader.c +1 -1
- data/vendor/libgit2/src/libgit2/rebase.c +72 -84
- data/vendor/libgit2/src/libgit2/refdb_fs.c +146 -70
- data/vendor/libgit2/src/libgit2/reflog.c +1 -2
- data/vendor/libgit2/src/libgit2/reflog.h +2 -0
- data/vendor/libgit2/src/libgit2/refs.c +34 -8
- data/vendor/libgit2/src/libgit2/refs.h +6 -1
- data/vendor/libgit2/src/libgit2/refspec.c +28 -1
- data/vendor/libgit2/src/libgit2/refspec.h +8 -0
- data/vendor/libgit2/src/libgit2/remote.c +136 -67
- data/vendor/libgit2/src/libgit2/remote.h +1 -0
- data/vendor/libgit2/src/libgit2/repository.c +789 -330
- data/vendor/libgit2/src/libgit2/repository.h +22 -3
- data/vendor/libgit2/src/libgit2/reset.c +2 -2
- data/vendor/libgit2/src/libgit2/revert.c +9 -13
- data/vendor/libgit2/src/libgit2/revparse.c +6 -3
- data/vendor/libgit2/src/libgit2/revwalk.c +36 -11
- data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
- data/vendor/libgit2/src/libgit2/settings.c +468 -0
- data/vendor/libgit2/src/libgit2/settings.h +6 -2
- data/vendor/libgit2/src/libgit2/signature.c +132 -15
- data/vendor/libgit2/src/libgit2/signature.h +0 -1
- data/vendor/libgit2/src/libgit2/stash.c +9 -8
- data/vendor/libgit2/src/libgit2/status.c +1 -1
- data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -61
- data/vendor/libgit2/src/libgit2/streams/openssl.c +40 -23
- data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
- data/vendor/libgit2/src/libgit2/streams/socket.c +237 -51
- data/vendor/libgit2/src/libgit2/streams/socket.h +3 -1
- data/vendor/libgit2/src/libgit2/streams/stransport.c +79 -19
- data/vendor/libgit2/src/libgit2/streams/tls.c +5 -0
- data/vendor/libgit2/src/libgit2/submodule.c +106 -63
- data/vendor/libgit2/src/libgit2/submodule.h +9 -10
- data/vendor/libgit2/src/libgit2/tag.c +1 -1
- data/vendor/libgit2/src/libgit2/trailer.c +6 -6
- data/vendor/libgit2/src/libgit2/transaction.c +26 -20
- data/vendor/libgit2/src/libgit2/transaction.h +4 -1
- data/vendor/libgit2/src/libgit2/transport.c +4 -1
- data/vendor/libgit2/src/libgit2/transports/auth.h +1 -2
- data/vendor/libgit2/src/libgit2/transports/{auth_negotiate.c → auth_gssapi.c} +32 -32
- data/vendor/libgit2/src/libgit2/transports/auth_negotiate.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/auth_ntlm.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/{auth_ntlm.c → auth_ntlmclient.c} +12 -12
- data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
- data/vendor/libgit2/src/libgit2/transports/credential.c +1 -1
- data/vendor/libgit2/src/libgit2/transports/git.c +7 -8
- data/vendor/libgit2/src/libgit2/transports/http.c +8 -4
- data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
- data/vendor/libgit2/src/libgit2/transports/httpclient.c +117 -72
- data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
- data/vendor/libgit2/src/libgit2/transports/local.c +21 -11
- data/vendor/libgit2/src/libgit2/transports/smart.c +50 -32
- data/vendor/libgit2/src/libgit2/transports/smart.h +26 -9
- data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +139 -18
- data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +209 -57
- data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1126 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
- data/vendor/libgit2/src/libgit2/transports/winhttp.c +48 -21
- data/vendor/libgit2/src/libgit2/tree-cache.c +26 -16
- data/vendor/libgit2/src/libgit2/tree-cache.h +5 -3
- data/vendor/libgit2/src/libgit2/tree.c +35 -27
- data/vendor/libgit2/src/libgit2/tree.h +3 -2
- data/vendor/libgit2/src/libgit2/worktree.c +39 -27
- data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
- data/vendor/libgit2/src/util/alloc.c +69 -7
- data/vendor/libgit2/src/util/alloc.h +34 -9
- data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
- data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
- data/vendor/libgit2/src/util/allocators/failalloc.c +0 -60
- data/vendor/libgit2/src/util/allocators/failalloc.h +0 -6
- data/vendor/libgit2/src/util/allocators/stdalloc.c +2 -115
- data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +0 -68
- data/vendor/libgit2/src/util/array.h +24 -18
- data/vendor/libgit2/src/util/cc-compat.h +4 -0
- data/vendor/libgit2/src/util/ctype_compat.h +70 -0
- data/vendor/libgit2/src/util/date.c +22 -14
- data/vendor/libgit2/src/util/date.h +12 -0
- data/vendor/libgit2/src/util/errors.c +401 -0
- data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
- data/vendor/libgit2/src/util/filebuf.c +6 -1
- data/vendor/libgit2/src/util/filebuf.h +19 -6
- data/vendor/libgit2/src/util/fs_path.c +16 -5
- data/vendor/libgit2/src/util/fs_path.h +23 -0
- data/vendor/libgit2/src/util/futils.c +14 -10
- data/vendor/libgit2/src/util/futils.h +13 -4
- data/vendor/libgit2/src/util/git2_features.h.in +21 -4
- data/vendor/libgit2/src/util/git2_util.h +6 -0
- data/vendor/libgit2/src/util/hash/openssl.c +152 -0
- data/vendor/libgit2/src/util/hash/openssl.h +17 -1
- data/vendor/libgit2/src/util/hash/sha.h +4 -1
- data/vendor/libgit2/src/util/hashmap.h +424 -0
- data/vendor/libgit2/src/util/hashmap_str.h +43 -0
- data/vendor/libgit2/src/util/integer.h +3 -1
- data/vendor/libgit2/src/util/net.c +318 -161
- data/vendor/libgit2/src/util/net.h +27 -0
- data/vendor/libgit2/src/util/pool.c +1 -1
- data/vendor/libgit2/src/util/pool.h +5 -0
- data/vendor/libgit2/src/util/posix.c +54 -0
- data/vendor/libgit2/src/util/posix.h +22 -0
- data/vendor/libgit2/src/util/pqueue.h +1 -1
- data/vendor/libgit2/src/util/process.h +222 -0
- data/vendor/libgit2/src/util/rand.c +6 -10
- data/vendor/libgit2/src/util/regexp.c +1 -1
- data/vendor/libgit2/src/util/sortedcache.c +14 -13
- data/vendor/libgit2/src/util/sortedcache.h +3 -3
- data/vendor/libgit2/src/util/staticstr.h +66 -0
- data/vendor/libgit2/src/util/str.c +2 -2
- data/vendor/libgit2/src/util/strlist.c +108 -0
- data/vendor/libgit2/src/util/strlist.h +36 -0
- data/vendor/libgit2/src/util/unix/posix.h +0 -2
- data/vendor/libgit2/src/util/unix/process.c +629 -0
- data/vendor/libgit2/src/util/unix/realpath.c +23 -5
- data/vendor/libgit2/src/util/util.c +17 -12
- data/vendor/libgit2/src/util/util.h +28 -54
- data/vendor/libgit2/src/util/vector.c +3 -3
- data/vendor/libgit2/src/util/vector.h +2 -2
- data/vendor/libgit2/src/util/win32/error.c +1 -1
- data/vendor/libgit2/src/util/win32/path_w32.c +8 -8
- data/vendor/libgit2/src/util/win32/posix_w32.c +30 -7
- data/vendor/libgit2/src/util/win32/process.c +506 -0
- data/vendor/libgit2/src/util/win32/utf-conv.c +73 -75
- data/vendor/libgit2/src/util/win32/utf-conv.h +81 -14
- data/vendor/libgit2/src/util/win32/w32_util.c +1 -1
- metadata +72 -49
- data/vendor/libgit2/cmake/SelectWinHTTP.cmake +0 -17
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
- data/vendor/libgit2/deps/http-parser/COPYING +0 -23
- data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
- data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
- data/vendor/libgit2/deps/zlib/COPYING +0 -27
- data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
- data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
- data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
- data/vendor/libgit2/src/libgit2/errors.c +0 -238
- data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
- data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
- data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
- data/vendor/libgit2/src/libgit2/netops.c +0 -124
- data/vendor/libgit2/src/libgit2/netops.h +0 -68
- data/vendor/libgit2/src/libgit2/offmap.c +0 -101
- data/vendor/libgit2/src/libgit2/offmap.h +0 -133
- data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
- data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
- data/vendor/libgit2/src/libgit2/threadstate.c +0 -84
- data/vendor/libgit2/src/libgit2/threadstate.h +0 -24
- data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
- data/vendor/libgit2/src/util/khash.h +0 -615
- data/vendor/libgit2/src/util/strmap.c +0 -100
- data/vendor/libgit2/src/util/strmap.h +0 -131
- /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiff.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xinclude.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xtypes.h +0 -0
@@ -65,6 +65,9 @@ struct git_rebase {
|
|
65
65
|
git_rebase_t type;
|
66
66
|
char *state_path;
|
67
67
|
|
68
|
+
/* Temporary buffer for paths within the state path. */
|
69
|
+
git_str state_filename;
|
70
|
+
|
68
71
|
unsigned int head_detached:1,
|
69
72
|
inmemory:1,
|
70
73
|
quiet:1,
|
@@ -134,33 +137,42 @@ done:
|
|
134
137
|
|
135
138
|
GIT_INLINE(int) rebase_readfile(
|
136
139
|
git_str *out,
|
137
|
-
|
140
|
+
git_rebase *rebase,
|
138
141
|
const char *filename)
|
139
142
|
{
|
140
|
-
|
143
|
+
/*
|
144
|
+
* `rebase->state_filename` is a temporary buffer to avoid
|
145
|
+
* unnecessary allocations and copies of `rebase->state_path`.
|
146
|
+
* At the start and end of this function it always contains the
|
147
|
+
* contents of `rebase->state_path` itself.
|
148
|
+
*/
|
149
|
+
size_t state_path_len = rebase->state_filename.size;
|
141
150
|
int error;
|
142
151
|
|
143
152
|
git_str_clear(out);
|
144
153
|
|
145
|
-
if ((error = git_str_joinpath(
|
146
|
-
|
154
|
+
if ((error = git_str_joinpath(&rebase->state_filename, rebase->state_filename.ptr, filename)) < 0 ||
|
155
|
+
(error = git_futils_readbuffer(out, rebase->state_filename.ptr)) < 0)
|
147
156
|
goto done;
|
148
157
|
|
149
158
|
git_str_rtrim(out);
|
150
159
|
|
151
160
|
done:
|
152
|
-
git_str_truncate(
|
161
|
+
git_str_truncate(&rebase->state_filename, state_path_len);
|
153
162
|
return error;
|
154
163
|
}
|
155
164
|
|
156
165
|
GIT_INLINE(int) rebase_readint(
|
157
|
-
size_t *out,
|
166
|
+
size_t *out,
|
167
|
+
git_str *asc_out,
|
168
|
+
git_rebase *rebase,
|
169
|
+
const char *filename)
|
158
170
|
{
|
159
171
|
int32_t num;
|
160
172
|
const char *eol;
|
161
173
|
int error = 0;
|
162
174
|
|
163
|
-
if ((error = rebase_readfile(asc_out,
|
175
|
+
if ((error = rebase_readfile(asc_out, rebase, filename)) < 0)
|
164
176
|
return error;
|
165
177
|
|
166
178
|
if (git__strntol32(&num, asc_out->ptr, asc_out->size, &eol, 10) < 0 || num < 0 || *eol) {
|
@@ -174,15 +186,18 @@ GIT_INLINE(int) rebase_readint(
|
|
174
186
|
}
|
175
187
|
|
176
188
|
GIT_INLINE(int) rebase_readoid(
|
177
|
-
git_oid *out,
|
189
|
+
git_oid *out,
|
190
|
+
git_str *str_out,
|
191
|
+
git_rebase *rebase,
|
192
|
+
const char *filename)
|
178
193
|
{
|
179
194
|
int error;
|
180
195
|
|
181
|
-
if ((error = rebase_readfile(str_out,
|
196
|
+
if ((error = rebase_readfile(str_out, rebase, filename)) < 0)
|
182
197
|
return error;
|
183
198
|
|
184
|
-
if (str_out->size !=
|
185
|
-
git_oid__fromstr(out, str_out->ptr,
|
199
|
+
if (str_out->size != git_oid_hexsize(rebase->repo->oid_type) ||
|
200
|
+
git_oid__fromstr(out, str_out->ptr, rebase->repo->oid_type) < 0) {
|
186
201
|
git_error_set(GIT_ERROR_REBASE, "the file '%s' contains an invalid object ID", filename);
|
187
202
|
return -1;
|
188
203
|
}
|
@@ -213,17 +228,14 @@ static git_rebase_operation *rebase_operation_alloc(
|
|
213
228
|
|
214
229
|
static int rebase_open_merge(git_rebase *rebase)
|
215
230
|
{
|
216
|
-
git_str
|
231
|
+
git_str buf = GIT_STR_INIT, cmt = GIT_STR_INIT;
|
217
232
|
git_oid id;
|
218
233
|
git_rebase_operation *operation;
|
219
234
|
size_t i, msgnum = 0, end;
|
220
235
|
int error;
|
221
236
|
|
222
|
-
if ((error = git_str_puts(&state_path, rebase->state_path)) < 0)
|
223
|
-
goto done;
|
224
|
-
|
225
237
|
/* Read 'msgnum' if it exists (otherwise, let msgnum = 0) */
|
226
|
-
if ((error = rebase_readint(&msgnum, &buf,
|
238
|
+
if ((error = rebase_readint(&msgnum, &buf, rebase, MSGNUM_FILE)) < 0 &&
|
227
239
|
error != GIT_ENOTFOUND)
|
228
240
|
goto done;
|
229
241
|
|
@@ -233,11 +245,11 @@ static int rebase_open_merge(git_rebase *rebase)
|
|
233
245
|
}
|
234
246
|
|
235
247
|
/* Read 'end' */
|
236
|
-
if ((error = rebase_readint(&end, &buf,
|
248
|
+
if ((error = rebase_readint(&end, &buf, rebase, END_FILE)) < 0)
|
237
249
|
goto done;
|
238
250
|
|
239
251
|
/* Read 'current' if it exists */
|
240
|
-
if ((error = rebase_readoid(&id, &buf,
|
252
|
+
if ((error = rebase_readoid(&id, &buf, rebase, CURRENT_FILE)) < 0 &&
|
241
253
|
error != GIT_ENOTFOUND)
|
242
254
|
goto done;
|
243
255
|
|
@@ -249,7 +261,7 @@ static int rebase_open_merge(git_rebase *rebase)
|
|
249
261
|
git_str_clear(&cmt);
|
250
262
|
|
251
263
|
if ((error = git_str_printf(&cmt, "cmt.%" PRIuZ, (i+1))) < 0 ||
|
252
|
-
(error = rebase_readoid(&id, &buf,
|
264
|
+
(error = rebase_readoid(&id, &buf, rebase, cmt.ptr)) < 0)
|
253
265
|
goto done;
|
254
266
|
|
255
267
|
operation = rebase_operation_alloc(rebase, GIT_REBASE_OPERATION_PICK, &id, NULL);
|
@@ -257,14 +269,13 @@ static int rebase_open_merge(git_rebase *rebase)
|
|
257
269
|
}
|
258
270
|
|
259
271
|
/* Read 'onto_name' */
|
260
|
-
if ((error = rebase_readfile(&buf,
|
272
|
+
if ((error = rebase_readfile(&buf, rebase, ONTO_NAME_FILE)) < 0)
|
261
273
|
goto done;
|
262
274
|
|
263
275
|
rebase->onto_name = git_str_detach(&buf);
|
264
276
|
|
265
277
|
done:
|
266
278
|
git_str_dispose(&cmt);
|
267
|
-
git_str_dispose(&state_path);
|
268
279
|
git_str_dispose(&buf);
|
269
280
|
|
270
281
|
return error;
|
@@ -308,9 +319,9 @@ int git_rebase_open(
|
|
308
319
|
const git_rebase_options *given_opts)
|
309
320
|
{
|
310
321
|
git_rebase *rebase;
|
311
|
-
git_str
|
312
|
-
orig_head_id = GIT_STR_INIT,
|
313
|
-
|
322
|
+
git_str orig_head_name = GIT_STR_INIT,
|
323
|
+
orig_head_id = GIT_STR_INIT,
|
324
|
+
onto_id = GIT_STR_INIT;
|
314
325
|
int error;
|
315
326
|
|
316
327
|
GIT_ASSERT_ARG(repo);
|
@@ -332,13 +343,10 @@ int git_rebase_open(
|
|
332
343
|
goto done;
|
333
344
|
}
|
334
345
|
|
335
|
-
if ((error = git_str_puts(&
|
346
|
+
if ((error = git_str_puts(&rebase->state_filename, rebase->state_path)) < 0)
|
336
347
|
goto done;
|
337
348
|
|
338
|
-
|
339
|
-
|
340
|
-
if ((error = git_str_joinpath(&path, path.ptr, HEAD_NAME_FILE)) < 0 ||
|
341
|
-
(error = git_futils_readbuffer(&orig_head_name, path.ptr)) < 0)
|
349
|
+
if ((error = rebase_readfile(&orig_head_name, rebase, HEAD_NAME_FILE)) < 0)
|
342
350
|
goto done;
|
343
351
|
|
344
352
|
git_str_rtrim(&orig_head_name);
|
@@ -346,36 +354,16 @@ int git_rebase_open(
|
|
346
354
|
if (strcmp(ORIG_DETACHED_HEAD, orig_head_name.ptr) == 0)
|
347
355
|
rebase->head_detached = 1;
|
348
356
|
|
349
|
-
|
350
|
-
|
351
|
-
if ((error = git_str_joinpath(&path, path.ptr, ORIG_HEAD_FILE)) < 0)
|
352
|
-
goto done;
|
353
|
-
|
354
|
-
if (!git_fs_path_isfile(path.ptr)) {
|
357
|
+
if ((error = rebase_readoid(&rebase->orig_head_id, &orig_head_id, rebase, ORIG_HEAD_FILE)) < 0) {
|
355
358
|
/* Previous versions of git.git used 'head' here; support that. */
|
356
|
-
|
359
|
+
if (error == GIT_ENOTFOUND)
|
360
|
+
error = rebase_readoid(&rebase->orig_head_id, &orig_head_id, rebase, HEAD_FILE);
|
357
361
|
|
358
|
-
if (
|
362
|
+
if (error < 0)
|
359
363
|
goto done;
|
360
364
|
}
|
361
365
|
|
362
|
-
if ((error =
|
363
|
-
goto done;
|
364
|
-
|
365
|
-
git_str_rtrim(&orig_head_id);
|
366
|
-
|
367
|
-
if ((error = git_oid__fromstr(&rebase->orig_head_id, orig_head_id.ptr, GIT_OID_SHA1)) < 0)
|
368
|
-
goto done;
|
369
|
-
|
370
|
-
git_str_truncate(&path, state_path_len);
|
371
|
-
|
372
|
-
if ((error = git_str_joinpath(&path, path.ptr, ONTO_FILE)) < 0 ||
|
373
|
-
(error = git_futils_readbuffer(&onto_id, path.ptr)) < 0)
|
374
|
-
goto done;
|
375
|
-
|
376
|
-
git_str_rtrim(&onto_id);
|
377
|
-
|
378
|
-
if ((error = git_oid__fromstr(&rebase->onto_id, onto_id.ptr, GIT_OID_SHA1)) < 0)
|
366
|
+
if ((error = rebase_readoid(&rebase->onto_id, &onto_id, rebase, ONTO_FILE)) < 0)
|
379
367
|
goto done;
|
380
368
|
|
381
369
|
if (!rebase->head_detached)
|
@@ -403,7 +391,6 @@ done:
|
|
403
391
|
else
|
404
392
|
git_rebase_free(rebase);
|
405
393
|
|
406
|
-
git_str_dispose(&path);
|
407
394
|
git_str_dispose(&orig_head_name);
|
408
395
|
git_str_dispose(&orig_head_id);
|
409
396
|
git_str_dispose(&onto_id);
|
@@ -453,13 +440,13 @@ static const char *rebase_onto_name(const git_annotated_commit *onto)
|
|
453
440
|
static int rebase_setupfiles_merge(git_rebase *rebase)
|
454
441
|
{
|
455
442
|
git_str commit_filename = GIT_STR_INIT;
|
456
|
-
char id_str[
|
443
|
+
char id_str[GIT_OID_MAX_HEXSIZE + 1];
|
457
444
|
git_rebase_operation *operation;
|
458
445
|
size_t i;
|
459
446
|
int error = 0;
|
460
447
|
|
461
448
|
if ((error = rebase_setupfile(rebase, END_FILE, 0, "%" PRIuZ "\n", git_array_size(rebase->operations))) < 0 ||
|
462
|
-
|
449
|
+
(error = rebase_setupfile(rebase, ONTO_NAME_FILE, 0, "%s\n", rebase->onto_name)) < 0)
|
463
450
|
goto done;
|
464
451
|
|
465
452
|
for (i = 0; i < git_array_size(rebase->operations); i++) {
|
@@ -468,10 +455,9 @@ static int rebase_setupfiles_merge(git_rebase *rebase)
|
|
468
455
|
git_str_clear(&commit_filename);
|
469
456
|
git_str_printf(&commit_filename, CMT_FILE_FMT, i+1);
|
470
457
|
|
471
|
-
|
458
|
+
git_oid_tostr(id_str, GIT_OID_MAX_HEXSIZE + 1, &operation->id);
|
472
459
|
|
473
|
-
if ((error = rebase_setupfile(rebase, commit_filename.ptr, 0,
|
474
|
-
"%.*s\n", GIT_OID_SHA1_HEXSIZE, id_str)) < 0)
|
460
|
+
if ((error = rebase_setupfile(rebase, commit_filename.ptr, 0, "%s\n", id_str)) < 0)
|
475
461
|
goto done;
|
476
462
|
}
|
477
463
|
|
@@ -482,11 +468,11 @@ done:
|
|
482
468
|
|
483
469
|
static int rebase_setupfiles(git_rebase *rebase)
|
484
470
|
{
|
485
|
-
char onto[
|
471
|
+
char onto[GIT_OID_MAX_HEXSIZE + 1], orig_head[GIT_OID_MAX_HEXSIZE + 1];
|
486
472
|
const char *orig_head_name;
|
487
473
|
|
488
|
-
|
489
|
-
|
474
|
+
git_oid_tostr(onto, GIT_OID_MAX_HEXSIZE + 1, &rebase->onto_id);
|
475
|
+
git_oid_tostr(orig_head, GIT_OID_MAX_HEXSIZE + 1, &rebase->orig_head_id);
|
490
476
|
|
491
477
|
if (p_mkdir(rebase->state_path, REBASE_DIR_MODE) < 0) {
|
492
478
|
git_error_set(GIT_ERROR_OS, "failed to create rebase directory '%s'", rebase->state_path);
|
@@ -498,8 +484,8 @@ static int rebase_setupfiles(git_rebase *rebase)
|
|
498
484
|
|
499
485
|
if (git_repository__set_orig_head(rebase->repo, &rebase->orig_head_id) < 0 ||
|
500
486
|
rebase_setupfile(rebase, HEAD_NAME_FILE, 0, "%s\n", orig_head_name) < 0 ||
|
501
|
-
rebase_setupfile(rebase, ONTO_FILE, 0, "
|
502
|
-
rebase_setupfile(rebase, ORIG_HEAD_FILE, 0, "
|
487
|
+
rebase_setupfile(rebase, ONTO_FILE, 0, "%s\n", onto) < 0 ||
|
488
|
+
rebase_setupfile(rebase, ORIG_HEAD_FILE, 0, "%s\n", orig_head) < 0 ||
|
503
489
|
rebase_setupfile(rebase, QUIET_FILE, 0, rebase->quiet ? "t\n" : "\n") < 0)
|
504
490
|
return -1;
|
505
491
|
|
@@ -644,7 +630,8 @@ static int rebase_init_merge(
|
|
644
630
|
|
645
631
|
GIT_UNUSED(upstream);
|
646
632
|
|
647
|
-
if ((error = git_str_joinpath(&state_path, repo->gitdir, REBASE_MERGE_DIR)) < 0
|
633
|
+
if ((error = git_str_joinpath(&state_path, repo->gitdir, REBASE_MERGE_DIR)) < 0 ||
|
634
|
+
(error = git_str_put(&rebase->state_filename, state_path.ptr, state_path.size)) < 0)
|
648
635
|
goto done;
|
649
636
|
|
650
637
|
rebase->state_path = git_str_detach(&state_path);
|
@@ -814,7 +801,7 @@ static int rebase_next_merge(
|
|
814
801
|
git_indexwriter indexwriter = GIT_INDEXWRITER_INIT;
|
815
802
|
git_rebase_operation *operation;
|
816
803
|
git_checkout_options checkout_opts;
|
817
|
-
char current_idstr[
|
804
|
+
char current_idstr[GIT_OID_MAX_HEXSIZE + 1];
|
818
805
|
unsigned int parent_count;
|
819
806
|
int error;
|
820
807
|
|
@@ -837,13 +824,13 @@ static int rebase_next_merge(
|
|
837
824
|
goto done;
|
838
825
|
}
|
839
826
|
|
840
|
-
|
827
|
+
git_oid_tostr(current_idstr, GIT_OID_MAX_HEXSIZE + 1, &operation->id);
|
841
828
|
|
842
829
|
normalize_checkout_options_for_apply(&checkout_opts, rebase, current_commit);
|
843
830
|
|
844
831
|
if ((error = git_indexwriter_init_for_operation(&indexwriter, rebase->repo, &checkout_opts.checkout_strategy)) < 0 ||
|
845
832
|
(error = rebase_setupfile(rebase, MSGNUM_FILE, 0, "%" PRIuZ "\n", rebase->current+1)) < 0 ||
|
846
|
-
(error = rebase_setupfile(rebase, CURRENT_FILE, 0, "
|
833
|
+
(error = rebase_setupfile(rebase, CURRENT_FILE, 0, "%s\n", current_idstr)) < 0 ||
|
847
834
|
(error = git_merge_trees(&index, rebase->repo, parent_tree, head_tree, current_tree, &rebase->options.merge_options)) < 0 ||
|
848
835
|
(error = git_merge__check_result(rebase->repo, index)) < 0 ||
|
849
836
|
(error = git_checkout_index(rebase->repo, index, &checkout_opts)) < 0 ||
|
@@ -1103,7 +1090,7 @@ static int rebase_commit_merge(
|
|
1103
1090
|
git_reference *head = NULL;
|
1104
1091
|
git_commit *head_commit = NULL, *commit = NULL;
|
1105
1092
|
git_index *index = NULL;
|
1106
|
-
char old_idstr[
|
1093
|
+
char old_idstr[GIT_OID_MAX_HEXSIZE + 1], new_idstr[GIT_OID_MAX_HEXSIZE + 1];
|
1107
1094
|
int error;
|
1108
1095
|
|
1109
1096
|
operation = git_array_get(rebase->operations, rebase->current);
|
@@ -1119,11 +1106,11 @@ static int rebase_commit_merge(
|
|
1119
1106
|
rebase->repo, NULL, "HEAD", git_commit_id(commit), "rebase")) < 0)
|
1120
1107
|
goto done;
|
1121
1108
|
|
1122
|
-
|
1123
|
-
|
1109
|
+
git_oid_tostr(old_idstr, GIT_OID_MAX_HEXSIZE + 1, &operation->id);
|
1110
|
+
git_oid_tostr(new_idstr, GIT_OID_MAX_HEXSIZE + 1, git_commit_id(commit));
|
1124
1111
|
|
1125
1112
|
if ((error = rebase_setupfile(rebase, REWRITTEN_FILE, O_CREAT|O_WRONLY|O_APPEND,
|
1126
|
-
|
1113
|
+
"%s %s\n", old_idstr, new_idstr)) < 0)
|
1127
1114
|
goto done;
|
1128
1115
|
|
1129
1116
|
git_oid_cpy(commit_id, git_commit_id(commit));
|
@@ -1306,7 +1293,9 @@ static int rebase_copy_notes(
|
|
1306
1293
|
git_rebase *rebase,
|
1307
1294
|
const git_signature *committer)
|
1308
1295
|
{
|
1309
|
-
git_str path = GIT_STR_INIT,
|
1296
|
+
git_str path = GIT_STR_INIT,
|
1297
|
+
rewritten = GIT_STR_INIT,
|
1298
|
+
notes_ref = GIT_STR_INIT;
|
1310
1299
|
char *pair_list, *fromstr, *tostr, *end;
|
1311
1300
|
git_oid from, to;
|
1312
1301
|
unsigned int linenum = 1;
|
@@ -1342,10 +1331,10 @@ static int rebase_copy_notes(
|
|
1342
1331
|
tostr = end+1;
|
1343
1332
|
*end = '\0';
|
1344
1333
|
|
1345
|
-
if (strlen(fromstr) !=
|
1346
|
-
|
1347
|
-
|
1348
|
-
|
1334
|
+
if (strlen(fromstr) != git_oid_hexsize(rebase->repo->oid_type) ||
|
1335
|
+
strlen(tostr) != git_oid_hexsize(rebase->repo->oid_type) ||
|
1336
|
+
git_oid__fromstr(&from, fromstr, rebase->repo->oid_type) < 0 ||
|
1337
|
+
git_oid__fromstr(&to, tostr, rebase->repo->oid_type) < 0)
|
1349
1338
|
goto on_error;
|
1350
1339
|
|
1351
1340
|
if ((error = rebase_copy_note(rebase, notes_ref.ptr, &from, &to, committer)) < 0)
|
@@ -1373,17 +1362,15 @@ static int return_to_orig_head(git_rebase *rebase)
|
|
1373
1362
|
git_reference *terminal_ref = NULL, *branch_ref = NULL, *head_ref = NULL;
|
1374
1363
|
git_commit *terminal_commit = NULL;
|
1375
1364
|
git_str branch_msg = GIT_STR_INIT, head_msg = GIT_STR_INIT;
|
1376
|
-
char onto[
|
1365
|
+
char onto[GIT_OID_MAX_HEXSIZE + 1];
|
1377
1366
|
int error = 0;
|
1378
1367
|
|
1379
|
-
|
1368
|
+
git_oid_tostr(onto, GIT_OID_MAX_HEXSIZE + 1, &rebase->onto_id);
|
1380
1369
|
|
1381
1370
|
if ((error = git_str_printf(&branch_msg,
|
1382
|
-
"rebase finished: %s onto
|
1383
|
-
rebase->orig_head_name, GIT_OID_SHA1_HEXSIZE, onto)) == 0 &&
|
1371
|
+
"rebase finished: %s onto %s", rebase->orig_head_name, onto)) == 0 &&
|
1384
1372
|
(error = git_str_printf(&head_msg,
|
1385
|
-
"rebase finished: returning to %s",
|
1386
|
-
rebase->orig_head_name)) == 0 &&
|
1373
|
+
"rebase finished: returning to %s", rebase->orig_head_name)) == 0 &&
|
1387
1374
|
(error = git_repository_head(&terminal_ref, rebase->repo)) == 0 &&
|
1388
1375
|
(error = git_reference_peel((git_object **)&terminal_commit,
|
1389
1376
|
terminal_ref, GIT_OBJECT_COMMIT)) == 0 &&
|
@@ -1475,6 +1462,7 @@ void git_rebase_free(git_rebase *rebase)
|
|
1475
1462
|
git__free(rebase->onto_name);
|
1476
1463
|
git__free(rebase->orig_head_name);
|
1477
1464
|
git__free(rebase->state_path);
|
1465
|
+
git_str_dispose(&rebase->state_filename);
|
1478
1466
|
git_array_clear(rebase->operations);
|
1479
1467
|
git__free((char *)rebase->options.rewrite_notes_ref);
|
1480
1468
|
git__free(rebase);
|