rebase -i: add exec command to launch a shell command
authorMatthieu Moy <Matthieu.Moy@imag.fr>
Tue, 10 Aug 2010 15:17:51 +0000 (17:17 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 11 Aug 2010 17:21:34 +0000 (10:21 -0700)
commitcd035b1cef39811fd3116aa07d99395960ec947a
tree6f7a28433e7ac08f97333912a4ef74857d627a48
parent64fdc08dac6694d1e754580e7acb82dfa4988bb9
rebase -i: add exec command to launch a shell command

The typical usage pattern would be to run a test (or simply a compilation
command) at given points in history.

The shell command is ran (from the worktree root), and the rebase is
stopped when the command fails, to give the user an opportunity to fix
the problem before continuing with "git rebase --continue".

This needs a little rework of skip_unnecessary_picks, which wasn't robust
enough to deal with lines like

  exec >"file    name with many spaces"

in the todolist. The new version extracts command, sha1 and rest from
each line, but outputs the line itself verbatim to avoid changing the
whitespace layout.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-rebase.txt
git-rebase--interactive.sh
t/lib-rebase.sh
t/t3404-rebase-interactive.sh