[PATCH 17 of 27 clfilter V2] largefile: status is buggy on repoproxy. Run it unfiltered
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Mon Oct 8 16:38:08 CDT 2012
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1349712716 -7200
# Node ID 7a735d5b7f77e83cd3ef4b83f1e5634360a37818
# Parent fe4fd85ce72a171264b9ded32b3490b9b873db6f
largefile: status is buggy on repoproxy. Run it unfiltered
For some (yet) unkown reason, largefile status does not works on repoproxy. As
status is not affected by filtering, we run it unfiltered.
Na'Tosha Bard view on this issue is:
"but, well, largefiles status is kind of an unholy piece of code"
diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py
--- a/hgext/largefiles/overrides.py
+++ b/hgext/largefiles/overrides.py
@@ -1052,6 +1052,9 @@
# Calling purge with --all will cause the largefiles to be deleted.
# Override repo.status to prevent this from happening.
def overridepurge(orig, ui, repo, *dirs, **opts):
+ # XXX large file status is buggy when used on repo proxy.
+ # XXX this needs to be investigate.
+ repo = repo.unfiltered()
oldstatus = repo.status
def overridestatus(node1='.', node2=None, match=None, ignored=False,
clean=False, unknown=False, listsubrepos=False):
diff --git a/hgext/largefiles/reposetup.py b/hgext/largefiles/reposetup.py
--- a/hgext/largefiles/reposetup.py
+++ b/hgext/largefiles/reposetup.py
@@ -14,6 +14,7 @@
from mercurial import context, error, manifest, match as match_, util
from mercurial import node as node_
from mercurial.i18n import _
+from mercurial import localrepo
import lfcommands
import proto
@@ -88,6 +89,9 @@
# appropriate list in the result. Also removes standin files
# from the listing. Revert to the original status if
# self.lfstatus is False.
+ # XXX large file status is buggy when used on repo proxy.
+ # XXX this needs to be investigate.
+ @localrepo.unfilteredmeth
def status(self, node1='.', node2=None, match=None, ignored=False,
clean=False, unknown=False, listsubrepos=False):
listignored, listclean, listunknown = ignored, clean, unknown
More information about the Mercurial-devel
mailing list