Patchwork [1,of,2] phases: add union() to update the phase cache with the other

login
register
mail settings
Submitter elson.wei@gmail.com
Date March 28, 2014, 1:33 a.m.
Message ID <077d695569cc1c6012b3.1395970397@ElsonWei-NB.PrimeVOLT>
Download mbox | patch
Permalink /patch/4094/
State Changes Requested
Headers show

Comments

elson.wei@gmail.com - March 28, 2014, 1:33 a.m.
# HG changeset patch
# User Wei, Elson <elson.wei@gmail.com>
# Date 1395970042 -28800
#      Fri Mar 28 09:27:22 2014 +0800
# Node ID 077d695569cc1c6012b3aa6fb742b9dac22b133d
# Parent  308344d80fe558ec060bcaaac4e83a321d838810
phases: add union() to update the phase cache with the other
Pierre-Yves David - March 28, 2014, 2:07 a.m.
On 03/27/2014 06:33 PM, elson.wei@gmail.com wrote:
> # HG changeset patch
> # User Wei, Elson <elson.wei@gmail.com>
> # Date 1395970042 -28800
> #      Fri Mar 28 09:27:22 2014 +0800
> # Node ID 077d695569cc1c6012b3aa6fb742b9dac22b133d
> # Parent  308344d80fe558ec060bcaaac4e83a321d838810
> phases: add union() to update the phase cache with the other

Can you elaborate on the purpose of this patches//series?
Pierre-Yves David - March 28, 2014, 4:47 a.m.
On 03/27/2014 09:38 PM, elson wrote:
> The description was rejectd.

the description must be in the changeset description.
Pierre-Yves David - April 13, 2014, 4:30 a.m.
On 03/27/2014 09:33 PM, elson.wei@gmail.com wrote:
> # HG changeset patch
> # User Wei, Elson <elson.wei@gmail.com>
> # Date 1395970042 -28800
> #      Fri Mar 28 09:27:22 2014 +0800
> # Node ID 077d695569cc1c6012b3aa6fb742b9dac22b133d
> # Parent  308344d80fe558ec060bcaaac4e83a321d838810
> phases: add union() to update the phase cache with the other

Looks like an improved version of this series was never resent.

Would you consider resending a V2 of this series:

1. Taking Mads feedback into account
2. Elaborating about patch motivation in the patch themself
elson.wei@gmail.com - April 15, 2014, 5:30 a.m.
I'm sorry about late reply. I was a little busy for work recently.
I might use the union repo in the wrong way.
I make the union of two unrelated repos.
If these two repo have any common ancestor, this issue doesn't happen.

2014-04-13 12:30 GMT+08:00 Pierre-Yves David <pierre-yves.david@ens-lyon.org
>:

>
>
> On 03/27/2014 09:33 PM, elson.wei@gmail.com wrote:
>
>> # HG changeset patch
>> # User Wei, Elson <elson.wei@gmail.com>
>> # Date 1395970042 -28800
>> #      Fri Mar 28 09:27:22 2014 +0800
>> # Node ID 077d695569cc1c6012b3aa6fb742b9dac22b133d
>> # Parent  308344d80fe558ec060bcaaac4e83a321d838810
>> phases: add union() to update the phase cache with the other
>>
>
> Looks like an improved version of this series was never resent.
>
> Would you consider resending a V2 of this series:
>
> 1. Taking Mads feedback into account
> 2. Elaborating about patch motivation in the patch themself
>
> --
> Pierre-Yves David
>
Sean Farley - April 15, 2014, 3:35 p.m.
elson <elson.wei@gmail.com> writes:

> I'm sorry about late reply. I was a little busy for work recently.
> I might use the union repo in the wrong way.
> I make the union of two unrelated repos.
> If these two repo have any common ancestor, this issue doesn't happen.

Ah, perhaps to make graft work like transplant on an unrelated repo?

