Re: [PATCH] docs: Clarify what git-rebase's "--preserve-merges" does
- From
Sergey Organov <sorganov@gmail.com>
- Date
- Mar 26, 2015, 21:17 UTC
- Message-ID
- <871tkblapv.fsf@javad.com>
- In-Reply-To
- <xmqqd23vzkon.fsf@gitster.dls.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
[...]
Show 12 quoted lines
> I think the current preserve-merges considers everything between > <upstream> and <branch> as "commits to be rebased", and recreate > merges across these rebased tips of branches that are merged. > > There however were repeated wishes (or wishful misunderstandings ;-) > that there were a mode to rebuild the trunk, considering only the > commits on the first-parent chain as "commits to be rebased", > recreating the history by replaying the merge commits (whose first > parent might be rewritten during the rebase, but the tips of side > branches these merges bring into the history are kept intact). > > Surely there is no such mode right now,
Isn't it what Johannes Sixt <j6t@kdbg.org> mentions here?:
[QUOTE] If you want a version of --preserve-merges that does what *you* need, consider this commit:
git://repo.or.cz/git/mingw/j6t.git rebase-p-first-parent
Use it like this:
git rebase -i -p --first-parent ...
Beware, its implementation is incomplete: if the rebase is interrupted, then 'git rebase --continue' behaves as if --first-parent were not given. [/QUOTE].
ref: http://permalink.gmane.org/gmane.comp.version-control.git/263584
If so, then I'd say such mode almost exists.
> but I am fairly sure that I wouldn't have any objection against a > patch to implement such a feature (perhaps "--first-parent > --preserve-merges"?),
It'd be very welcome feature here, preferably along with a way to pass it to 'git pull --rebase', including a way to configure it to be the default.
Show 5 quoted lines
> and with or without such a feature in the system, I would be happier > if we made sure that the description we are discussing to update makes > it clear that the current behaviour is "everything between <upstream> > and <branch>", and cannot be misread as "do not touch side branches > instead of dropping merged commits".
I'd also suggest to somehow warn in the manual that current modes of operation silently drop changes to merge commits that were made to non-conflicting paths (either during conflict resolution or otherwise.)
-- Sergey.