Need a qbackout/oops command replacement supporting multiple changesets and writing proper metadata
Categories
(Developer Services :: Mercurial: qbackout, task)
Tracking
(Not tracked)
People
(Reporter: aryx, Assigned: sheehan)
References
Details
Attachments
(1 file)
Bug 1550748 removed mq related extensions like qbackout which provided the hg oops command. That is used by sheriffs to commit backouts with hg oops -e[s]r [revset]. It also generated the lines in the commit message with Backed out changeset [shortnode] (bug [bug number]) if multiple changesets got backed out and committed as one changeset and which gets used by hg.mozilla.org to show that a changeset got backed out. Example:
Backed out changeset: https://hg.mozilla.org/integration/autoland/rev/5ca694230ffaba883772256d1184aac51faaa9e6
Backout: https://hg.mozilla.org/integration/autoland/rev/810ed823eef6829d90592ac05a1c0db54dd3acca
hg backout -r [rev1]::[rev2] only backs out one changeset and doesn't seem to support multiple changesets.
For that reason, there is a need for a oops/qbackout replacement to quickly backout several changesets (including the situation where changesets which shall not be backed out are in between).
oops!
Looks like the old qbackout logic has a code path to not use mq, but it looks like that works slightly differently than the mq code.
It might be best to restore qbackout, then tweak it to remove its reliance on mq, switching to evolve if required.
Comment 2•7 years ago
|
||
This needs to be changed or reverted ASAP. I find it a bit concerning that a critical piece of sheriffing functionality was removed without any input from said team either.
| Assignee | ||
Comment 3•7 years ago
|
||
Anything related to mq has been deprecated, both by upstream Mercurial and Mozilla, for at least two years. There have been plenty of warnings to stop using anything related to these tools. Removing the mq related extensions from version-control-tools was long overdue, IMO.
On the other hand, I was unaware that the sheriffs were actively using hg oops in their workflows. Taking a closer look at hg oops, the use case isn't actually tightly coupled to mq, the implementation simply assumes mq is in use.
I think we should tell anyone who needs hg oops to grab the extension from https://hg.mozilla.org/hgcustom/version-control-tools/raw-rev/b3a88dcabb6cccf0295e54d7ee1d9d31c2fac67a, save a copy to their local machine, and point their existing hgrc entry for qbackout at that file. Since qbackout has never been installed in mach vcs-setup, the sheriffs must have already been doing this. They will just need to change the path to be outside of v-c-t. I'll work on moving oops into mozext, and the functionality can be re-used there. Does that seem reasonable?
Apologies for tearing the rug out from under your team.
Comment 4•7 years ago
|
||
Hi Connor, any updates on this bug? I wasn't able to get the extension working by copying from the older repo state.
| Assignee | ||
Comment 5•7 years ago
|
||
In changeset b3a88dcabb6cccf0 we removed the mq related extensions
still checked in to version-control-tools. It turns out that the
qbackout extension has a command hg oops which is not dependent
on mq and is used heavily in the sheriffing workflow. This commit
moves the extension into mozext to keep it alive for the sheriffs.
Minimal changes have been made from the version in qbackout, and
the test is completely unmodified.
| Assignee | ||
Comment 6•7 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM] from comment #4)
Hi Connor, any updates on this bug? I wasn't able to get the extension working by copying from the older repo state.
Sorry for the delay, Ryan. Once D39953 is reviewed and landed, you will be able to use hg oops by enabling the mozext extension.
Pushed by cosheehan@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/4ed18e15bb10
mozext: add hg oops command from qbackout r=smacleod
| Assignee | ||
Comment 8•7 years ago
|
||
For anyone needing the hg oops command - if your hgrc previously had
[extensions]
qbackout = /path/to/version-control-tools/hgext/qbackout
you now want
[extensions]
mozext = /path/to/version-control-tools/hgext/mozext
Usually the path is something like ~/.mozbuild/version-control-tools/hgext/mozext.
Comment 9•7 years ago
|
||
Thanks for taking care of this, Connor!
Description
•