Closed Bug 1117857 Opened 9 years ago Closed 8 years ago

Deploy the pushrebase extension to hg.m.o once the feature stabilizes

Categories

(Developer Services :: Mercurial: hg.mozilla.org, defect)

x86_64
Windows 8.1
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: KWierso, Assigned: gps)

References

()

Details

Attachments

(5 files)

[20:35]	KWierso	what'd be the suggested way to do the equivalent of queueing up several people's patches and easily rebasing them onto tip if I lose a push race with someone? I think that's the only thing left that I'd be wanting mq for ( qpop all of my stuff, hg pull -u to pull in newly pushed stuff, qpush my stuff back on, hg push to push my stuff)
[20:36]	gps	hg pull inbound
[20:36]	gps	hg rebase -d inbound
[20:36]	gps	(assuming working copy is the head you are attempting to push)
[20:37]	gps	fwiw, facebook wrote a mercurial extension that automatically performs a rebase on the server during push
[20:37]	gps	if the push rebases cleanly (without merges), it just does it
[20:37]	KWierso	facebook++
[20:37]	gps	they did this because lots of people were hitting push races
[20:37]	gps	we can deploy that once the mercurial feature stabilizes
[20:38]	gps	facebook controls all their mercurial clients, so they can deploy experimental, api unstable versions and not have to deal with a mismatch of client versions
[20:38]	gps	we don't have that luxury
Thanks for reading my mind :)

First, obligatory note that in a post-autoland world, this extension is less useful. But we should still deploy it :)

Deploying this extension is blocked on enabling bundle2 in production. We can't enable bundle2 now because it isn't guaranteed to be backwards compatible. Facebook gets away with it because they control the Mercurial client installs and can perform company-wide upgrades rather atomically, mitigating backwards compatibility concerns.

I fully intend on enabling bundle2 once it is stable. But once it is stable, it will likely be enabled by default :)
With the deployment of Mercurial 3.4.1 to hg.mozilla.org a few days ago, bundle2 now works in production and this extension is deployable. However, until Mercurial 3.5 where Mercurial will enable bundle2 on clients, clients will need to enable bundle2 via hgrc to leverage this feature.

I'll audit the source code to pushrebase and see about deploying this.
I just looked at the source code for pushrebase and it looks safe and easy to deploy to hg.mozilla.org. Although, the UX is a bit kludgy: you must use `hg push --onto <revset>` to opt in to auto rebase mode. This is something we could enable silently when pushing to a known Firefox repo via the firefoxtree extension, however.

Let me hack up some patches real quick.
Assignee: nobody → gps
Status: NEW → ASSIGNED
pushrebase: add extension (bug 1117857)

Code imported unchanged from revision
923076c8f37a561a5ef4eff12fea0097339d71a7 of
https://bitbucket.org/facebook/hg-experimental/.
Attachment #8621747 - Flags: review?(smacleod)
pushrebase: add README (bug 1117857)

We want to let people know that some of the code comes from upstream.
Attachment #8621748 - Flags: review?(smacleod)
pushrebase: mark compatibility with 3.4 (bug 1117857)

Our test harness requires extension compatibility to be explicitly
declared. It isn't defined upstream, so define it locally.
Attachment #8621749 - Flags: review?(smacleod)
pushrebase: add smoke test (bug 1117857)

We want pushrebase to have at least some automated testing in our local
environment so we have some guarantee that it is working.
Attachment #8621750 - Flags: review?(smacleod)
ansible/hg-ssh: activate pushrebase extension (bug 1117857)

The extension requires no server-side configuration. Just install it and
it becomes available. Only clients using the extension will be impacted
by its presence.
Attachment #8621751 - Flags: review?(smacleod)
https://reviewboard.mozilla.org/r/11041/#review9637

I'm still working on the integration with the firefoxtree extension so pushrebase is enabled automatically. But at least this will unblock clients from enabling it manually.
Comment on attachment 8621747 [details]
MozReview Request: pushrebase: add extension (bug 1117857)

https://reviewboard.mozilla.org/r/11043/#review9859

Ship It!
Attachment #8621747 - Flags: review?(smacleod) → review+
Comment on attachment 8621748 [details]
MozReview Request: pushrebase: add README (bug 1117857)

https://reviewboard.mozilla.org/r/11045/#review9861

Ship It!
Attachment #8621748 - Flags: review?(smacleod) → review+
Comment on attachment 8621749 [details]
MozReview Request: pushrebase: mark compatibility with 3.4 (bug 1117857)

https://reviewboard.mozilla.org/r/11047/#review9863

::: hgext/pushrebase/__init__.py:23
(Diff revision 1)
> +testedwith = '3.4'

Maybe document this change in the readme so we don't forget to do it when pulling in new versions? or even include the diff?
Attachment #8621749 - Flags: review?(smacleod) → review+
Comment on attachment 8621750 [details]
MozReview Request: pushrebase: add smoke test (bug 1117857)

https://reviewboard.mozilla.org/r/11049/#review9865

Ship It!
Attachment #8621750 - Flags: review?(smacleod) → review+
Comment on attachment 8621751 [details]
MozReview Request: ansible/hg-ssh: activate pushrebase extension (bug 1117857)

https://reviewboard.mozilla.org/r/11051/#review9867

Ship It!
Attachment #8621751 - Flags: review?(smacleod) → review+
https://reviewboard.mozilla.org/r/11047/#review9877

> Maybe document this change in the readme so we don't forget to do it when pulling in new versions? or even include the diff?

I'm submitting this patch upstream at https://bitbucket.org/facebook/hg-experimental/pull-request/1/pushrebase-fixups. So this shouldn't be a problem. I have no intention at this time of running code that diverges from upstream.
Deployed.

We need clients to activate the extension and use `hg push --onto <dest>` for this to add any meaningful value. I'll file a follow-up to track that work.
Blocks: 1175214
Not sure why this is still open.
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: