[PATCH 2/4] git-rebase: document ack
document ack! behaviour and use Signed-off-by: Michael S. Tsirkin --- 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 0387b40..257d75c 100644 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@ -402,7 +402,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. + This uses the `--interactive` machinery internally, but it can be run without an explicit `--interactive`. @@ -419,13 +419,13 @@ without an explicit `--interactive`. --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. @@ -649,6 +649,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 + +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 automatically changed from `pick` to `ack` +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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/4] git-rebase: document ack
document ack! behaviour and use Signed-off-by: Michael S. Tsirkin --- 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 , 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 + +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` +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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/4] git-rebase: document ack
On Sun, May 18, 2014 at 5:17 PM, Michael S. Tsirkin wrote: > document ack! behaviour and use > > Signed-off-by: Michael S. Tsirkin > --- > 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 , 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 > + > +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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html