# HG changeset patch # User Martin von Zweigbergk # Date 1489216040 28800 # Node ID f5c71e98f0f7650e943ada9924d61c4cdf5d787b # Parent 98658f73588ad990f3739ea122d4d81a94c7acd5 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. diff -r 98658f73588a -r f5c71e98f0f7 hgext/rebase.py --- 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 diff -r 98658f73588a -r f5c71e98f0f7 tests/test-rebase-obsolete.t --- 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 ..