878 lines = [((fctx.filectx(fctx.filerev()), 1), '(binary:%s)' % mt)] |
878 lines = [((fctx.filectx(fctx.filerev()), 1), '(binary:%s)' % mt)] |
879 else: |
879 else: |
880 lines = fctx.annotate(follow=True, linenumber=True, |
880 lines = fctx.annotate(follow=True, linenumber=True, |
881 diffopts=diffopts) |
881 diffopts=diffopts) |
882 previousrev = None |
882 previousrev = None |
|
883 blockparitygen = paritygen(1) |
883 for lineno, ((f, targetline), l) in enumerate(lines): |
884 for lineno, ((f, targetline), l) in enumerate(lines): |
884 rev = f.rev() |
885 rev = f.rev() |
885 blockhead = rev != previousrev or None |
886 if rev != previousrev: |
|
887 blockhead = True |
|
888 blockparity = next(blockparitygen) |
|
889 else: |
|
890 blockhead = None |
886 previousrev = rev |
891 previousrev = rev |
887 yield {"parity": next(parity), |
892 yield {"parity": next(parity), |
888 "node": f.hex(), |
893 "node": f.hex(), |
889 "rev": rev, |
894 "rev": rev, |
890 "author": f.user(), |
895 "author": f.user(), |
891 "parents": parents(f), |
896 "parents": parents(f), |
892 "desc": f.description(), |
897 "desc": f.description(), |
893 "extra": f.extra(), |
898 "extra": f.extra(), |
894 "file": f.path(), |
899 "file": f.path(), |
895 "blockhead": blockhead, |
900 "blockhead": blockhead, |
|
901 "blockparity": blockparity, |
896 "targetline": targetline, |
902 "targetline": targetline, |
897 "line": l, |
903 "line": l, |
898 "lineno": lineno + 1, |
904 "lineno": lineno + 1, |
899 "lineid": "l%d" % (lineno + 1), |
905 "lineid": "l%d" % (lineno + 1), |
900 "linenumber": "% 6d" % (lineno + 1), |
906 "linenumber": "% 6d" % (lineno + 1), |