On Sun, May 18, 2014 at 5:17 PM, Michael S. Tsirkin <mst@xxxxxxxxxx> wrote: > document ack! behaviour and use > > Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> > --- > Documentation/git-rebase.txt | 45 +++++++++++++++++++++++++++++++++++++++----- > 1 file changed, 40 insertions(+), 5 deletions(-) > > diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt > index 2a93c64..c27aef4 100644 > --- a/Documentation/git-rebase.txt > +++ b/Documentation/git-rebase.txt > @@ -384,7 +384,7 @@ or by giving more than one `--exec`: > + > If `--autosquash` is used, "exec" lines will not be appended for > the intermediate commits, and will only appear at the end of each > -squash/fixup series. > +squash/fixup/ack series. > > --root:: > Rebase all commits reachable from <branch>, instead of > @@ -398,13 +398,13 @@ squash/fixup series. > > --autosquash:: > --no-autosquash:: > - When the commit log message begins with "squash! ..." (or > - "fixup! ..."), and there is a commit whose title begins with > + When the commit log message begins with "squash! ..." ("fixup! ..." > + or "ack! ..."), and there is a commit whose title begins with > the same ..., automatically modify the todo list of rebase -i > so that the commit marked for squashing comes right after the > commit to be modified, and change the action of the moved > - commit from `pick` to `squash` (or `fixup`). Ignores subsequent > - "fixup! " or "squash! " after the first, in case you referred to an > + commit from `pick` to `squash` (`fixup` or `ack`). Ignores subsequent > + "ack! ", "fixup! " or "squash! " after the first, in case you referred to an > earlier fixup/squash with `git commit --fixup/--squash`. > + > This option is only valid when the '--interactive' option is used. > @@ -624,6 +624,41 @@ consistent (they compile, pass the testsuite, etc.) you should use > 'git stash' to stash away the not-yet-committed changes > after each commit, test, and amend the commit if fixes are necessary. > > +---------------- > +RECORDING ACKS > +---------------- > + > +Interactive mode with --autosquash can be used to concatenate > +commit log for several commits, which is useful to record > +extra information about the commit, such as ack signatures. > +This allows, for example, the following workflow: > + > +1. receive patches by mail and commit > +2. receive by mail ack signatures for the patches > +3. prepare a series for submission > +4. submit > + > +where point 2. consists of several instances of > + i) create a (possibly empty) commit with signature > + in the commit message > + > +Sometimes the ack signature added in i. cannot be amended to the > +commit it acks, because that commit is buried deeply in a > +patch series. That is exactly what rebase --autosquash > +option is for: use it > +after plenty of "i"s, to automaticlly rearrange > +commits, and squashing multiple sign-off commits into > +the commit that is signed. > + > +Start it with the last commit you want to retain as-is: > + > + git rebase --autosquash -i <after-this-commit> > + > +An editor will be fired up with all the commits in your current branch > +which come after the given commit. Ack commits will be > +re-arranged to come after the commit that is acked, > +and the action will be utomticlly changed from `pick` to `ack` s/utomticlly/automatically/ > +to cause them to be squashed into the acked commit. > > RECOVERING FROM UPSTREAM REBASE > ------------------------------- > -- > MST > -- 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