diff -r 20ad8f0512a2 -r 3e1efb458e8b hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py Tue Feb 07 18:47:16 2012 +0100 +++ b/hgext/largefiles/overrides.py Fri Feb 10 14:46:09 2012 +0100 @@ -660,6 +660,7 @@ repo.lfpullsource = source if not source: source = 'default' + oldheads = lfutil.getcurrentheads(repo) result = orig(ui, repo, source, **opts) # If we do not have the new largefiles for any new heads we pulled, we # will run into a problem later if we try to merge or rebase with one of @@ -667,12 +668,11 @@ # cache. ui.status(_("caching new largefiles\n")) numcached = 0 - branches = repo.branchmap() - for branch in branches: - heads = repo.branchheads(branch) - for head in heads: - (cached, missing) = lfcommands.cachelfiles(ui, repo, head) - numcached += len(cached) + heads = lfutil.getcurrentheads(repo) + newheads = set(heads).difference(set(oldheads)) + for head in newheads: + (cached, missing) = lfcommands.cachelfiles(ui, repo, head) + numcached += len(cached) ui.status(_("%d largefiles cached\n" % numcached)) return result