# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1507211420 -19800 # Node ID 103244e34a9c314a35846e1c9a6ce9e0f5a4c5af # Parent 5c8d5f980f4900f06fcf102af64e9d7e841c28a9 topics: use scmutil.cleanupnodes to create markers while changing topics Earlier if we change topics on changesets with bookmark, the bookmark is not moved to the new changeset as we didn't add that logic and we were creating obsmarkers directly. This patch calls scmutil.cleanupnodes to create obsmarkes which also handles the bookmark movement. diff -r 5c8d5f980f49 -r 103244e34a9c hgext3rd/topic/__init__.py --- a/hgext3rd/topic/__init__.py Thu Oct 05 18:13:52 2017 +0530 +++ b/hgext3rd/topic/__init__.py Thu Oct 05 19:20:20 2017 +0530 @@ -718,25 +718,27 @@ p1 = c.p1().node() p2 = c.p2().node() if p1 in successors: - p1 = successors[p1] + p1 = successors[p1][0] if p2 in successors: - p2 = successors[p2] + p2 = successors[p2][0] mc = context.memctx( repo, (p1, p2), c.description(), c.files(), filectxfn, user=c.user(), date=c.date(), extra=fixedextra) newnode = repo.commitctx(mc) - successors[c.node()] = newnode + successors[c.node()] = (newnode,) ui.debug('new node id is %s\n' % node.hex(newnode)) - obsolete.createmarkers(repo, [(c, (repo[newnode],))]) rewrote += 1 + + # create obsmarkers and move bookmarks + scmutil.cleanupnodes(repo, successors, 'changetopics') # move the working copy too wctx = repo[None] # in-progress merge is a bit too complex for now. if len(wctx.parents()) == 1: newid = successors.get(wctx.p1().node()) if newid is not None: - hg.update(repo, newid, quietempty=True) + hg.update(repo, newid[0], quietempty=True) return rewrote def _listtopics(ui, repo, opts): diff -r 5c8d5f980f49 -r 103244e34a9c tests/test-topic-change.t --- a/tests/test-topic-change.t Thu Oct 05 18:13:52 2017 +0530 +++ b/tests/test-topic-change.t Thu Oct 05 19:20:20 2017 +0530 @@ -294,7 +294,6 @@ Added a () On clearing the topic -XXX: the bookmark must have moved $ hg topic -r . --clear clearing empty topic "watwat" @@ -303,10 +302,7 @@ $ hg glog @ 31:c48d6d71b2d9 {} - | Added h () - | - | x 30:a24c31c35013 {watwat} - |/ Added h (book) + | Added h (book) | o 26:7c76c271395f {bar} | Added g () @@ -331,7 +327,6 @@ On changing the topic -XXX: the bookmark must have moved $ hg bookmark bookboo $ hg topic -r . movebook @@ -339,13 +334,7 @@ changed topic on 1 changes $ hg glog @ 32:1b83d11095b9 {movebook} - | Added h () - | - | x 31:c48d6d71b2d9 {} - |/ Added h (bookboo) - | - | x 30:a24c31c35013 {watwat} - |/ Added h (book) + | Added h (book bookboo) | o 26:7c76c271395f {bar} | Added g ()