rebase: Handle cases where format-patch fails
authorAndrew Wong <andrew.kw.w@gmail.com>
Thu, 11 Oct 2012 03:54:03 +0000 (23:54 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 11 Oct 2012 18:54:49 +0000 (11:54 -0700)
commite481af06be6fa112cec9f53fabd51d3b4cc6c64d
treee4a6bd4e5914f740af22645e85c704190bc30a6f
parent40701adbcbbc1e3e4485562a36343f4781e62be5
rebase: Handle cases where format-patch fails

'format-patch' could fail due to reasons such as out of memory. Such
failures are not detected or handled, which causes rebase to incorrectly
think that it completed successfully and continue with cleanup. i.e.
calling move_to_original_branch

Instead of using a pipe, we separate 'format-patch' and 'am' by using an
intermediate file. This gurantees that we can invoke 'am' with the
complete input, or not invoking 'am' at all if 'format-patch' failed.

Also remove the use of '&&' at the end of the if-block, and rearrange
the 'write_basic_state' and 'move_to_original_branch' to make the logic
flow a bit better and easier to read.

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-rebase--am.sh