##// END OF EJS Templates
templater: add "diff" template function...
FUJIWARA Katsunori -
r22434:40ce05b5 default
parent child Browse files
Show More
@@ -43,6 +43,8 b' In addition to filters, there are some b'
43
43
44 - date(date[, fmt])
44 - date(date[, fmt])
45
45
46 - diff([includepattern [, excludepattern]])
47
46 - fill(text[, width])
48 - fill(text[, width])
47
49
48 - get(dict, key)
50 - get(dict, key)
@@ -225,6 +225,23 b' def date(context, mapping, args):'
225 return util.datestr(date, fmt)
225 return util.datestr(date, fmt)
226 return util.datestr(date)
226 return util.datestr(date)
227
227
228 def diff(context, mapping, args):
229 if len(args) > 2:
230 # i18n: "diff" is a keyword
231 raise error.ParseError(_("diff expects one, two or no arguments"))
232
233 def getpatterns(i):
234 if i < len(args):
235 s = args[i][1].strip()
236 if s:
237 return [s]
238 return []
239
240 ctx = mapping['ctx']
241 chunks = ctx.diff(match=ctx.match([], getpatterns(0), getpatterns(1)))
242
243 return ''.join(chunks)
244
228 def fill(context, mapping, args):
245 def fill(context, mapping, args):
229 if not (1 <= len(args) <= 4):
246 if not (1 <= len(args) <= 4):
230 raise error.ParseError(_("fill expects one to four arguments"))
247 raise error.ParseError(_("fill expects one to four arguments"))
@@ -516,6 +533,7 b' methods = {'
516
533
517 funcs = {
534 funcs = {
518 "date": date,
535 "date": date,
536 "diff": diff,
519 "fill": fill,
537 "fill": fill,
520 "get": get,
538 "get": get,
521 "if": if_,
539 "if": if_,
@@ -1794,6 +1794,61 b' Thrown an error if a template function d'
1794 hg: parse error: unknown function 'foo'
1794 hg: parse error: unknown function 'foo'
1795 [255]
1795 [255]
1796
1796
1797 Test diff function:
1798
1799 $ hg diff -c 8
1800 diff -r 29114dbae42b -r 95c24699272e fourth
1801 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1802 +++ b/fourth Wed Jan 01 10:01:00 2020 +0000
1803 @@ -0,0 +1,1 @@
1804 +second
1805 diff -r 29114dbae42b -r 95c24699272e second
1806 --- a/second Mon Jan 12 13:46:40 1970 +0000
1807 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1808 @@ -1,1 +0,0 @@
1809 -second
1810 diff -r 29114dbae42b -r 95c24699272e third
1811 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1812 +++ b/third Wed Jan 01 10:01:00 2020 +0000
1813 @@ -0,0 +1,1 @@
1814 +third
1815
1816 $ hg log -r 8 -T "{diff()}"
1817 diff -r 29114dbae42b -r 95c24699272e fourth
1818 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1819 +++ b/fourth Wed Jan 01 10:01:00 2020 +0000
1820 @@ -0,0 +1,1 @@
1821 +second
1822 diff -r 29114dbae42b -r 95c24699272e second
1823 --- a/second Mon Jan 12 13:46:40 1970 +0000
1824 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1825 @@ -1,1 +0,0 @@
1826 -second
1827 diff -r 29114dbae42b -r 95c24699272e third
1828 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1829 +++ b/third Wed Jan 01 10:01:00 2020 +0000
1830 @@ -0,0 +1,1 @@
1831 +third
1832
1833 $ hg log -r 8 -T "{diff('glob:f*')}"
1834 diff -r 29114dbae42b -r 95c24699272e fourth
1835 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1836 +++ b/fourth Wed Jan 01 10:01:00 2020 +0000
1837 @@ -0,0 +1,1 @@
1838 +second
1839
1840 $ hg log -r 8 -T "{diff('', 'glob:f*')}"
1841 diff -r 29114dbae42b -r 95c24699272e second
1842 --- a/second Mon Jan 12 13:46:40 1970 +0000
1843 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1844 @@ -1,1 +0,0 @@
1845 -second
1846 diff -r 29114dbae42b -r 95c24699272e third
1847 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1848 +++ b/third Wed Jan 01 10:01:00 2020 +0000
1849 @@ -0,0 +1,1 @@
1850 +third
1851
1797 $ cd ..
1852 $ cd ..
1798
1853
1799
1854
General Comments 0
You need to be logged in to leave comments. Login now