# HG changeset patch # User Jun Wu # Date 2017-05-04 05:20:44 # Node ID 776127b29a5cb8134315b726a6f06badde80db46 # Parent e62cf13e085898484d956769a6e2d48621ed2def diff: use fctx.size() to test empty fctx.size() could have a fast path that does not require loading content. diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -2508,6 +2508,9 @@ def trydiff(repo, revs, ctx1, ctx2, modi revinfo = ' '.join(["-r %s" % rev for rev in revs]) return 'diff %s %s' % (revinfo, f) + def isempty(fctx): + return fctx is None or fctx.size() == 0 + date1 = util.datestr(ctx1.date()) date2 = util.datestr(ctx2.date()) @@ -2546,9 +2549,9 @@ def trydiff(repo, revs, ctx1, ctx2, modi # copy/rename f2 in copy or # empty file creation - (not f1 and not content2) or + (not f1 and isempty(fctx2)) or # empty file deletion - (not content1 and not f2) or + (isempty(fctx1) and not f2) or # create with flags (not f1 and flag2) or # change flags