hgweb: show revisions and hashes gotten from changelog in "comparison" page
Before this patch, revision numbers and hash values in "comparison"
page are gotten from not changelog but filelog.
Such filelog information is useful only for hgweb debugging, and may
confuse users.
This patch shows revision numbers and hash values gotten from
changelog in "comparison" page.
--- a/mercurial/hgweb/webcommands.py Thu Apr 17 09:36:08 2014 +0900
+++ b/mercurial/hgweb/webcommands.py Thu Apr 17 09:36:09 2014 +0900
@@ -8,7 +8,7 @@
import os, mimetypes, re, cgi, copy
import webutil
from mercurial import error, encoding, archival, templater, templatefilters
-from mercurial.node import short, hex, nullid
+from mercurial.node import short, hex
from mercurial import util
from common import paritygen, staticfile, get_contact, ErrorResponse
from common import HTTP_OK, HTTP_FORBIDDEN, HTTP_NOT_FOUND
@@ -712,28 +712,22 @@
return [_('(binary file %s, hash: %s)') % (mt, hex(f.filenode()))]
return f.data().splitlines()
+ parent = ctx.p1()
+ leftrev = parent.rev()
+ leftnode = parent.node()
+ rightrev = ctx.rev()
+ rightnode = ctx.node()
if path in ctx:
fctx = ctx[path]
- rightrev = fctx.filerev()
- rightnode = fctx.filenode()
rightlines = filelines(fctx)
- parent = ctx.p1()
if path not in parent:
- leftrev = -1
- leftnode = nullid
leftlines = ()
else:
pfctx = parent[path]
- leftrev = pfctx.filerev()
- leftnode = pfctx.filenode()
leftlines = filelines(pfctx)
else:
- rightrev = -1
- rightnode = nullid
rightlines = ()
fctx = ctx.parents()[0][path]
- leftrev = fctx.filerev()
- leftnode = fctx.filenode()
leftlines = filelines(fctx)
comparison = webutil.compare(tmpl, context, leftlines, rightlines)
--- a/tests/test-hgweb-diffs.t Thu Apr 17 09:36:08 2014 +0900
+++ b/tests/test-hgweb-diffs.t Thu Apr 17 09:36:09 2014 +0900
@@ -576,6 +576,10 @@
comparison new file
+ $ hg parents --template "{rev}:{node|short}\n" -r 0
+ $ hg log --template "{rev}:{node|short}\n" -r 0
+ 0:0cd96de13884
+
$ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'comparison/0/a'
200 Script output follows
@@ -667,7 +671,7 @@
<thead class="header">
<tr>
<th>-1:000000000000</th>
- <th>0:b789fdd96dc2</th>
+ <th>0:0cd96de13884</th>
</tr>
</thead>
@@ -697,6 +701,12 @@
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo a >> a
$ hg ci -mc
+
+ $ hg parents --template "{rev}:{node|short}\n" -r tip
+ 1:559edbd9ed20
+ $ hg log --template "{rev}:{node|short}\n" -r tip
+ 2:d73db4d812ff
+
$ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'comparison/tip/a'
200 Script output follows
@@ -787,8 +797,8 @@
<table class="bigtable">
<thead class="header">
<tr>
- <th>0:b789fdd96dc2</th>
- <th>1:a80d06849b33</th>
+ <th>1:559edbd9ed20</th>
+ <th>2:d73db4d812ff</th>
</tr>
</thead>
@@ -820,6 +830,12 @@
$ hg rm a
$ hg ci -md
+
+ $ hg parents --template "{rev}:{node|short}\n" -r tip
+ 2:d73db4d812ff
+ $ hg log --template "{rev}:{node|short}\n" -r tip
+ 3:20e80271eb7a
+
$ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'comparison/tip/a'
200 Script output follows
@@ -910,8 +926,8 @@
<table class="bigtable">
<thead class="header">
<tr>
- <th>1:a80d06849b33</th>
- <th>-1:000000000000</th>
+ <th>2:d73db4d812ff</th>
+ <th>3:20e80271eb7a</th>
</tr>
</thead>
@@ -947,13 +963,13 @@
$ echo f > f
$ hg add f
$ hg ci -m f
- $ hg tip --template "{node|short}\n"
- 41d9fc4a6ae1
+ $ hg tip --template "{rev}:{node|short}\n"
+ 5:41d9fc4a6ae1
$ hg diff -c tip e
- $ hg parents --template "{node|short}\n" -r tip
- 402bea3b0976
- $ hg parents --template "{node|short}\n" -r tip e
- 402bea3b0976
+ $ hg parents --template "{rev}:{node|short}\n" -r tip
+ 4:402bea3b0976
+ $ hg parents --template "{rev}:{node|short}\n" -r tip e
+ 4:402bea3b0976
$ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'comparison/tip/e'
200 Script output follows
@@ -1045,8 +1061,8 @@
<table class="bigtable">
<thead class="header">
<tr>
- <th>0:6b67ccefd5ce</th>
- <th>0:6b67ccefd5ce</th>
+ <th>4:402bea3b0976</th>
+ <th>5:41d9fc4a6ae1</th>
</tr>
</thead>