Re: [PATCH v2 3/3] Add option to transpose parents of merge commit
Johannes Sixt writes: > Am 11/28/2012 0:00, schrieb Kacper Kornet: >> When the changes are pushed upstream, and in the meantime someone else >> updated upstream branch git advises to use git pull. This results in >> history: >> >> ---A---B---C-- >> \ / >> D---E > > The commit message will say: > > Merge branch 'master' of /that/remote > > * 'master' of /that/remote: > E > D > >> where B is the local commit. D, E are commits pushed by someone else >> when the developer was working on B. However sometimes the following >> history is preferable: >> >> ---A---D---C'-- >> \ / >> '-B-' > > Better: > > ---A--D--E--C' > \ / > `B Yup, that topology is what Kacper's workflow wants. Stepping back a bit, however, I am not sure if that is really true. The goal of this topic seems to be to keep one integration branch and always merge *into* that integration branch, never *from* it, but for what purpose? Making the "log --first-parent" express the integration branch as a linear series of progress? If so, I suspect a project with such a policy would dictate that D and E also be on a side branch, i.e. the history would look more like this: D---E / \ --A---X---C--- \ / `---B with X being a --no-ff merge of the topic that consists of these two commits. > In this case, the commit message should say... what? Certainly not the > same thing. But I do not see that you changed anything in this regard. True. If the goal is to emulate a merge of B from a side branch into _the_ integration branch, the summary should also emulate the message that would be given when the remote pulled from your current branch. -- 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 v2 3/3] Add option to transpose parents of merge commit
Am 11/28/2012 0:00, schrieb Kacper Kornet: > When the changes are pushed upstream, and in the meantime someone else > updated upstream branch git advises to use git pull. This results in > history: > > ---A---B---C-- > \ / > D---E The commit message will say: Merge branch 'master' of /that/remote * 'master' of /that/remote: E D > where B is the local commit. D, E are commits pushed by someone else > when the developer was working on B. However sometimes the following > history is preferable: > > ---A---D---C'-- > \ / > '-B-' Better: ---A--D--E--C' \ / `B In this case, the commit message should say... what? Certainly not the same thing. But I do not see that you changed anything in this regard. -- Hannes -- 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 v2 3/3] Add option to transpose parents of merge commit
On Tue, Nov 27, 2012 at 06:18:00PM -0800, Junio C Hamano wrote: > Kacper Kornet writes: > > +--transpose-parents:: > > + Transpose the parents in the final commit. The change is made > > + just before the commit so the meaning of 'our' and 'their' > > + concepts remains the same (i.e. 'our' means current branch before > > + the merge). > > + > How does this interact with Octopus merges? It moves the original first parent to the last position. And nothing more. I have forgotten to mention it in the documentation. > > diff --git a/builtin/commit.c b/builtin/commit.c > > index ee0e884..ab2b844 100644 > > --- a/builtin/commit.c > > +++ b/builtin/commit.c > > @@ -1477,6 +1477,7 @@ int cmd_commit(int argc, const char **argv, const > > char *prefix) > > } else if (whence == FROM_MERGE) { > > struct strbuf m = STRBUF_INIT; > > FILE *fp; > > + int reversed_order=0; > Style. s/=/ = /; > > + OPT_BOOLEAN(0, "transpose-parents", &reversed_order, N_("reverse order > > of parents") > It smells more like "--reverse-parents" (if you deal only with > two-head merges), no? I have changes to --transpose-parents because of the octopus merges. Although it is not a mathematical transposition in this case, but a cycle permutation. -- Kacper -- 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 v2 3/3] Add option to transpose parents of merge commit
Kacper Kornet writes: > +--transpose-parents:: > + Transpose the parents in the final commit. The change is made > + just before the commit so the meaning of 'our' and 'their' > + concepts remains the same (i.e. 'our' means current branch before > + the merge). > + How does this interact with Octopus merges? > diff --git a/builtin/commit.c b/builtin/commit.c > index ee0e884..ab2b844 100644 > --- a/builtin/commit.c > +++ b/builtin/commit.c > @@ -1477,6 +1477,7 @@ int cmd_commit(int argc, const char **argv, const char > *prefix) > } else if (whence == FROM_MERGE) { > struct strbuf m = STRBUF_INIT; > FILE *fp; > + int reversed_order=0; Style. s/=/ = /; > + OPT_BOOLEAN(0, "transpose-parents", &reversed_order, N_("reverse order > of parents") It smells more like "--reverse-parents" (if you deal only with two-head merges), no? -- 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