[PATCH 1 of 2 STABLE] annotate: reuse already calculated annotation
FUJIWARA Katsunori
foozy at lares.dti.ne.jp
Fri Mar 29 08:44:19 CDT 2013
At Thu, 28 Mar 2013 10:35:46 -0500,
Kevin Bullock wrote:
>
> On 28 Mar 2013, at 5:36 AM, FUJIWARA Katsunori wrote:
>
> > # HG changeset patch
> > # User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
> > # Date 1364464124 -32400
> > # Branch stable
> > # Node ID 53691948fe037f64fe97d4eb7fad76ebda4edf6a
> > # Parent 43dfb6fce6a76168766f3b73f4c991ab811590ec
> > annotate: reuse already calculated annotation
> >
> > Before this patch, annotation is re-calculated even if it is already
> > calculated. This may cause unexpected annotation, because already
> > cleared "pcache" ("pcache[f] = []") prevents from scanning ancestors.
> >
> > This patch reuses already calculated annotation if it is available.
> >
> > In fact, "reusable" situation should be seen only on legacy
> > repositories which include the merging between the revision and its
> > ancestor, because:
> >
> > - tree is scanned in depth-first
> >
> > without such merging, annotation result should be released soon
> >
> > - recent Mercurial doesn't allow such merging
>
> ...except that we _do_ allow it if the ancestor is on a different
> named branch.
Thank you for your suggestino, Kevin.
As you described, we can merge the revision and its ancestor, if the
ancestor is on a different named branch.
But to reproduce issue3841:
- the ancestor should be the second parent of merging revision
such merging is aborted as "merging with a working directory
ancestor no effect" in mercurial/merge.py
- filelog should include such merging
merging across named branch causes creation of such merging in
changelog and manifest, but never in filelogs.
in "localrepository._filecommit()", second parent is ignored just
before creating new entry into filelog, if one of parents is an
ancestor of the other:
I'll re-post patch series which also describes above detail.
----------------------------------------------------------------------
[FUJIWARA Katsunori] foozy at lares.dti.ne.jp
More information about the Mercurial-devel
mailing list