rebase: unhide original working directory node as well (
issue5219)
By including the working directory revision at the start of rebase in
the repo._rebaseset, we make sure it's not hidden when we update back
to it at the end of the rebase.
This feels like abusing the set a bit given its name (_rebaseset), but
I couldn't think of another name that's clearly better.
--- a/hgext/rebase.py Fri Mar 10 23:06:31 2017 -0800
+++ b/hgext/rebase.py Fri Mar 10 23:07:20 2017 -0800
@@ -250,7 +250,7 @@
repo.ui.debug('computed skipped revs: %s\n' %
(' '.join(str(r) for r in sorted(skipped)) or None))
repo.ui.debug('rebase status resumed\n')
- _setrebasesetvisibility(repo, set(state.keys()))
+ _setrebasesetvisibility(repo, set(state.keys()) | set([originalwd]))
self.originalwd = originalwd
self.target = target
@@ -1203,7 +1203,8 @@
dest: context
rebaseset: set of rev
'''
- _setrebasesetvisibility(repo, set(rebaseset))
+ originalwd = repo['.'].rev()
+ _setrebasesetvisibility(repo, set(rebaseset) | set([originalwd]))
# This check isn't strictly necessary, since mq detects commits over an
# applied patch. But it prevents messing up the working directory when
@@ -1288,7 +1289,7 @@
state[r] = revpruned
else:
state[r] = revprecursor
- return repo['.'].rev(), dest.rev(), state
+ return originalwd, dest.rev(), state
def clearrebased(ui, repo, state, skipped, collapsedas=None):
"""dispose of rebased revision at the end of the rebase
--- a/tests/test-rebase-obsolete.t Fri Mar 10 23:06:31 2017 -0800
+++ b/tests/test-rebase-obsolete.t Fri Mar 10 23:07:20 2017 -0800
@@ -279,11 +279,27 @@
$ hg --hidden up -qr 'first(hidden())'
$ hg rebase --rev 13 --dest 15
rebasing 13:98f6af4ee953 "C"
- transaction abort!
- rollback completed
- abort: hidden revision '1'!
- (use --hidden to access hidden revisions)
- [255]
+ $ hg log -G
+ o 16:294a2b93eb4d C
+ |
+ o 15:627d46148090 D
+ |
+ | o 12:462a34d07e59 B
+ | |
+ | o 11:4596109a6a43 D
+ | |
+ | o 7:02de42196ebe H
+ | |
+ +---o 6:eea13746799a G
+ | |/
+ | o 5:24b6387c8c8c F
+ | |
+ o | 4:9520eea781bc E
+ |/
+ | @ 1:42ccdea3bb16 B
+ |/
+ o 0:cd010b8cd998 A
+
$ cd ..