largefiles: hide .hglf/ prefix for largefiles in hgweb
This makes the manifest view in hgweb match what you see in the
working copy and what you get when you download an archive in hgweb.
--- a/hgext/largefiles/overrides.py Sun Apr 15 16:05:53 2012 +0200
+++ b/hgext/largefiles/overrides.py Sun Apr 15 16:05:57 2012 +0200
@@ -172,6 +172,11 @@
finally:
wlock.release()
+# For overriding mercurial.hgweb.webcommands so that largefiles will
+# appear at their right place in the manifests.
+def decodepath(orig, path):
+ return lfutil.splitstandin(path) or path
+
# -- Wrappers: modify existing commands --------------------------------
# Add works by going through the files that the user wanted to add and
--- a/hgext/largefiles/uisetup.py Sun Apr 15 16:05:53 2012 +0200
+++ b/hgext/largefiles/uisetup.py Sun Apr 15 16:05:57 2012 +0200
@@ -11,7 +11,7 @@
from mercurial import archival, cmdutil, commands, extensions, filemerge, hg, \
httprepo, localrepo, merge, sshrepo, sshserver, wireproto
from mercurial.i18n import _
-from mercurial.hgweb import hgweb_mod, protocol
+from mercurial.hgweb import hgweb_mod, protocol, webcommands
import overrides
import proto
@@ -109,6 +109,8 @@
hgweb_mod.perms['getlfile'] = 'pull'
hgweb_mod.perms['statlfile'] = 'pull'
+ extensions.wrapfunction(webcommands, 'decodepath', overrides.decodepath)
+
# the hello wireproto command uses wireproto.capabilities, so it won't see
# our largefiles capability unless we replace the actual function as well.
proto.capabilitiesorig = wireproto.capabilities
--- a/tests/test-largefiles.t Sun Apr 15 16:05:53 2012 +0200
+++ b/tests/test-largefiles.t Sun Apr 15 16:05:57 2012 +0200
@@ -127,6 +127,29 @@
$ cat sub/large4
large22
+Test display of largefiles in hgweb
+
+ $ hg serve -d -p $HGPORT --pid-file ../hg.pid
+ $ cat ../hg.pid >> $DAEMON_PIDS
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/tip/?style=raw'
+ 200 Script output follows
+
+
+ drwxr-xr-x sub
+ -rw-r--r-- 41 large3
+ -rw-r--r-- 9 normal3
+
+
+ $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/tip/sub/?style=raw'
+ 200 Script output follows
+
+
+ -rw-r--r-- 41 large4
+ -rw-r--r-- 9 normal4
+
+
+ $ "$TESTDIR/killdaemons.py"
+
Test archiving the various revisions. These hit corner cases known with
archiving.