Closed Bug 611030 Opened 14 years ago Closed 14 years ago

Close some older branches in mozilla-central

Categories

(Release Engineering :: General, defect, P3)

x86
All
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: sdwilsh, Assigned: sdwilsh)

References

Details

(Whiteboard: [automation])

The output of |hg heads| is getting long these days. I'd like to close older branches that we no longer need (like 1.9.1a3 relbranch for instance) and will no longer land anything on. Ideally, releng could close release branches when they are done with them as well so we don't have to do this every so often. It was suggested by bsmedberg that I file this bug before we do this to make sure this won't break any automation. I'd be happy to push the changes to close all of the 1.9.1 and 1.9.2 release branches on mozilla-central as long as it won't break anything.
Sounds like a great idea. For best results, merge the closing cset. Some things in hg are O(topological heads), so having fewer heads is a good idea.
Dirkjan, do you know if older clients will choke in any way on closed branches? Some build machines still use Mercurial 1.1.
It's just a field in the changeset metadata; they won't notice it, they certainly shouldn't choke on it AFAIK.
(In reply to comment #3) > It's just a field in the changeset metadata; they won't notice it, they > certainly shouldn't choke on it AFAIK. sdwilsh: you can consider this your go-ahead from us. Re-assigning to you.
Assignee: nobody → sdwilsh
Priority: -- → P3
Whiteboard: [automation]
sdwilsh: 1) can you detail what exact commands you were planning on running on m-c? We can try these same in staging in case there are any production concerns. 2) we're also interested in trimming extra heads from tryserver repo. If your proposal for m-c also works on tryserver repo without causing problems, it would allow us to keep tryserver repo neat, and hence more performant! (For now, our workaround is to manually delete-and-recreate the tryserver repo. Big hammer, but it works.)
OS: Windows 7 → All
(In reply to comment #5) > 1) can you detail what exact commands you were planning on running on m-c? We > can try these same in staging in case there are any production concerns. For example, to remove our oldest head (c4ebfef7afa6): hg update -r c4ebfef7afa6 hg commit --close-branch -m "Closing old branch" In comment 1, djc also suggests merging back to tip, but we haven't done that in the past. Some people may not like that either as it could certainly make history a little more complicated, so I'd probably avoid that for now. We can always do that in the future. > 2) we're also interested in trimming extra heads from tryserver repo. If your > proposal for m-c also works on tryserver repo without causing problems, it > would allow us to keep tryserver repo neat, and hence more performant! (For > now, our workaround is to manually delete-and-recreate the tryserver repo. Big > hammer, but it works.) It would certainly help, and keeping the heads around doesn't benefit us at all on try server. On try, merging to tip wouldn't hurt either (I suspect the number of heads is what really hurts us there.
OK, I've done this locally. New hg heads output: changeset: 61898:c1523d3f7841 tag: tip parent: 61890:9c815db836e3 user: Chris Jones <jones.chris.g@gmail.com> date: Thu Feb 03 13:54:10 2011 -0600 summary: Rollup of bug 615386, parts 1-6. Teach the reftest harness about <browser remote>. r=dbaron,roc,ted a=a changeset: 61897:76521b9cdb59 branch: GECKO20b11_2011020209_RELBRANCH parent: 61896:be22ea0c325f parent: 61895:086d21e38a57 user: Christian Legnitto <clegnitto@mozilla.com> date: Thu Feb 03 10:30:29 2011 -0800 summary: Backed out due to bug 631225, a=LegNeato changeset: 61352:e3c72c59c09a branch: GECKO20b11pre_20110126_RELBRANCH user: ffxbld date: Wed Jan 26 14:37:07 2011 -0800 summary: Added tag FENNEC_4_0b4_RELEASE for changeset 7905eefc489d. CLOSED TREE a=release changeset: 61123:daecedbdcd10 branch: GECKO20b10_2011012115_RELBRANCH user: ffxbld date: Fri Jan 21 15:40:19 2011 -0800 summary: Added tag FIREFOX_4_0b10_BUILD1 for changeset bb9089ae2322. CLOSED TREE a=release changeset: 60615:3e8e6ed98b9f branch: COMM2000_20110114_RELBRANCH user: tbirdbld date: Fri Jan 14 14:00:48 2011 -0800 summary: Added tag THUNDERBIRD_3_3a2_RELEASE for changeset f24f049857a5. CLOSED TREE a=release This is what I'm changing (hg out): comparing with ssh://hg.mozilla.org/mozilla-central searching for changes changeset: 61754:d799e0529ac6 branch: GECKO191b1_20081007_RELBRANCH parent: 20102:c4ebfef7afa6 user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 11:51:44 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61755:fa571a7a6a1e branch: FENNEC_A1_BRANCH parent: 20482:cab97aca485d user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 11:52:34 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61756:16ff8fc5362f branch: GECKO191b2_20081125_RELBRANCH parent: 25666:b42a1594f613 user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 11:53:06 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61757:ad21235547c0 branch: GECKO192a1_20090806_RELBRANCH parent: 31198:dc02eff6d8c0 user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 11:54:18 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61758:fc0787d7c9c1 branch: GECKO193a1_20100208_RELBRANCH parent: 37981:9123383e3435 user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 11:55:50 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61759:2886f78c105a branch: GECKO193a2_20100228_RELBRANCH parent: 38795:f99378d9da4e user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 11:56:15 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61760:a608ba89e49d branch: GECKO193a3_20100315_RELBRANCH parent: 39454:249428fdc4a8 user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 11:56:34 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61761:d8d2a10a8572 branch: COMM193a4_20100510_RELBRANCH parent: 42110:9e8e63449a95 user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 11:57:34 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61762:62bd36d202ed branch: GECKO193a4_20100407_RELBRANCH parent: 40543:d26d9a47e3e0 user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 11:58:46 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61763:9b3dd92ccff4 branch: GECKO193a5_20100610_RELBRANCH parent: 44125:b2f99ae0f07f user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:01:36 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61764:6910fa5cbb3c branch: COMM193a5_20100623_RELBRANCH parent: 46406:5609120be1aa user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:02:03 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61765:bc5188a32f31 branch: GECKO20b2_20100720_RELBRANCH parent: 47992:1e5c5e5f8278 user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:02:46 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61766:2b138e7791e5 branch: GECKO20b1_20100628_RELBRANCH parent: 46452:14664937950a user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:03:23 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61767:4307d141e63a branch: COMM20b4_20100815_RELBRANCH parent: 50729:1ff48562d5cf user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:04:08 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61768:19655f2f9f78 branch: GECKO20b3_20100804_RELBRANCH parent: 50734:3e8946d7bdda user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:04:47 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61769:5d64141b7750 branch: GECKO20b4_20100817_RELBRANCH parent: 50828:c191cbe08597 user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:05:09 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61770:c64d97a1ebd7 branch: GECKO20b5pre_20100820_RELBRANCH parent: 51476:fee27ba0b224 user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:05:30 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61771:35056c98e719 branch: GECKO20b5_20100831_RELBRANCH parent: 53790:501ccdddbded user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:06:06 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61772:2089ef52646d branch: GECKO20b7pre_20100929_RELBRANCH parent: 55013:3c4e0c10b90a user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:06:43 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61773:b9d28b104098 branch: GECKO20b7pre_20101006_RELBRANCH parent: 56500:84a97df0878c user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:07:11 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61774:5b9b74ab35f3 branch: GECKO20b7pre_20101029_RELBRANCH parent: 56846:4665267772db user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:08:17 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61775:8c455c8c43cf branch: GECKO20b7_20101104_RELBRANCH parent: 56857:c0a8f2fd7d80 user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:08:39 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61776:be8185869ee2 branch: COMM2000_20101116_RELBRANCH parent: 57600:65c2eb504227 user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:09:27 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61777:925fbad25823 branch: GECKO20b8_20101214_RELBRANCH parent: 59594:7d3065c9bfad user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:10:20 2011 -0800 summary: closing old branch that is no longer used per bug 611030 changeset: 61778:ddf00cef28a3 branch: GECKO20b9_2011011018_RELBRANCH parent: 60268:cd72d71311c4 user: Shawn Wilsher <me@shawnwilsher.com> date: Thu Feb 03 12:11:38 2011 -0800 summary: closing old branch that is no longer used per bug 611030
Is this something we could automate?
(In reply to comment #8) > Is this something we could automate? I bet we could!
(In reply to comment #8) > Is this something we could automate? I'd say that every time we make a new release branch, we can close the last one for a product. http://hg.mozilla.org/mozilla-central/rev/d799e0529ac6 http://hg.mozilla.org/mozilla-central/rev/fa571a7a6a1e http://hg.mozilla.org/mozilla-central/rev/16ff8fc5362f http://hg.mozilla.org/mozilla-central/rev/ad21235547c0 http://hg.mozilla.org/mozilla-central/rev/fc0787d7c9c1 http://hg.mozilla.org/mozilla-central/rev/2886f78c105a http://hg.mozilla.org/mozilla-central/rev/a608ba89e49d http://hg.mozilla.org/mozilla-central/rev/d8d2a10a8572 http://hg.mozilla.org/mozilla-central/rev/62bd36d202ed http://hg.mozilla.org/mozilla-central/rev/9b3dd92ccff4 http://hg.mozilla.org/mozilla-central/rev/6910fa5cbb3c http://hg.mozilla.org/mozilla-central/rev/bc5188a32f31 http://hg.mozilla.org/mozilla-central/rev/2b138e7791e5 http://hg.mozilla.org/mozilla-central/rev/4307d141e63a http://hg.mozilla.org/mozilla-central/rev/19655f2f9f78 http://hg.mozilla.org/mozilla-central/rev/5d64141b7750 http://hg.mozilla.org/mozilla-central/rev/c64d97a1ebd7 http://hg.mozilla.org/mozilla-central/rev/35056c98e719 http://hg.mozilla.org/mozilla-central/rev/2089ef52646d http://hg.mozilla.org/mozilla-central/rev/b9d28b104098 http://hg.mozilla.org/mozilla-central/rev/5b9b74ab35f3 http://hg.mozilla.org/mozilla-central/rev/8c455c8c43cf http://hg.mozilla.org/mozilla-central/rev/be8185869ee2 http://hg.mozilla.org/mozilla-central/rev/925fbad25823 http://hg.mozilla.org/mozilla-central/rev/ddf00cef28a3
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Okay, I'll reiterate one last time that it would be a good idea to also "merge" these (not actually merging the code, but getting rid of the topological heads). Protocol operations (incoming, outgoing, pull, push) are going to grow slower as the number of heads increases, and merging these closed heads is the easiest way to combat that (a number of other things, notably tag finding, also finds all the heads, but it has a fairly good cache so that it's less of a problem).
Fwiw, see http://mercurial.selenic.com/wiki/PruningDeadBranches: "1. Closing branches": what we do in this bug, and should do from now on :-) (In reply to comment #11) > it would be a good idea to also "merge" > these (not actually merging the code, but getting rid of the topological > heads). "2. No-Op Merges": what you propose, but there seems to be pros and cons :-| "3. Using clone": would be better, but we don't actually want to swap trunk (public) repositories, do we? :-( (In reply to comment #5) > 2) we're also interested in trimming extra heads from tryserver repo. "4. Using strip": can't do that on public repo., but might be just fine for tryserver repository :-) As in stripping older heads at the same time older ftp directories are removed.
(In reply to comment #12) > "1. Closing branches": what we do in this bug, and should do from now on :-) > > "4. Using strip": can't do that on public repo., but might be just fine for > tryserver repository :-) > As in stripping older heads at the same time older ftp directories are removed. I filed bug 633161 about TryServer.
(In reply to comment #12) > Fwiw, see http://mercurial.selenic.com/wiki/PruningDeadBranches: > > "2. No-Op Merges": what you propose, but there seems to be pros and cons :-| I don't think the cons are relevant to Mozilla's use of relbranches.
(In reply to comment #10) > I'd say that every time we make a new release branch, we can close the last one > for a product. I filed bug 640510.
Product: mozilla.org → Release Engineering
Blocks: 927219
You need to log in before you can comment on or make changes to this bug.