I often find myself pulling patches off of other peoples trees using cherry-pick, and following it with an immediate 'git commit --amend -s' command. Eliminate the need for a double commit by allowing signoff on a cherry-pick or revert. Signed-off-by: Dan McGee <dpmcgee@xxxxxxxxx> --- This is something I have done in my workflow for a long time, and it seems like a weird omission to me. Signoffs can be done on git-am without having a second commit, and I often have a workflow where I am picking patches from other users' topic branches and have reviewed the patch and would like to signoff when I pull it into my tree. I'm not particularly happy about the 4 case if statement at the end, so I'd be happy to clean that up if anyone has suggestions. builtin-revert.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/builtin-revert.c b/builtin-revert.c index 607a2f0..433d0dd 100644 --- a/builtin-revert.c +++ b/builtin-revert.c @@ -33,7 +33,7 @@ static const char * const cherry_pick_usage[] = { NULL }; -static int edit, no_replay, no_commit, mainline; +static int edit, no_replay, no_commit, mainline, signoff; static enum { REVERT, CHERRY_PICK } action; static struct commit *commit; @@ -53,6 +53,7 @@ static void parse_args(int argc, const char **argv) OPT_BOOLEAN('e', "edit", &edit, "edit the commit message"), OPT_BOOLEAN('x', NULL, &no_replay, "append commit name when cherry-picking"), OPT_BOOLEAN('r', NULL, &noop, "no-op (backward compatibility)"), + OPT_BOOLEAN('s', "signoff", &signoff, "add Signed-off-by: header"), OPT_INTEGER('m', "mainline", &mainline, "parent number"), OPT_END(), }; @@ -404,10 +405,14 @@ static int revert_or_cherry_pick(int argc, const char **argv) */ if (!no_commit) { - if (edit) + if (edit && !signoff) return execl_git_cmd("commit", "-n", NULL); - else + else if (edit) + return execl_git_cmd("commit", "-n", "-s", NULL); + else if (!signoff) return execl_git_cmd("commit", "-n", "-F", defmsg, NULL); + else + return execl_git_cmd("commit", "-n", "-s", "-F", defmsg, NULL); } free(reencoded_message); -- 1.5.5 -- 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