> 2014-04-13 12:30 GMT+08:00 Pierre-Yves David <pierre-yves.david@ens-lyon.org
>>:
>
>>
>>
>> On 03/27/2014 09:33 PM, elson.wei@gmail.com wrote:
>>
>>> # HG changeset patch
>>> # User Wei, Elson <elson.wei@gmail.com>
>>> # Date 1395970042 -28800
>>> #      Fri Mar 28 09:27:22 2014 +0800
>>> # Node ID 077d695569cc1c6012b3aa6fb742b9dac22b133d
>>> # Parent  308344d80fe558ec060bcaaac4e83a321d838810
>>> phases: add union() to update the phase cache with the other
>>>
>>
>> Looks like an improved version of this series was never resent.
>>
>> Would you consider resending a V2 of this series:
>>
>> 1. Taking Mads feedback into account
>> 2. Elaborating about patch motivation in the patch themself
>>
>> --
>> Pierre-Yves David
>>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel@selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
Mads Kiilerich - April 15, 2014, 9:02 p.m.
On 04/15/2014 05:35 PM, Sean Farley wrote:
> elson <elson.wei@gmail.com> writes:
>
>> I'm sorry about late reply. I was a little busy for work recently.
>> I might use the union repo in the wrong way.
>> I make the union of two unrelated repos.
>> If these two repo have any common ancestor, this issue doesn't happen.
> Ah, perhaps to make graft work like transplant on an unrelated repo?

There are some cases in this area where we should use unionrepo locally 
instead of bundles ... it is on my imaginary todo list ...

I am sure there are bugs / missing features regarding phases and 
unionrepo ... probably somewhat similar to the issues bundlerepo has 
without bundle2. The patches discussed here touches that area but I do 
they do not give me a sufficiently clear idea of exactly what they are 
solving and why it is solved correctly.

/Mads
Pierre-Yves David - May 2, 2014, 2:10 a.m.
On 04/14/2014 10:30 PM, elson wrote:
> I'm sorry about late reply. I was a little busy for work recently.
> I might use the union repo in the wrong way.
> I make the union of two unrelated repos.
> If these two repo have any common ancestor, this issue doesn't happen.

Sounds like a reasonable use case to me, I believe there is other more 
subtle issue when they share a common ancestors.

>
> 2014-04-13 12:30 GMT+08:00 Pierre-Yves David
> <pierre-yves.david@ens-lyon.org <mailto:pierre-yves.david@ens-lyon.org>>:
>
>
>
>     On 03/27/2014 09:33 PM, elson.wei@gmail.com
>     <mailto:elson.wei@gmail.com> wrote:
>
>         # HG changeset patch
>         # User Wei, Elson <elson.wei@gmail.com <mailto:elson.wei@gmail.com>>
>         # Date 1395970042 -28800
>         #      Fri Mar 28 09:27:22 2014 +0800
>         # Node ID 077d695569cc1c6012b3aa6fb742b9__dac22b133d
>         # Parent  308344d80fe558ec060bcaaac4e83a__321d838810
>         phases: add union() to update the phase cache with the other
>
>
>     Looks like an improved version of this series was never resent.
>
>     Would you consider resending a V2 of this series:
>
>     1. Taking Mads feedback into account
>     2. Elaborating about patch motivation in the patch themself
>
>     --
>     Pierre-Yves David
>
>

Patch

diff --git a/mercurial/phases.py b/mercurial/phases.py
--- a/mercurial/phases.py
+++ b/mercurial/phases.py
@@ -159,6 +159,10 @@ 
         ph._phaserevs = self._phaserevs
         return ph
 
+    def union(self, phcache):
+        for (phase, nhs) in enumerate(phcache.phaseroots):
+            self.phaseroots[phase] |= nhs
+
     def replace(self, phcache):
         for a in 'phaseroots dirty opener _phaserevs'.split():
             setattr(self, a, getattr(phcache, a))