You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the fifth iteration of the long-awaited re-roll of the attempt to
avoid spawning merge-recursive from the builtin am and use merge_recursive()
directly instead.
The *real* reason for the reroll is that I need a libified recursive
merge to accelerate the interactive rebase by teaching the sequencer to
do rebase -i's grunt work. Coming with a very nice 3x-5x speedup of
`rebase -i`.
In this endeavor, we need to be extra careful to retain backwards
compatibility. The test script t6022-merge-rename.sh, for example, verifies
that `git pull` exits with status 128 in case of a fatal error. To that end,
we need to make sure that fatal errors are handled by existing (builtin)
users via exit(128) (or die(), which calls exit(128) at the end). New users
(such as a builtin helper doing rebase -i's grunt work) may want to print
some helpful advice what happened and how to get out of this mess before
erroring out.
The changes relative to the fourth iteration of this patch series:
- the first patch which introduces a tests case to t5520 was prettified:
- it uses test_seq now,
- it avoids `printf` when `echo` does the job, too,
- it adds a missing empty line between test cases, and
- it clarifies why we need to check out with force.
- the change that would have made the bug report about a too-small
buffer in imap-send was reverted, because it did more than was claimed
by the commit message.
- the "Let's teach them manners" part of one commit message was replaced
with a less flippant description.
- the comment before merge_recursive() that claims that the return value
is ignored now clarifies that it is ignored unless it indicates an
error.
- during the rebase to `master`, a trivial merge conflict with the
`jc/renormalize-merge-kill-safer-crlf` branch was resolved.
This patch series touches rather important code. Now that I addressed
concerns such as prettifying some test code, I would appreciate thorough
reviews with a focus on the critical parts of the code, those that could
result in regressions.
Johannes Schindelin (16):
t5520: verify that `pull --rebase` shows the helpful advice when
failing
Report bugs consistently
Avoid translating bug messages
merge-recursive: clarify code in was_tracked()
Prepare the builtins for a libified merge_recursive()
merge_recursive: abort properly upon errors
merge-recursive: avoid returning a wholesale struct
merge-recursive: allow write_tree_from_memory() to error out
merge-recursive: handle return values indicating errors
merge-recursive: switch to returning errors instead of dying
am -3: use merge_recursive() directly again
merge-recursive: flush output buffer before printing error messages
merge-recursive: write the commit title in one go
merge-recursive: offer an option to retain the output in 'obuf'
Ensure that the output buffer is released after calling merge_trees()
merge-recursive: flush output buffer even when erroring out
builtin/am.c | 62 ++----
builtin/checkout.c | 5 +-
builtin/ls-files.c | 3 +-
builtin/merge.c | 2 +
builtin/update-index.c | 2 +-
grep.c | 8 +-
imap-send.c | 2 +-
merge-recursive.c | 578 +++++++++++++++++++++++++++++--------------------
merge-recursive.h | 2 +-
sequencer.c | 5 +
sha1_file.c | 4 +-
t/t5520-pull.sh | 32 +++
trailer.c | 2 +-
transport.c | 2 +-
wt-status.c | 4 +-
15 files changed, 418 insertions(+), 295 deletions(-)
Submitted-As: http://mid.gmane.org/cover.1469547160.git.johannes.schindelin@gmx.de
In-Reply-To: http://mid.gmane.org/cover.1467902082.git.johannes.schindelin@gmx.de
In-Reply-To: http://mid.gmane.org/cover.1467199553.git.johannes.schindelin@gmx.de
In-Reply-To: http://mid.gmane.org/cover.1467717729.git.johannes.schindelin@gmx.de
In-Reply-To: http://mid.gmane.org/cover.1469187652.git.johannes.schindelin@gmx.de