largefile: status is buggy on repoproxy, so run unfiltered
authorPierre-Yves David <pierre-yves.david@ens-lyon.org>
Mon, 08 Oct 2012 18:11:56 +0200
changeset 18012 848c428bb5ee
parent 18011 4908197d7422
child 18013 98c867ac1330
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"
hgext/largefiles/overrides.py
hgext/largefiles/reposetup.py
--- 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