Submitter | Laurent Charignon |
---|---|
Date | May 19, 2015, 12:34 a.m. |
Message ID | <a7022d489e2a3b2906fd.1431995689@lcharignon-mbp.local> |
Download | mbox | patch |
Permalink | /patch/9157/ |
State | Changes Requested |
Headers | show |
Comments
On 05/18/2015 07:34 PM, Laurent Charignon wrote: > # HG changeset patch > # User Laurent Charignon <lcharignon@fb.com> > # Date 1431995078 25200 > # Mon May 18 17:24:38 2015 -0700 > # Node ID a7022d489e2a3b2906fd9c1f9c9594b73ff653aa > # Parent 0e2eb196923ab8f2735dfebae018ef37e6ef1808 > prune: with active bookmark should stay active > > hg prune with an active bookmark was deactivating the bookmark after the prune. > This patch makes sure that if a bookmark was active before a "prune" operation > then the bookmark stays activate afterwards. > > diff --git a/hgext/evolve.py b/hgext/evolve.py > --- a/hgext/evolve.py > +++ b/hgext/evolve.py > @@ -1880,7 +1880,6 @@ > while newnode in precs or newnode.obsolete(): > newnode = newnode.parents()[0] > > - > if newnode.node() != wdp.node(): > if opts.get('keep', False): > # This is largely the same as the implementation in > @@ -1902,7 +1901,13 @@ > repo.dirstate.rebuild(newnode.node(), newnode.manifest(), changedfiles) > repo.dirstate.write() > else: > + bookactive = bmactive(repo) > commands.update(ui, repo, newnode.rev()) > + if bookactive is not None: > + repo.ui.status(_("(reactivating bookmark %s)\n") > + % bookactive) > + bookmarks.activate(repo, bookactive) > + This is going to provide confusing output. We should focus on having the bookmark not disabled instead. > ui.status(_('working directory now at %s\n') % newnode) > # update bookmarks > if bookmark: > diff --git a/tests/test-prune.t b/tests/test-prune.t > --- a/tests/test-prune.t > +++ b/tests/test-prune.t > @@ -40,8 +40,18 @@ > $ hg prune --user blah --date '1979-12-15' . > 0 files updated, 0 files merged, 1 files removed, 0 files unresolved > (leaving bookmark BABAR) > + (reactivating bookmark BABAR) ^ confusing output. should be - (leaving bookmark BABAR) > working directory now at 47d2a3944de8 > 1 changesets pruned > + $ hg log -G > + @ 3:47d2a3944de8[BABAR] (stable/draft) add d > + | > + o 2:4538525df7e2[] (stable/draft) add c > + | > + o 1:7c3bad9141dc[] (stable/draft) add b > + | > + o 0:1f0dee641bb7[] (stable/public) add a > + Do you want "hg bookmarks" instead to see the "active" status? > $ hg debugobsolete > 9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'} > > @@ -58,6 +68,7 @@ > > $ hg prune 2: > 0 files updated, 0 files merged, 3 files removed, 0 files unresolved > + (reactivating bookmark BABAR) even more confusing output. > working directory now at 1f0dee641bb7 > 2 changesets pruned > $ hg debugobsolete > @@ -87,6 +98,7 @@ > $ mkcommit ee > $ hg up 0 > 0 files updated, 0 files merged, 4 files removed, 0 files unresolved > + (leaving bookmark BABAR) > $ mkcommit nB > created new head > $ mkcommit nC > @@ -102,7 +114,7 @@ > | > o 9:6f6f25e4f748[] (stable/draft) add nB > | > - | o 8:bb5e90a7ea1f[] (stable/draft) add ee > + | o 8:bb5e90a7ea1f[BABAR] (stable/draft) add ee Where does these changes comes from ? If they are legit, can we get them handled before the actual fix to have clearer test changes? > | | > | o 7:00ded550b1e2[] (stable/draft) add dd > | | > @@ -110,7 +122,7 @@ > | | > | o 5:814c38b95e72[] (stable/draft) add bb > |/ > - o 0:1f0dee641bb7[BABAR] (stable/public) add a > + o 0:1f0dee641bb7[] (stable/public) add a > > > one old, one new > @@ -136,13 +148,13 @@ > | > o 9:6f6f25e4f748[] (stable/draft) add nB > | > - | o 7:00ded550b1e2[] (stable/draft) add dd > + | o 7:00ded550b1e2[BABAR] (stable/draft) add dd > | | > | o 6:354011cd103f[] (stable/draft) add cc > | | > | o 5:814c38b95e72[] (stable/draft) add bb > |/ > - o 0:1f0dee641bb7[BABAR] (stable/public) add a > + o 0:1f0dee641bb7[] (stable/public) add a > > > one old, two new > @@ -165,11 +177,11 @@ > | > o 9:6f6f25e4f748[] (stable/draft) add nB > | > - | o 6:354011cd103f[] (stable/draft) add cc > + | o 6:354011cd103f[BABAR] (stable/draft) add cc > | | > | o 5:814c38b95e72[] (stable/draft) add bb > |/ > - o 0:1f0dee641bb7[BABAR] (stable/public) add a > + o 0:1f0dee641bb7[] (stable/public) add a > > > two old, two new (should be denied) > @@ -274,6 +286,7 @@ > $ hg prune -B todelete > 0 files updated, 0 files merged, 0 files removed, 0 files unresolved > (leaving bookmark todelete) > + (reactivating bookmark todelete) > working directory now at d62d843c9a01 > bookmark 'todelete' deleted > 1 changesets pruned
Thanks for the comments, I sent a V2 On 5/18/15, 10:46 PM, "Pierre-Yves David" <pierre-yves.david@ens-lyon.org> wrote: > > >On 05/18/2015 07:34 PM, Laurent Charignon wrote: >> # HG changeset patch >> # User Laurent Charignon <lcharignon@fb.com> >> # Date 1431995078 25200 >> # Mon May 18 17:24:38 2015 -0700 >> # Node ID a7022d489e2a3b2906fd9c1f9c9594b73ff653aa >> # Parent 0e2eb196923ab8f2735dfebae018ef37e6ef1808 >> prune: with active bookmark should stay active >> >> hg prune with an active bookmark was deactivating the bookmark after >>the prune. >> This patch makes sure that if a bookmark was active before a "prune" >>operation >> then the bookmark stays activate afterwards. >> >> diff --git a/hgext/evolve.py b/hgext/evolve.py >> --- a/hgext/evolve.py >> +++ b/hgext/evolve.py >> @@ -1880,7 +1880,6 @@ >> while newnode in precs or newnode.obsolete(): >> newnode = newnode.parents()[0] >> >> - >> if newnode.node() != wdp.node(): >> if opts.get('keep', False): >> # This is largely the same as the implementation in >> @@ -1902,7 +1901,13 @@ >> repo.dirstate.rebuild(newnode.node(), >>newnode.manifest(), changedfiles) >> repo.dirstate.write() >> else: >> + bookactive = bmactive(repo) >> commands.update(ui, repo, newnode.rev()) >> + if bookactive is not None: >> + repo.ui.status(_("(reactivating bookmark %s)\n") >> + % bookactive) >> + bookmarks.activate(repo, bookactive) >> + > >This is going to provide confusing output. We should focus on having the >bookmark not disabled instead. > >> ui.status(_('working directory now at %s\n') % >>newnode) >> # update bookmarks >> if bookmark: >> diff --git a/tests/test-prune.t b/tests/test-prune.t >> --- a/tests/test-prune.t >> +++ b/tests/test-prune.t >> @@ -40,8 +40,18 @@ >> $ hg prune --user blah --date '1979-12-15' . >> 0 files updated, 0 files merged, 1 files removed, 0 files unresolved >> (leaving bookmark BABAR) >> + (reactivating bookmark BABAR) > >^ confusing output. should be > >- (leaving bookmark BABAR) > > >> working directory now at 47d2a3944de8 >> 1 changesets pruned >> + $ hg log -G >> + @ 3:47d2a3944de8[BABAR] (stable/draft) add d >> + | >> + o 2:4538525df7e2[] (stable/draft) add c >> + | >> + o 1:7c3bad9141dc[] (stable/draft) add b >> + | >> + o 0:1f0dee641bb7[] (stable/public) add a >> + > >Do you want "hg bookmarks" instead to see the "active" status? > >> $ hg debugobsolete >> 9d206ffc875e1bc304590549be293be36821e66c 0 >>{47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 >>+0000) {'user': 'blah'} >> >> @@ -58,6 +68,7 @@ >> >> $ hg prune 2: >> 0 files updated, 0 files merged, 3 files removed, 0 files unresolved >> + (reactivating bookmark BABAR) > >even more confusing output. > >> working directory now at 1f0dee641bb7 >> 2 changesets pruned >> $ hg debugobsolete >> @@ -87,6 +98,7 @@ >> $ mkcommit ee >> $ hg up 0 >> 0 files updated, 0 files merged, 4 files removed, 0 files unresolved >> + (leaving bookmark BABAR) >> $ mkcommit nB >> created new head >> $ mkcommit nC >> @@ -102,7 +114,7 @@ >> | >> o 9:6f6f25e4f748[] (stable/draft) add nB >> | >> - | o 8:bb5e90a7ea1f[] (stable/draft) add ee >> + | o 8:bb5e90a7ea1f[BABAR] (stable/draft) add ee > >Where does these changes comes from ? If they are legit, can we get them >handled before the actual fix to have clearer test changes? > > >> | | >> | o 7:00ded550b1e2[] (stable/draft) add dd >> | | >> @@ -110,7 +122,7 @@ >> | | >> | o 5:814c38b95e72[] (stable/draft) add bb >> |/ >> - o 0:1f0dee641bb7[BABAR] (stable/public) add a >> + o 0:1f0dee641bb7[] (stable/public) add a >> >> >> one old, one new >> @@ -136,13 +148,13 @@ >> | >> o 9:6f6f25e4f748[] (stable/draft) add nB >> | >> - | o 7:00ded550b1e2[] (stable/draft) add dd >> + | o 7:00ded550b1e2[BABAR] (stable/draft) add dd >> | | >> | o 6:354011cd103f[] (stable/draft) add cc >> | | >> | o 5:814c38b95e72[] (stable/draft) add bb >> |/ >> - o 0:1f0dee641bb7[BABAR] (stable/public) add a >> + o 0:1f0dee641bb7[] (stable/public) add a >> >> >> one old, two new >> @@ -165,11 +177,11 @@ >> | >> o 9:6f6f25e4f748[] (stable/draft) add nB >> | >> - | o 6:354011cd103f[] (stable/draft) add cc >> + | o 6:354011cd103f[BABAR] (stable/draft) add cc >> | | >> | o 5:814c38b95e72[] (stable/draft) add bb >> |/ >> - o 0:1f0dee641bb7[BABAR] (stable/public) add a >> + o 0:1f0dee641bb7[] (stable/public) add a >> >> >> two old, two new (should be denied) >> @@ -274,6 +286,7 @@ >> $ hg prune -B todelete >> 0 files updated, 0 files merged, 0 files removed, 0 files unresolved >> (leaving bookmark todelete) >> + (reactivating bookmark todelete) >> working directory now at d62d843c9a01 >> bookmark 'todelete' deleted >> 1 changesets pruned > >-- >Pierre-Yves David
Patch
diff --git a/hgext/evolve.py b/hgext/evolve.py --- a/hgext/evolve.py +++ b/hgext/evolve.py @@ -1880,7 +1880,6 @@ while newnode in precs or newnode.obsolete(): newnode = newnode.parents()[0] - if newnode.node() != wdp.node(): if opts.get('keep', False): # This is largely the same as the implementation in @@ -1902,7 +1901,13 @@ repo.dirstate.rebuild(newnode.node(), newnode.manifest(), changedfiles) repo.dirstate.write() else: + bookactive = bmactive(repo) commands.update(ui, repo, newnode.rev()) + if bookactive is not None: + repo.ui.status(_("(reactivating bookmark %s)\n") + % bookactive) + bookmarks.activate(repo, bookactive) + ui.status(_('working directory now at %s\n') % newnode) # update bookmarks if bookmark: diff --git a/tests/test-prune.t b/tests/test-prune.t --- a/tests/test-prune.t +++ b/tests/test-prune.t @@ -40,8 +40,18 @@ $ hg prune --user blah --date '1979-12-15' . 0 files updated, 0 files merged, 1 files removed, 0 files unresolved (leaving bookmark BABAR) + (reactivating bookmark BABAR) working directory now at 47d2a3944de8 1 changesets pruned + $ hg log -G + @ 3:47d2a3944de8[BABAR] (stable/draft) add d + | + o 2:4538525df7e2[] (stable/draft) add c + | + o 1:7c3bad9141dc[] (stable/draft) add b + | + o 0:1f0dee641bb7[] (stable/public) add a + $ hg debugobsolete 9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'} @@ -58,6 +68,7 @@ $ hg prune 2: 0 files updated, 0 files merged, 3 files removed, 0 files unresolved + (reactivating bookmark BABAR) working directory now at 1f0dee641bb7 2 changesets pruned $ hg debugobsolete @@ -87,6 +98,7 @@ $ mkcommit ee $ hg up 0 0 files updated, 0 files merged, 4 files removed, 0 files unresolved + (leaving bookmark BABAR) $ mkcommit nB created new head $ mkcommit nC @@ -102,7 +114,7 @@ | o 9:6f6f25e4f748[] (stable/draft) add nB | - | o 8:bb5e90a7ea1f[] (stable/draft) add ee + | o 8:bb5e90a7ea1f[BABAR] (stable/draft) add ee | | | o 7:00ded550b1e2[] (stable/draft) add dd | | @@ -110,7 +122,7 @@ | | | o 5:814c38b95e72[] (stable/draft) add bb |/ - o 0:1f0dee641bb7[BABAR] (stable/public) add a + o 0:1f0dee641bb7[] (stable/public) add a one old, one new @@ -136,13 +148,13 @@ | o 9:6f6f25e4f748[] (stable/draft) add nB | - | o 7:00ded550b1e2[] (stable/draft) add dd + | o 7:00ded550b1e2[BABAR] (stable/draft) add dd | | | o 6:354011cd103f[] (stable/draft) add cc | | | o 5:814c38b95e72[] (stable/draft) add bb |/ - o 0:1f0dee641bb7[BABAR] (stable/public) add a + o 0:1f0dee641bb7[] (stable/public) add a one old, two new @@ -165,11 +177,11 @@ | o 9:6f6f25e4f748[] (stable/draft) add nB | - | o 6:354011cd103f[] (stable/draft) add cc + | o 6:354011cd103f[BABAR] (stable/draft) add cc | | | o 5:814c38b95e72[] (stable/draft) add bb |/ - o 0:1f0dee641bb7[BABAR] (stable/public) add a + o 0:1f0dee641bb7[] (stable/public) add a two old, two new (should be denied) @@ -274,6 +286,7 @@ $ hg prune -B todelete 0 files updated, 0 files merged, 0 files removed, 0 files unresolved (leaving bookmark todelete) + (reactivating bookmark todelete) working directory now at d62d843c9a01 bookmark 'todelete' deleted 1 changesets pruned