On 08.06.12 16:53, Lucien Kong wrote: > This patch provides a way to automatically add these "exec" lines > between each commit applications. For instance, running 'git rebase -i > --exec "make test"' lets you check that intermediate commits are > compilable. It is also compatible with the option --autosquash. At > this point, you can't use --exec without the interactive mode (-i). > > Tests about this new command are also added in > t3404-rebase-interactive.sh. > Should now work on MacOS. Hej, I'm not sure on which commit to apply the patch. (may be we shoud improve git format-patch to tell us the original commit ID), but if I remove the non applying part, it looks like this: ================= ok 54 - rebase-i history with funny messages expecting success: git checkout master && git checkout -b execute && test_commit one_exec main.txt one_exec && test_commit two_exec main.txt two_exec && test_commit three_exec main.txt three_exec Switched to branch 'master' Switched to a new branch 'execute' [execute 925b01e] one_exec Author: A U Thor <author@xxxxxxxxxxx> 1 file changed, 1 insertion(+) create mode 100644 main.txt [execute 7f87cbe] two_exec Author: A U Thor <author@xxxxxxxxxxx> 1 file changed, 1 insertion(+), 1 deletion(-) [execute f0f177e] three_exec Author: A U Thor <author@xxxxxxxxxxx> 1 file changed, 1 insertion(+), 1 deletion(-) ok 55 - prepare for rebase -i --exec expecting success: git rebase -i --exec "git show HEAD" HEAD~2 >actual && ( FAKE_LINES="1 exec_git_show_HEAD 2 exec_git_show_HEAD" && export FAKE_LINES && git rebase -i HEAD~2 >expected ) && sed 1,9d expected >expect && mv expect expected && test_cmp expected actual error: unknown option `exec' usage: git rebase [-i] [options] [--onto <newbase>] [<upstream>] [<branch>] or: git rebase [-i] [options] --onto <newbase> --root [<branch>] or: git-rebase [-i] --continue | --abort | --skip Available options are -v, --verbose display a diffstat of what changed upstream -q, --quiet be quiet. implies --no-stat --onto ... rebase onto given branch instead of upstream -p, --preserve-merges try to recreate merges instead of ignoring them -s, --strategy ... use the given merge strategy --no-ff cherry-pick all commits, even if unchanged -m, --merge use merging strategies to rebase -i, --interactive let the user edit the list of commits to rebase -k, --keep-empty preserve empty commits during rebase -f, --force-rebase force rebase even if branch is up to date -X, --strategy-option ... pass the argument through to the merge strategy --stat display a diffstat of what changed upstream -n, --no-stat do not show diffstat of what changed upstream --verify allow pre-rebase hook to run --rerere-autoupdate allow rerere to update index with resolved conflicts --root rebase all reachable commits up to the root(s) --autosquash move commits that begin with squash!/fixup! under -i --committer-date-is-author-date passed to 'git am' --ignore-date passed to 'git am' --whitespace ... passed to 'git apply' --ignore-whitespace passed to 'git apply' -C ... passed to 'git apply' Actions: --continue continue --abort abort and check out the original branch --skip skip current patch and continue not ok - 56 running "git rebase -i --exec git show HEAD" # # git rebase -i --exec "git show HEAD" HEAD~2 >actual && # ( # FAKE_LINES="1 exec_git_show_HEAD 2 exec_git_show_HEAD" && # export FAKE_LINES && # git rebase -i HEAD~2 >expected # ) && # sed 1,9d expected >expect && # mv expect expected && # test_cmp expected actual # expecting success: git reset --hard execute && git rebase --exec "git show HEAD" -i HEAD~2 >actual && ( FAKE_LINES="1 exec_git_show_HEAD 2 exec_git_show_HEAD" && export FAKE_LINES && git rebase -i HEAD~2 >expected ) && sed 1,9d expected >expect && mv expect expected && test_cmp expected actual HEAD is now at f0f177e three_exec error: unknown option `exec' usage: git rebase [-i] [options] [--onto <newbase>] [<upstream>] [<branch>] or: git rebase [-i] [options] --onto <newbase> --root [<branch>] or: git-rebase [-i] --continue | --abort | --skip Available options are -v, --verbose display a diffstat of what changed upstream -q, --quiet be quiet. implies --no-stat --onto ... rebase onto given branch instead of upstream -p, --preserve-merges try to recreate merges instead of ignoring them -s, --strategy ... use the given merge strategy --no-ff cherry-pick all commits, even if unchanged -m, --merge use merging strategies to rebase -i, --interactive let the user edit the list of commits to rebase -k, --keep-empty preserve empty commits during rebase -f, --force-rebase force rebase even if branch is up to date -X, --strategy-option ... pass the argument through to the merge strategy --stat display a diffstat of what changed upstream -n, --no-stat do not show diffstat of what changed upstream --verify allow pre-rebase hook to run --rerere-autoupdate allow rerere to update index with resolved conflicts --root rebase all reachable commits up to the root(s) --autosquash move commits that begin with squash!/fixup! under -i --committer-date-is-author-date passed to 'git am' --ignore-date passed to 'git am' --whitespace ... passed to 'git apply' --ignore-whitespace passed to 'git apply' -C ... passed to 'git apply' Actions: --continue continue --abort abort and check out the original branch --skip skip current patch and continue not ok - 57 running "git rebase --exec git show HEAD -i" -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html