hgweb: treat rev as raw-rev if user agent is hg
authorDirkjan Ochtman <dirkjan@ochtman.nl>
Fri, 06 Nov 2009 22:46:46 +0100
changeset 9731 0e080d519d1b
parent 9730 732fc0e9d411
child 9732 092bcf431562
hgweb: treat rev as raw-rev if user agent is hg
mercurial/hgweb/hgweb_mod.py
tests/test-hgweb-diffs
tests/test-hgweb-diffs.out
--- a/mercurial/hgweb/hgweb_mod.py	Fri Nov 06 13:48:17 2009 +0200
+++ b/mercurial/hgweb/hgweb_mod.py	Fri Nov 06 22:46:46 2009 +0100
@@ -151,6 +151,10 @@
                 if args:
                     req.form['file'] = args
 
+            ua = req.env.get('HTTP_USER_AGENT', '')
+            if cmd == 'rev' and 'mercurial' in ua:
+                req.form['style'] = ['raw']
+
             if cmd == 'archive':
                 fn = req.form['node'][0]
                 for type_, spec in self.archive_specs.iteritems():
--- a/tests/test-hgweb-diffs	Fri Nov 06 13:48:17 2009 +0200
+++ b/tests/test-hgweb-diffs	Fri Nov 06 22:46:46 2009 +0100
@@ -38,5 +38,11 @@
 echo % diff removed file
 "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
 
+cd ..
+echo % test import rev as raw-rev
+hg clone -r0 test test1
+cd test1
+hg import --exact http://localhost:$HGPORT/rev/1
+
 echo % errors
-cat errors.log
+cat ../test/errors.log
--- a/tests/test-hgweb-diffs.out	Fri Nov 06 13:48:17 2009 +0200
+++ b/tests/test-hgweb-diffs.out	Fri Nov 06 22:46:46 2009 +0100
@@ -417,4 +417,13 @@
 </body>
 </html>
 
+% test import rev as raw-rev
+requesting all changes
+adding changesets
+adding manifests
+adding file changes
+added 1 changesets with 2 changes to 2 files
+updating to branch default
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+applying http://localhost:20059/rev/1
 % errors