Mercurial > hg
changeset 16449:874a680a3e23
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.
author | Martin Geisler <mg@lazybytes.net> |
---|---|
date | Sun, 15 Apr 2012 16:05:57 +0200 |
parents | e6b45e9a75dc |
children | 9c431cfdca12 |
files | hgext/largefiles/overrides.py hgext/largefiles/uisetup.py tests/test-largefiles.t |
diffstat | 3 files changed, 31 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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.