Subject: Re: [RFCv2/FYI] git-sequencer.txt

From: Paolo Bonzini <[email-masked]>
Date: Wed, 11 Jun 2008 18:31:28 -0700

> 	--collect-signoffs;;
> 		Collect the Signed-by-off: lines of each commit and
> 		add them to the squashed commit message.

I think this makes sense only if -m/-F/-C/-c (see later) is used, 
because otherwise the default behavior would be to concatenate all 
messages and call the editor, right?  Would it be a no-op if those 
options are not given?

> tag <tag>::
> 	Set tag `<tag>` to the current HEAD,
> 	see also linkgit:git-tag[1].
> 	If another commit is tagged `<tag>`, it will lose this tag,
> 	i.e. the tag will be reset to HEAD.

Is this a lightweight or a heavyweight tag?  I guess lightweight -- the 
tag command should probably support -a, -s and -u like git-tag does. 
Unless -c/-C/-F/-m is given, the sequencer will then run the editor.

> -C <commit-ish>::
> --reuse-commit=<commit-ish>::
> --reference=<commit-ish>::
> 	Reuse message and authorship data from specified commit.

Why --reference?  Also,

> -M <commit-ish>
> --reuse-message=<commit-ish>::
> 	Reuse message from specified commit.
> 	Note, that only the commit message is reused
> 	and not the authorship information.

For consistency with git-commit I would think it's better to have

   -c <commit-ish>::
   -C <commit-ish>::
   --reedit-message=<commit-ish>::
   --reuse-message=<commit-ish>::
	Take existing commit object, and reuse the log message and the
         authorship information (including the timestamp) when creating
         the commit. With -C (or --reuse-message), the editor is not
	invoked; with -c (or --reedit-message) the user can further edit
	the commit message.

(I know it's confusing that it's reusing the message too, but...) and 
then a separate option:

   -A
   --author-override::
	Force authorship information for commits created by the command
	to be the data in git's configuration files.

... if it is not too complicated to implement.

To satisfy Pierre's comment, you might also add a "-e" general option, 
which forces an invocation of the editor -- even if -C/-m/-F are given, 
and even if the command is pick/patch/merge.  I guess that in order to 
support -C/-m/-F you already have to use git-cherry-pick and git-merge's 
--no-commit options, so it should not be hard to implement.

Paolo