[PATCH 3 of 3 V2] rebase: unhide original working directory node as well (issue5219)

Augie Fackler raf at durin42.com
Sat Mar 11 13:31:57 EST 2017


On Fri, Mar 10, 2017 at 11:28:54PM -0800, Martin von Zweigbergk via Mercurial-devel wrote:
> # HG changeset patch
> # User Martin von Zweigbergk <martinvonz at google.com>
> # Date 1489216040 28800
> #      Fri Mar 10 23:07:20 2017 -0800
> # Node ID b8c437230731d53a6c165567a6fff1a1467f4107
> # Parent  c946c7aa259ca97d5ca88238df0bb6e61d6b6313
> rebase: unhide original working directory node as well (issue5219)

Queued these, thanks

>
> 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 c946c7aa259c -r b8c437230731 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()) | {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) | {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 c946c7aa259c -r b8c437230731 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 ..
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list