##// END OF EJS Templates
annotate: restructure formatter output to be nested list (BC)...
Yuya Nishihara -
r32649:7a209737 default
parent child Browse files
Show More
@@ -377,15 +377,18 b' def annotate(ui, repo, *pats, **opts):'
377
377
378 for abs in ctx.walk(m):
378 for abs in ctx.walk(m):
379 fctx = ctx[abs]
379 fctx = ctx[abs]
380 rootfm.startitem()
381 rootfm.data(abspath=abs, path=m.rel(abs))
380 if not opts.get('text') and fctx.isbinary():
382 if not opts.get('text') and fctx.isbinary():
381 rootfm.plain(_("%s: binary file\n")
383 rootfm.plain(_("%s: binary file\n")
382 % ((pats and m.rel(abs)) or abs))
384 % ((pats and m.rel(abs)) or abs))
383 continue
385 continue
384
386
385 fm = rootfm
387 fm = rootfm.nested('lines')
386 lines = fctx.annotate(follow=follow, linenumber=linenumber,
388 lines = fctx.annotate(follow=follow, linenumber=linenumber,
387 skiprevs=skiprevs, diffopts=diffopts)
389 skiprevs=skiprevs, diffopts=diffopts)
388 if not lines:
390 if not lines:
391 fm.end()
389 continue
392 continue
390 formats = []
393 formats = []
391 pieces = []
394 pieces = []
@@ -407,6 +410,7 b' def annotate(ui, repo, *pats, **opts):'
407
410
408 if not lines[-1][1].endswith('\n'):
411 if not lines[-1][1].endswith('\n'):
409 fm.plain('\n')
412 fm.plain('\n')
413 fm.end()
410
414
411 rootfm.end()
415 rootfm.end()
412
416
@@ -56,21 +56,18 b' annotate (JSON)'
56 $ hg annotate -Tjson a
56 $ hg annotate -Tjson a
57 [
57 [
58 {
58 {
59 "line": "a\n",
59 "abspath": "a",
60 "rev": 0
60 "lines": [{"line": "a\n", "rev": 0}],
61 "path": "a"
61 }
62 }
62 ]
63 ]
63
64
64 $ hg annotate -Tjson -cdfnul a
65 $ hg annotate -Tjson -cdfnul a
65 [
66 [
66 {
67 {
67 "date": [1.0, 0],
68 "abspath": "a",
68 "file": "a",
69 "lines": [{"date": [1.0, 0], "file": "a", "line": "a\n", "line_number": 1, "node": "8435f90966e442695d2ded29fdade2bac5ad8065", "rev": 0, "user": "nobody"}],
69 "line": "a\n",
70 "path": "a"
70 "line_number": 1,
71 "node": "8435f90966e442695d2ded29fdade2bac5ad8065",
72 "rev": 0,
73 "user": "nobody"
74 }
71 }
75 ]
72 ]
76
73
@@ -88,6 +85,37 b' annotate (JSON)'
88 > EOF
85 > EOF
89 $ hg ci -mb2 -d '2 0'
86 $ hg ci -mb2 -d '2 0'
90
87
88 annotate multiple files (JSON)
89
90 $ hg annotate -Tjson a b
91 [
92 {
93 "abspath": "a",
94 "lines": [{"line": "a\n", "rev": 0}, {"line": "a\n", "rev": 1}, {"line": "a\n", "rev": 1}],
95 "path": "a"
96 },
97 {
98 "abspath": "b",
99 "lines": [{"line": "a\n", "rev": 0}, {"line": "a\n", "rev": 1}, {"line": "a\n", "rev": 1}, {"line": "b4\n", "rev": 3}, {"line": "b5\n", "rev": 3}, {"line": "b6\n", "rev": 3}],
100 "path": "b"
101 }
102 ]
103
104 annotate multiple files (template)
105
106 $ hg annotate -T'== {abspath} ==\n{lines % "{rev}: {line}"}' a b
107 == a ==
108 0: a
109 1: a
110 1: a
111 == b ==
112 0: a
113 1: a
114 1: a
115 3: b4
116 3: b5
117 3: b6
118
91 annotate -n b
119 annotate -n b
92
120
93 $ hg annotate -n b
121 $ hg annotate -n b
@@ -500,14 +528,9 b' annotate modified file'
500 $ hg annotate -ncr "wdir()" -Tjson foo
528 $ hg annotate -ncr "wdir()" -Tjson foo
501 [
529 [
502 {
530 {
503 "line": "foo\n",
531 "abspath": "foo",
504 "node": "472b18db256d1e8282064eab4bfdaf48cbfe83cd",
532 "lines": [{"line": "foo\n", "node": "472b18db256d1e8282064eab4bfdaf48cbfe83cd", "rev": 11}, {"line": "foofoo\n", "node": null, "rev": null}],
505 "rev": 11
533 "path": "foo"
506 },
507 {
508 "line": "foofoo\n",
509 "node": null,
510 "rev": null
511 }
534 }
512 ]
535 ]
513
536
@@ -742,6 +765,28 b' check error cases'
742 hg: parse error: descend argument must be a boolean
765 hg: parse error: descend argument must be a boolean
743 [255]
766 [255]
744
767
768 Test empty annotate output
769
770 $ printf '\0' > binary
771 $ touch empty
772 $ hg ci -qAm 'add binary and empty files'
773
774 $ hg annotate binary empty
775 binary: binary file
776
777 $ hg annotate -Tjson binary empty
778 [
779 {
780 "abspath": "binary",
781 "path": "binary"
782 },
783 {
784 "abspath": "empty",
785 "lines": [],
786 "path": "empty"
787 }
788 ]
789
745 Test annotate with whitespace options
790 Test annotate with whitespace options
746
791
747 $ cd ..
792 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now