On Sun, Mar 12, 2017 at 12:41:25PM -0700, Durham Goode wrote:
> # HG changeset patch
> # User Durham Goode <dur...@fb.com>
> # Date 1489347215 25200
> #      Sun Mar 12 12:33:35 2017 -0700
> # Node ID ec3731bcacca0a6c65da08e20f7784bdd210161d
> # Parent  718a57e95a897f4ac407ae3733a7d41e87354acb
> rebase: move state serialization to use unfiltered repo

queued

>
> Now that rebasestate is serialized as part of the transaction, the repo state 
> it
> sees is the version at the end of the transaction, which may have hidden 
> nodes.
> Therefore, it's possible parts of the rebase commit set are no longer visible 
> by
> the time the transaction is closing, which causes a filtered revision error in
> this code. I don't think state serialization should be blocked from accessing
> commits it knows exist, especially if all it's trying to do is get the hex of
> them, so let's use an unfiltered repo here.
>
> Unfortunately, the only known repro is with the fbamend Facebook extension, so
> I'm not sure how to repro it in core Mercurial for a test.
>
> diff --git a/hgext/rebase.py b/hgext/rebase.py
> --- a/hgext/rebase.py
> +++ b/hgext/rebase.py
> @@ -169,7 +169,7 @@ class rebaseruntime(object):
>                  self._writestatus(f)
>
>      def _writestatus(self, f):
> -        repo = self.repo
> +        repo = self.repo.unfiltered()
>          f.write(repo[self.originalwd].hex() + '\n')
>          f.write(repo[self.target].hex() + '\n')
>          f.write(repo[self.external].hex() + '\n')
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel@mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to