diff hgext/largefiles/uisetup.py @ 16515:12dabc22de77 stable

largefiles: fix status -S reporting of subrepos (issue3231) Wrapping the status command will only invoke overridestatus() and set the lfstatus field for the top level repository. Wrapping the status function is required to set the field on child repositories. Previously, status -S would report large files in a subrepo as '?' regardless of their actual states, and was inconsistent with what status would report from within that subrepo.
author Matt Harbison <matt_harbison@yahoo.com>
date Sun, 22 Apr 2012 03:47:34 -0400
parents 874a680a3e23
children 597ddcb41b32
line wrap: on
line diff
--- a/hgext/largefiles/uisetup.py	Thu Apr 26 02:41:20 2012 +0900
+++ b/hgext/largefiles/uisetup.py	Sun Apr 22 03:47:34 2012 -0400
@@ -12,6 +12,7 @@
     httprepo, localrepo, merge, sshrepo, sshserver, wireproto
 from mercurial.i18n import _
 from mercurial.hgweb import hgweb_mod, protocol, webcommands
+from mercurial.subrepo import hgsubrepo
 
 import overrides
 import proto
@@ -35,8 +36,13 @@
                                    overrides.overrideremove)
     entry = extensions.wrapcommand(commands.table, 'forget',
                                    overrides.overrideforget)
+
+    # Subrepos call status function
     entry = extensions.wrapcommand(commands.table, 'status',
                                    overrides.overridestatus)
+    entry = extensions.wrapfunction(hgsubrepo, 'status',
+                                    overrides.overridestatusfn)
+
     entry = extensions.wrapcommand(commands.table, 'log',
                                    overrides.overridelog)
     entry = extensions.wrapcommand(commands.table, 'rollback',