On Thu, Nov 29, 2018 at 11:44 AM Honza Bambas <hbam...@mozilla.com> wrote:

> On 2018-11-29 17:12, Ehsan Akhgari wrote:
> > On Thu, Nov 29, 2018 at 8:00 AM Boris Zbarsky <bzbar...@mit.edu> wrote:
> >
> >> On 11/29/18 7:38 AM, Sylvestre Ledru wrote:
> >>> This extension will automatically rebase the local changes to avoid
> >>> conflicts.
> >> Sylvestre,
> >>
> >> Will it also update mq patches, or just in-repo commits?
> >>
> > I don't think this extension is aware of mq patches (since they don't
> > really get rebased), but that being said from my foggy memory of using mq
> > ages ago, I seem to remember that it used to be possible to use the
> qfinish
> > command to convert them into regular hg commits and then later on to use
> > qimport -r (IIRC) to convert them back into mq patches again.  If that is
> > still a workflow that works, then it should be possible to:
> >
> >    * Pull from a pre-reformat of the tree, run ./mach bootstrap to
> install
> > hg-formatsource.
> >    * Do a one-time translation of your mq queue to a set of commits.
> >    * Pull from hg.mozilla.org to pick up the reformat commit.
> And you forget that a merge will be needed here, because the formatting
> changes will likely collide with the code one's patches are touching.

No, I didn't.  :-)  That's exactly what the hg-formatsource extension does
for you, it reformats your local changes on the fly as the rebase is in
progress, so you will get no collisions.

> When we were mass-converting from PRUint32 to uint32_t etc, there was a
> tool capable of converting your patches based on the pre-formated code
> to be apply-able on the formatted code.
> This is what we are missing.  So some of us may expect a huge merge pain
> w/o something like that.

No, those are old days and long gone, my friend.  We are living in a new
world with better tools these days (for Mercurial users).

> OTOH, if the changes are only whitespace changes, maybe there is some
> way `patch --ignore-whitespace --fuzz N` could apply the patches.  Then
> just re-format and your patches are OK.
> >    * Do a one-time translation of your mq queue back to a series of
> patches.
> That doesn't make much sense, because the commit history will look
> something like (newest to oldest):
> - merge of my patches with the formatted changes, having two parents
> (formatted code default + my mq tip)
> - formatted code `tip` (or `default`)
> - my mq committed [ ]
> - pre-formated parent
> - ...
> You can't just recreate your mq from such changeset tree and you also
> can't avoid the likely quite complicated merge anyway.

Again, no merge commits.  Please do note that I was suggesting there that
you should use the rebase command, not merge.  I think that would be |hg
pull --rebase|.

dev-platform mailing list

Reply via email to