Mercurial > hg
changeset 34855:35c6a54ec1ff
diff: also yield file context objects in patch.trydiff() (API)
And retrieve them in patch.diffhunks(). We'll use these in forthcoming
changesets to filter diff hunks by line range.
author | Denis Laxalde <denis.laxalde@logilab.fr> |
---|---|
date | Thu, 05 Oct 2017 21:20:08 +0200 |
parents | 39b094e4ae2c |
children | 890afefa7296 |
files | mercurial/hgweb/webutil.py mercurial/patch.py |
diffstat | 2 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hgweb/webutil.py Wed Oct 04 15:27:43 2017 +0200 +++ b/mercurial/hgweb/webutil.py Thu Oct 05 21:20:08 2017 +0200 @@ -479,7 +479,7 @@ parity = paritygen(web.stripecount) diffhunks = patch.diffhunks(repo, node1, node2, m, opts=diffopts) - for blockno, (header, hunks) in enumerate(diffhunks, 1): + for blockno, (fctx1, fctx2, header, hunks) in enumerate(diffhunks, 1): if style != 'raw': header = header[1:] lines = [h + '\n' for h in header]
--- a/mercurial/patch.py Wed Oct 04 15:27:43 2017 +0200 +++ b/mercurial/patch.py Thu Oct 05 21:20:08 2017 +0200 @@ -2319,10 +2319,11 @@ copy, if not empty, should contain mappings {dst@y: src@x} of copy information.''' - for hdr, hunks in diffhunks(repo, node1=node1, node2=node2, match=match, - changes=changes, opts=opts, - losedatafn=losedatafn, prefix=prefix, - relroot=relroot, copy=copy): + for fctx1, fctx2, hdr, hunks in diffhunks( + repo, node1=node1, node2=node2, + match=match, changes=changes, opts=opts, + losedatafn=losedatafn, prefix=prefix, relroot=relroot, copy=copy, + ): text = ''.join(sum((list(hlines) for hrange, hlines in hunks), [])) if hdr and (text or len(hdr) > 1): yield '\n'.join(hdr) + '\n' @@ -2687,7 +2688,7 @@ content2, date2, path1, path2, opts=opts) header.extend(uheaders) - yield header, hunks + yield fctx1, fctx2, header, hunks def diffstatsum(stats): maxfile, maxtotal, addtotal, removetotal, binary = 0, 0, 0, 0, False