[PATCH 0 of 4 STABLE V2] fix problems around invocation of findcommonoutgoing/findcommonincoming

FUJIWARA Katsunori foozy at lares.dti.ne.jp
Tue Apr 9 15:05:02 UTC 2013


This patch series focuses on fixing problems around invocation of
"discovery.findcommonincoming()" and "discovery.findcommonoutgoing()"
for URL with branch.

In fact, there are still problematic "discovery.findcommonoutgoing()"
invocations without "onlyheads" in largefiles extension.

But current implementation of largefiles works correctly, because it
eliminates revisions other than ones on specified branch in URL by
applying "revlog.nodesbetween()" on the result of
"discovery.findcommonoutgoing()" invocation without "onlyheads".

So, I'm planning another patch series for "default" branch to fix
inefficiency of current largefiles in points below.

  - according to amount of code, "revlog.nodesbetween()" seems to be
    more expensive than "revlog.findcommonmissing()", which is invoked
    from "discovery.findcommonoutgoing()" if it is invoked with
    "onlyheads"

  - "discovery.findcommonoutgoing()" is invoked twice for each looking
    up/pushing changes, if largefiles is enabled

    in "hg push" case, it is invoked from "lfilesrepo.push()" and
    "localrepository.push()", for example


More information about the Mercurial-devel mailing list