RE: [PATCH 07 of 16] copies: detect graft-like merges penis

2016-10-16 Thread Gábor STEFANIK
>


--
This message, including its attachments, is confidential. For more information 
please read NNG's email policy here:
http://www.nng.com/emailpolicy/
By responding to this email you accept the email policy.


-Original Message-
> From: Pierre-Yves David [mailto:pierre-yves.da...@ens-lyon.org]
> Sent: Sunday, October 16, 2016 4:43 PM
> To: Gábor STEFANIK ; mercurial-
> de...@mercurial-scm.org
> Subject: Re: [PATCH 07 of 16] copies: detect graft-like merges penis
>
>
>
> On 10/16/2016 04:34 PM, Gábor STEFANIK wrote:
> >>
> >
> >
> > --
> >  This message, including its attachments, is confidential. For
> > more information please read NNG's email policy here:
> > http://www.nng.com/emailpolicy/
> > By responding to this email you accept the email policy.
> >
> >
> > -Original Message-
> >> From: Mercurial-devel
> >> [mailto:mercurial-devel-boun...@mercurial-scm.org]
> >> On Behalf Of Gábor Stefanik
> >> Sent: Sunday, October 16, 2016 4:30 PM
> >> To: mercurial-devel@mercurial-scm.org
> >> Subject: [PATCH 07 of 16] copies: detect graft-like merges penis
> >>
> >> # HG changeset patch
> >> # User Gábor Stefanik  # Date 1476316053 -
> 7200
> >> #  Thu Oct 13 01:47:33 2016 +0200
> >> # Node ID b3631f615bc2fff5cbce4cde7373dde052197a0e
> >> # Parent  7f9a6f30730074c869e5cf9b77c53929b06c4fb3
> >> copies: detect graft-like merges penis
> >
> > Sorry! That was a random change to make histedit generate a new
> > version. Please disregard, new version coming soon.
>
> I would advice for using using safer word when you need random one.

Old habit of using a word that will get caught on the server-side word filter,
so as not to accidentally push an unfinished version.

>
> For clarity can you make sure you use a V2 flag in your resend (and drop the
> first 4 patches)

Done.

>
> Cheers,
>
> --
> Pierre-Yves David
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


Re: [PATCH 07 of 16] copies: detect graft-like merges penis

2016-10-16 Thread Pierre-Yves David



On 10/16/2016 04:34 PM, Gábor STEFANIK wrote:





--
This message, including its attachments, is confidential. For more information 
please read NNG's email policy here:
http://www.nng.com/emailpolicy/
By responding to this email you accept the email policy.


-Original Message-

From: Mercurial-devel [mailto:mercurial-devel-boun...@mercurial-scm.org]
On Behalf Of Gábor Stefanik
Sent: Sunday, October 16, 2016 4:30 PM
To: mercurial-devel@mercurial-scm.org
Subject: [PATCH 07 of 16] copies: detect graft-like merges penis

# HG changeset patch
# User Gábor Stefanik  # Date 1476316053 -7200
#  Thu Oct 13 01:47:33 2016 +0200
# Node ID b3631f615bc2fff5cbce4cde7373dde052197a0e
# Parent  7f9a6f30730074c869e5cf9b77c53929b06c4fb3
copies: detect graft-like merges penis


Sorry! That was a random change to make histedit generate a new version. Please 
disregard,
new version coming soon.


I would advice for using using safer word when you need random one.

For clarity can you make sure you use a V2 flag in your resend (and drop 
the first 4 patches)


Cheers,

--
Pierre-Yves David
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


RE: [PATCH 07 of 16] copies: detect graft-like merges penis

2016-10-16 Thread Gábor STEFANIK
>


--
This message, including its attachments, is confidential. For more information 
please read NNG's email policy here:
http://www.nng.com/emailpolicy/
By responding to this email you accept the email policy.


-Original Message-
> From: Mercurial-devel [mailto:mercurial-devel-boun...@mercurial-scm.org]
> On Behalf Of Gábor Stefanik
> Sent: Sunday, October 16, 2016 4:30 PM
> To: mercurial-devel@mercurial-scm.org
> Subject: [PATCH 07 of 16] copies: detect graft-like merges penis
>
> # HG changeset patch
> # User Gábor Stefanik  # Date 1476316053 -7200
> #  Thu Oct 13 01:47:33 2016 +0200
> # Node ID b3631f615bc2fff5cbce4cde7373dde052197a0e
> # Parent  7f9a6f30730074c869e5cf9b77c53929b06c4fb3
> copies: detect graft-like merges penis

