largefile: status is buggy on repoproxy, so run unfiltered
For some yet-unkown reason, largefile status does not work on
repoproxy. As status is not affected by filtering, we run it unfiltered.
Na'Tosha Bard's view on this issue:
"but, well, largefiles status is kind of an unholy piece of code"
--- a/hgext/largefiles/overrides.py Mon Oct 08 20:01:40 2012 +0200
+++ b/hgext/largefiles/overrides.py Mon Oct 08 18:11:56 2012 +0200
@@ -1064,6 +1064,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):
--- a/hgext/largefiles/reposetup.py Mon Oct 08 20:01:40 2012 +0200
+++ b/hgext/largefiles/reposetup.py Mon Oct 08 18:11:56 2012 +0200
@@ -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 investigated.
+ @localrepo.unfilteredmeth
def status(self, node1='.', node2=None, match=None, ignored=False,
clean=False, unknown=False, listsubrepos=False):
listignored, listclean, listunknown = ignored, clean, unknown