--- a/mercurial/cmdutil.py Mon Apr 16 09:52:37 2007 -0500
+++ b/mercurial/cmdutil.py Mon Apr 16 12:37:30 2007 -0500
@@ -225,7 +225,7 @@
return 1
return 0
- def show(self, rev=0, changenode=None, copies=None, **props):
+ def show(self, rev=0, changenode=None, copies=(), **props):
if self.buffered:
self.ui.pushbuffer()
self._show(rev, changenode, copies, props)
@@ -321,10 +321,14 @@
def __init__(self, ui, repo, patch, mapfile, buffered):
changeset_printer.__init__(self, ui, repo, patch, buffered)
- self.t = templater.templater(mapfile, templater.common_filters,
- cache={'parent': '{rev}:{node|short} ',
- 'manifest': '{rev}:{node|short}',
- 'filecopy': '{name} ({source})'})
+ filters = templater.common_filters.copy()
+ filters['formatnode'] = (ui.debugflag and (lambda x: x)
+ or (lambda x: x[:12]))
+ self.t = templater.templater(mapfile, filters,
+ cache={
+ 'parent': '{rev}:{node|formatnode} ',
+ 'manifest': '{rev}:{node|formatnode}',
+ 'filecopy': '{name} ({source})'})
def use_template(self, t):
'''set template string to use'''
--- a/mercurial/merge.py Mon Apr 16 09:52:37 2007 -0500
+++ b/mercurial/merge.py Mon Apr 16 12:37:30 2007 -0500
@@ -105,10 +105,15 @@
def findold(fctx):
"find files that path was copied from, back to linkrev limit"
old = {}
+ seen = {}
orig = fctx.path()
visit = [fctx]
while visit:
fc = visit.pop()
+ s = str(fc)
+ if s in seen:
+ continue
+ seen[s] = 1
if fc.path() != orig and fc.path() not in old:
old[fc.path()] = 1
if fc.rev() < limit:
--- a/templates/map-cmdline.default Mon Apr 16 09:52:37 2007 -0500
+++ b/templates/map-cmdline.default Mon Apr 16 12:37:30 2007 -0500
@@ -1,4 +1,4 @@
-changeset = 'changeset: {rev}:{node|short}\n{branches}{tags}{short_parents}user: {author}\ndate: {date|date}\nsummary: {desc|firstline}\n\n'
+changeset = 'changeset: {rev}:{node|short}\n{branches}{tags}{parents}user: {author}\ndate: {date|date}\nsummary: {desc|firstline}\n\n'
changeset_quiet = '{rev}:{node|short}\n'
changeset_verbose = 'changeset: {rev}:{node|short}\n{branches}{tags}{parents}{manifest}user: {author}\ndate: {date|date}\n{files}{file_adds}{file_dels}{file_copies}description:\n{desc|strip}\n\n\n'
changeset_debug = 'changeset: {rev}:{node}\n{branches}{tags}{parents}{manifest}user: {author}\ndate: {date|date}\n{files}{file_adds}{file_dels}{file_copies}{extras}description:\n{desc|strip}\n\n\n'
@@ -14,8 +14,7 @@
start_file_copies = 'copies: '
file_copy = ' {name} ({source})'
end_file_copies = '\n'
-short_parent = 'parent: {rev}:{node|short}\n'
-parent = 'parent: {rev}:{node}\n'
+parent = 'parent: {rev}:{node|formatnode}\n'
manifest = 'manifest: {rev}:{node}\n'
branch = 'branch: {branch}\n'
tag = 'tag: {tag}\n'
--- a/tests/test-command-template Mon Apr 16 09:52:37 2007 -0500
+++ b/tests/test-command-template Mon Apr 16 12:37:30 2007 -0500
@@ -19,6 +19,12 @@
hg commit -m 'no user, no domain' -d '1300000 0' -u 'person'
echo foo > .hg/branch
hg commit -m 'new branch' -d '1400000 0' -u 'person'
+hg co -q 3
+echo other 4 >> d
+hg add d
+hg commit -m 'new head' -d '1500000 0' -u 'person'
+hg merge -q
+hg commit -m 'merge' -d '1500001 0' -u 'person'
# make sure user/global hgrc does not affect tests
echo '[ui]' > .hg/hgrc
@@ -39,6 +45,9 @@
hg log --debug --style default > style.out
diff log.out style.out
+echo '# revision with no copies (used to print a traceback)'
+hg tip -v --template '\n'
+
echo '# compact style works'
hg log --style compact
hg log -v --style compact
@@ -93,6 +102,16 @@
hg log --template '{desc|firstline}\n'
hg log --template '{node|short}\n'
+echo '# formatnode filter works'
+echo '# quiet'
+hg -q log -r 0 --template '#node|formatnode#\n'
+echo '# normal'
+hg log -r 0 --template '#node|formatnode#\n'
+echo '# verbose'
+hg -v log -r 0 --template '#node|formatnode#\n'
+echo '# debug'
+hg --debug log -r 0 --template '#node|formatnode#\n'
+
echo '# error on syntax'
echo 'x = "f' >> t
hg log
--- a/tests/test-command-template.out Mon Apr 16 09:52:37 2007 -0500
+++ b/tests/test-command-template.out Mon Apr 16 12:37:30 2007 -0500
@@ -2,8 +2,16 @@
# normal
# verbose
# debug
+# revision with no copies (used to print a traceback)
+
# compact style works
-4[tip] 32a18f097fcc 1970-01-17 04:53 +0000 person
+6[tip]:5,4 c7b487c6c50e 1970-01-18 08:40 +0000 person
+ merge
+
+5:3 13207e5a10d9 1970-01-18 08:40 +0000 person
+ new head
+
+4 32a18f097fcc 1970-01-17 04:53 +0000 person
new branch
3 10e46f2dcbf4 1970-01-16 01:06 +0000 person
@@ -18,7 +26,13 @@
0 1e4e1b8f71e0 1970-01-12 13:46 +0000 user
line 1
-4[tip] 32a18f097fcc 1970-01-17 04:53 +0000 person
+6[tip]:5,4 c7b487c6c50e 1970-01-18 08:40 +0000 person
+ merge
+
+5:3 13207e5a10d9 1970-01-18 08:40 +0000 person
+ new head
+
+4 32a18f097fcc 1970-01-17 04:53 +0000 person
new branch
3 10e46f2dcbf4 1970-01-16 01:06 +0000 person
@@ -33,7 +47,13 @@
0 1e4e1b8f71e0 1970-01-12 13:46 +0000 user
line 1
-4[tip]:3,-1 32a18f097fcc 1970-01-17 04:53 +0000 person
+6[tip]:5,4 c7b487c6c50e 1970-01-18 08:40 +0000 person
+ merge
+
+5:3,-1 13207e5a10d9 1970-01-18 08:40 +0000 person
+ new head
+
+4:3,-1 32a18f097fcc 1970-01-17 04:53 +0000 person
new branch
3:2,-1 10e46f2dcbf4 1970-01-16 01:06 +0000 person
@@ -57,22 +77,35 @@
# error if include fails
abort: template file ./q: Permission denied
# include works
+6
+5
4
3
2
1
0
# ui.style works
+6
+5
4
3
2
1
0
# issue338
+1970-01-18 person <person>
+
+ * merge
+ [c7b487c6c50e] [tip]
+
+ * d:
+ new head
+ [13207e5a10d9]
+
1970-01-17 person <person>
* new branch
- [32a18f097fcc] [tip]
+ [32a18f097fcc]
1970-01-16 person <person>
@@ -103,49 +136,69 @@
# keys work
author: person
author: person
+author: person
+author: person
author: other@place
author: A. N. Other <other@place>
author: User Name <user@hostname>
author--verbose: person
author--verbose: person
+author--verbose: person
+author--verbose: person
author--verbose: other@place
author--verbose: A. N. Other <other@place>
author--verbose: User Name <user@hostname>
author--debug: person
author--debug: person
+author--debug: person
+author--debug: person
author--debug: other@place
author--debug: A. N. Other <other@place>
author--debug: User Name <user@hostname>
+branches:
+branches:
branches: foo
branches:
branches:
branches:
branches:
+branches--verbose:
+branches--verbose:
branches--verbose: foo
branches--verbose:
branches--verbose:
branches--verbose:
branches--verbose:
+branches--debug:
+branches--debug:
branches--debug: foo
branches--debug:
branches--debug:
branches--debug:
branches--debug:
+date: 1500001.00
+date: 1500000.00
date: 1400000.00
date: 1300000.00
date: 1200000.00
date: 1100000.00
date: 1000000.00
+date--verbose: 1500001.00
+date--verbose: 1500000.00
date--verbose: 1400000.00
date--verbose: 1300000.00
date--verbose: 1200000.00
date--verbose: 1100000.00
date--verbose: 1000000.00
+date--debug: 1500001.00
+date--debug: 1500000.00
date--debug: 1400000.00
date--debug: 1300000.00
date--debug: 1200000.00
date--debug: 1100000.00
date--debug: 1000000.00
+desc: merge
+desc: new head
desc: new branch
desc: no user, no domain
desc: no person
@@ -155,6 +208,8 @@
other 3
desc: line 1
line 2
+desc--verbose: merge
+desc--verbose: new head
desc--verbose: new branch
desc--verbose: no user, no domain
desc--verbose: no person
@@ -164,6 +219,8 @@
other 3
desc--verbose: line 1
line 2
+desc--debug: merge
+desc--debug: new head
desc--debug: new branch
desc--debug: no user, no domain
desc--debug: no person
@@ -178,12 +235,18 @@
file_adds:
file_adds:
file_adds:
+file_adds:
+file_adds:
+file_adds--verbose:
+file_adds--verbose:
file_adds--verbose:
file_adds--verbose:
file_adds--verbose:
file_adds--verbose:
file_adds--verbose:
file_adds--debug:
+file_adds--debug: d
+file_adds--debug:
file_adds--debug:
file_adds--debug: c
file_adds--debug: b
@@ -193,27 +256,39 @@
file_dels:
file_dels:
file_dels:
+file_dels:
+file_dels:
file_dels--verbose:
file_dels--verbose:
file_dels--verbose:
file_dels--verbose:
file_dels--verbose:
+file_dels--verbose:
+file_dels--verbose:
+file_dels--debug:
+file_dels--debug:
file_dels--debug:
file_dels--debug:
file_dels--debug:
file_dels--debug:
file_dels--debug:
files:
+files: d
+files:
files: c
files: c
files: b
files: a
files--verbose:
+files--verbose: d
+files--verbose:
files--verbose: c
files--verbose: c
files--verbose: b
files--verbose: a
files--debug:
+files--debug:
+files--debug:
files--debug: c
files--debug:
files--debug:
@@ -223,56 +298,80 @@
manifest:
manifest:
manifest:
+manifest:
+manifest:
manifest--verbose:
manifest--verbose:
manifest--verbose:
manifest--verbose:
manifest--verbose:
-manifest--debug: 4:90ae8dda64e1
-manifest--debug: 3:cb5a1327723b
-manifest--debug: 2:6e0e82995c35
-manifest--debug: 1:4e8d705b1e53
-manifest--debug: 0:a0c8bcbbb45c
+manifest--verbose:
+manifest--verbose:
+manifest--debug: 6:91015e9dbdd76a6791085d12b0a0ec7fcd22ffbf
+manifest--debug: 5:4dc3def4f9b4c6e8de820f6ee74737f91e96a216
+manifest--debug: 4:90ae8dda64e1a876c792bccb9af66284f6018363
+manifest--debug: 3:cb5a1327723bada42f117e4c55a303246eaf9ccc
+manifest--debug: 2:6e0e82995c35d0d57a52aca8da4e56139e06b4b1
+manifest--debug: 1:4e8d705b1e53e3f9375e0e60dc7b525d8211fe55
+manifest--debug: 0:a0c8bcbbb45c63b90b70ad007bf38961f64f2af0
+node: c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f
+node: 13207e5a10d9fd28ec424934298e176197f2c67f
node: 32a18f097fcccf76ef282f62f8a85b3adf8d13c4
node: 10e46f2dcbf4823578cf180f33ecf0b957964c47
node: 97054abb4ab824450e9164180baf491ae0078465
node: b608e9d1a3f0273ccf70fb85fd6866b3482bf965
node: 1e4e1b8f71e05681d422154f5421e385fec3454f
+node--verbose: c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f
+node--verbose: 13207e5a10d9fd28ec424934298e176197f2c67f
node--verbose: 32a18f097fcccf76ef282f62f8a85b3adf8d13c4
node--verbose: 10e46f2dcbf4823578cf180f33ecf0b957964c47
node--verbose: 97054abb4ab824450e9164180baf491ae0078465
node--verbose: b608e9d1a3f0273ccf70fb85fd6866b3482bf965
node--verbose: 1e4e1b8f71e05681d422154f5421e385fec3454f
+node--debug: c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f
+node--debug: 13207e5a10d9fd28ec424934298e176197f2c67f
node--debug: 32a18f097fcccf76ef282f62f8a85b3adf8d13c4
node--debug: 10e46f2dcbf4823578cf180f33ecf0b957964c47
node--debug: 97054abb4ab824450e9164180baf491ae0078465
node--debug: b608e9d1a3f0273ccf70fb85fd6866b3482bf965
node--debug: 1e4e1b8f71e05681d422154f5421e385fec3454f
+parents: 5:13207e5a10d9 4:32a18f097fcc
+parents: 3:10e46f2dcbf4
parents:
parents:
parents:
parents:
parents:
+parents--verbose: 5:13207e5a10d9 4:32a18f097fcc
+parents--verbose: 3:10e46f2dcbf4
parents--verbose:
parents--verbose:
parents--verbose:
parents--verbose:
parents--verbose:
-parents--debug: 3:10e46f2dcbf4 -1:000000000000
-parents--debug: 2:97054abb4ab8 -1:000000000000
-parents--debug: 1:b608e9d1a3f0 -1:000000000000
-parents--debug: 0:1e4e1b8f71e0 -1:000000000000
-parents--debug: -1:000000000000 -1:000000000000
+parents--debug: 5:13207e5a10d9fd28ec424934298e176197f2c67f 4:32a18f097fcccf76ef282f62f8a85b3adf8d13c4
+parents--debug: 3:10e46f2dcbf4823578cf180f33ecf0b957964c47 -1:0000000000000000000000000000000000000000
+parents--debug: 3:10e46f2dcbf4823578cf180f33ecf0b957964c47 -1:0000000000000000000000000000000000000000
+parents--debug: 2:97054abb4ab824450e9164180baf491ae0078465 -1:0000000000000000000000000000000000000000
+parents--debug: 1:b608e9d1a3f0273ccf70fb85fd6866b3482bf965 -1:0000000000000000000000000000000000000000
+parents--debug: 0:1e4e1b8f71e05681d422154f5421e385fec3454f -1:0000000000000000000000000000000000000000
+parents--debug: -1:0000000000000000000000000000000000000000 -1:0000000000000000000000000000000000000000
+rev: 6
+rev: 5
rev: 4
rev: 3
rev: 2
rev: 1
rev: 0
+rev--verbose: 6
+rev--verbose: 5
rev--verbose: 4
rev--verbose: 3
rev--verbose: 2
rev--verbose: 1
rev--verbose: 0
+rev--debug: 6
+rev--debug: 5
rev--debug: 4
rev--debug: 3
rev--debug: 2
@@ -283,57 +382,88 @@
tags:
tags:
tags:
+tags:
+tags:
tags--verbose: tip
tags--verbose:
tags--verbose:
tags--verbose:
tags--verbose:
+tags--verbose:
+tags--verbose:
tags--debug: tip
tags--debug:
tags--debug:
tags--debug:
tags--debug:
+tags--debug:
+tags--debug:
# filters work
+
+
place
place
hostname
person
person
+person
+person
other
A. N. Other
User Name
person
person
+person
+person
other
other
user
+Sun Jan 18 08:40:01 1970 +0000
+Sun Jan 18 08:40:00 1970 +0000
Sat Jan 17 04:53:20 1970 +0000
Fri Jan 16 01:06:40 1970 +0000
Wed Jan 14 21:20:00 1970 +0000
Tue Jan 13 17:33:20 1970 +0000
Mon Jan 12 13:46:40 1970 +0000
+1970-01-18 08:40 +0000
+1970-01-18 08:40 +0000
1970-01-17 04:53 +0000
1970-01-16 01:06 +0000
1970-01-14 21:20 +0000
1970-01-13 17:33 +0000
1970-01-12 13:46 +0000
+Sun, 18 Jan 1970 08:40:01 +0000
+Sun, 18 Jan 1970 08:40:00 +0000
Sat, 17 Jan 1970 04:53:20 +0000
Fri, 16 Jan 1970 01:06:40 +0000
Wed, 14 Jan 1970 21:20:00 +0000
Tue, 13 Jan 1970 17:33:20 +0000
Mon, 12 Jan 1970 13:46:40 +0000
+merge
+new head
new branch
no user, no domain
no person
other 1
line 1
+c7b487c6c50e
+13207e5a10d9
32a18f097fcc
10e46f2dcbf4
97054abb4ab8
b608e9d1a3f0
1e4e1b8f71e0
+# formatnode filter works
+# quiet
+1e4e1b8f71e0
+# normal
+1e4e1b8f71e0
+# verbose
+1e4e1b8f71e0
+# debug
+1e4e1b8f71e05681d422154f5421e385fec3454f
# error on syntax
abort: t:3: unmatched quotes
# done