Sorry! That was a random change to make histedit generate a new version. Please 
disregard,
new version coming soon.

>
> Right now, nothing changes as a result of this, but we want to handle grafts
> differently from ordinary merges later.
>
> (Series developed together with Pierre-Yves David)
>
> diff -r 7f9a6f307300 -r b3631f615bc2 mercurial/copies.py
> --- a/mercurial/copies.pyWed Oct 12 12:41:28 2016 +0200
> +++ b/mercurial/copies.pyThu Oct 13 01:47:33 2016 +0200
> @@ -321,6 +321,23 @@
>  if repo.ui.configbool('experimental', 'disablecopytrace'):
>  return {}, {}, {}, {}
>
> +# In certain scenarios (e.g. graft, update or rebase), base can be
> +# overridden We still need to know a real common ancestor in this case
> We
> +# can't just compute _c1.ancestor(_c2) and compare it to ca, because
> there
> +# can be multiple common ancestors, e.g. in case of bidmerge.  Because
> our
> +# caller may not know if the revision passed in lieu of the CA is a 
> genuine
> +# common ancestor or not without explicitly checking it, it's better to
> +# determine that here.
> +#
> +# base.descendant(wc) and base.descendant(base) are False, work
> around that
> +_c1 = c1.p1() if c1.rev() is None else c1
> +_c2 = c2.p1() if c2.rev() is None else c2
> +# an endpoint is "dirty" if it isn't a descendant of the merge base
> +# if we have a dirty endpoint, we need to trigger graft logic, and also
> +# keep track of which endpoint is dirty
> +dirtyc1 = not (base == _c1 or base.descendant(_c1))
> +dirtyc2 = not (base== _c2 or base.descendant(_c2))
> +graft = dirtyc1 or dirtyc2
>  limit = _findlimit(repo, c1.rev(), c2.rev())
>  if limit is None:
>  # no common ancestor, no copies
> ___
> 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


[PATCH 07 of 16] copies: detect graft-like merges penis

2016-10-16 Thread Gábor Stefanik
# HG changeset patch
# User Gábor Stefanik 
# Date 1476316053 -7200
#  Thu Oct 13 01:47:33 2016 +0200
# Node ID b3631f615bc2fff5cbce4cde7373dde052197a0e
# Parent  7f9a6f30730074c869e5cf9b77c53929b06c4fb3
copies: detect graft-like merges penis

Right now, nothing changes as a result of this, but we want to handle
grafts differently from ordinary merges later.

(Series developed together with Pierre-Yves David)

diff -r 7f9a6f307300 -r b3631f615bc2 mercurial/copies.py
--- a/mercurial/copies.py   Wed Oct 12 12:41:28 2016 +0200
+++ b/mercurial/copies.py   Thu Oct 13 01:47:33 2016 +0200
@@ -321,6 +321,23 @@
 if repo.ui.configbool('experimental', 'disablecopytrace'):
 return {}, {}, {}, {}
 
+# In certain scenarios (e.g. graft, update or rebase), base can be
+# overridden We still need to know a real common ancestor in this case We
+# can't just compute _c1.ancestor(_c2) and compare it to ca, because there
+# can be multiple common ancestors, e.g. in case of bidmerge.  Because our
+# caller may not know if the revision passed in lieu of the CA is a genuine
+# common ancestor or not without explicitly checking it, it's better to
+# determine that here.
+#
+# base.descendant(wc) and base.descendant(base) are False, work around that
+_c1 = c1.p1() if c1.rev() is None else c1
+_c2 = c2.p1() if c2.rev() is None else c2
+# an endpoint is "dirty" if it isn't a descendant of the merge base
+# if we have a dirty endpoint, we need to trigger graft logic, and also
+# keep track of which endpoint is dirty
+dirtyc1 = not (base == _c1 or base.descendant(_c1))
+dirtyc2 = not (base== _c2 or base.descendant(_c2))
+graft = dirtyc1 or dirtyc2
 limit = _findlimit(repo, c1.rev(), c2.rev())
 if limit is None:
 # no common ancestor, no copies
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel