[PATCH 3 of 4] copies: calculate 'bothnew' from manifestdict.filesnotin()
Martin von Zweigbergk
martinvonz at google.com
Fri Feb 27 19:15:12 CST 2015
On Fri, Feb 27, 2015 at 5:08 PM Durham Goode <durham at fb.com> wrote:
>
>
> On 2/27/15, 2:46 PM, "Martin von Zweigbergk" <martinvonz at google.com>
> wrote:
>
> ># HG changeset patch
> ># User Martin von Zweigbergk <martinvonz at google.com>
> ># Date 1425074581 28800
> ># Fri Feb 27 14:03:01 2015 -0800
> ># Node ID b3bcf58446fdebf3672edbbc55c24509e549eb22
> ># Parent 89f810fb00184d3a1dd49412d0c3256a596ddca8
> >copies: calculate 'bothnew' from manifestdict.filesnotin()
> >
> >In the same spirit as the previous change, let's now calculate the
> >'bothnew' variable using manifestdict.filesnotin().5D
> >
> >diff -r 89f810fb0018 -r b3bcf58446fd mercurial/copies.py
> >--- a/mercurial/copies.py Fri Feb 27 14:02:30 2015 -0800
> >+++ b/mercurial/copies.py Fri Feb 27 14:03:01 2015 -0800
> >@@ -302,7 +302,9 @@
> > else:
> > diverge2.update(fl) # reverse map for below
> >
> >- bothnew = sorted([d for d in m1 if d in m2 and d not in ma])
> >+ addedinm1 = m1.filesnotin(ma)
> >+ addedinm2 = m2.filesnotin(ma)
> >+ bothnew = sorted(addedinm1 & addedinm2)
>
> I was concerned about perf here (since we¹re constructing sets when we
> used to not, and we¹re iterating over both m1 and m2 when we used to not),
> but I ran the numbers and the new stuff is actually faster. To diff
> million file manifests with 5k files different each, previously it was
> 0.36s and now it¹s 0.23.
>
Great! And thanks for doing my job for me! :-)
Even if it were a little slower, it should hopefully have been outweighed
after 4/4. But even better that it's already after 3/4.
Also, to whomever applies this, feel free to drop (or not) the "5D" at the
end of the message.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20150228/58131aa4/attachment.html>
More information about the Mercurial-devel
mailing list