Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/patch.py @ 24056:ae453d166d51
trydiff: replace 'binarydiff' variable by 'binary' variable
It's not obvious, but every path in the 'if opts.git or losedatafn:'
block will have checked whether the file is binary [1]. Let's assign
the result of this check to a variable so we can simplify by checking
'binary and opts.git' in only one place instead of every place we
currently assign to 'binarydiff'.
[1] Except when deleting an empty file, but checking whether an empty
string is binary is very cheap anyway.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 22 Jan 2015 21:03:57 -0800 |
parents | 7f4e6b5fce03 |
children | 696d0fd77d94 |
comparison
equal
deleted
inserted
replaced
24055:7f4e6b5fce03 | 24056:ae453d166d51 |
---|---|
1774 for f in sorted(modified + added + removed): | 1774 for f in sorted(modified + added + removed): |
1775 flag1 = None | 1775 flag1 = None |
1776 flag2 = None | 1776 flag2 = None |
1777 content1 = None | 1777 content1 = None |
1778 content2 = None | 1778 content2 = None |
1779 binarydiff = False | 1779 binary = False |
1780 copyop = None | 1780 copyop = None |
1781 if f not in addedset: | 1781 if f not in addedset: |
1782 content1 = getfilectx(f, ctx1).data() | 1782 content1 = getfilectx(f, ctx1).data() |
1783 if f not in removedset: | 1783 if f not in removedset: |
1784 content2 = getfilectx(f, ctx2).data() | 1784 content2 = getfilectx(f, ctx2).data() |
1799 else: | 1799 else: |
1800 losedatafn(f) | 1800 losedatafn(f) |
1801 else: | 1801 else: |
1802 if not opts.git and flag2: | 1802 if not opts.git and flag2: |
1803 losedatafn(f) | 1803 losedatafn(f) |
1804 if util.binary(content1) or util.binary(content2): | 1804 binary = util.binary(content1) or util.binary(content2) |
1805 if opts.git: | 1805 if not opts.git and binary: |
1806 binarydiff = True | 1806 losedatafn(f) |
1807 else: | |
1808 losedatafn(f) | |
1809 if not opts.git and not content2: | 1807 if not opts.git and not content2: |
1810 # regular diffs cannot represent new empty file | 1808 # regular diffs cannot represent new empty file |
1811 losedatafn(f) | 1809 losedatafn(f) |
1812 elif f in removedset: | 1810 elif f in removedset: |
1813 if opts.git: | 1811 if opts.git: |
1815 if (f in copyto and copyto[f] in addedset | 1813 if (f in copyto and copyto[f] in addedset |
1816 and copy[copyto[f]] == f): | 1814 and copy[copyto[f]] == f): |
1817 continue | 1815 continue |
1818 else: | 1816 else: |
1819 flag1 = ctx1.flags(f) | 1817 flag1 = ctx1.flags(f) |
1820 if util.binary(content1): | 1818 binary = util.binary(content1) |
1821 binarydiff = True | 1819 else: |
1822 elif not content1 or util.binary(content1): | 1820 binary = util.binary(content1) |
1823 # regular diffs cannot represent empty file deletion | 1821 if not content1 or binary: |
1824 losedatafn(f) | 1822 # regular diffs cannot represent empty file deletion |
1823 losedatafn(f) | |
1825 else: | 1824 else: |
1826 flag1 = ctx1.flags(f) | 1825 flag1 = ctx1.flags(f) |
1827 flag2 = ctx2.flags(f) | 1826 flag2 = ctx2.flags(f) |
1828 binary = util.binary(content1) or util.binary(content2) | 1827 binary = util.binary(content1) or util.binary(content2) |
1829 if opts.git: | 1828 if not opts.git and (binary or flag2 != flag1): |
1830 if binary: | |
1831 binarydiff = True | |
1832 elif binary or flag2 != flag1: | |
1833 losedatafn(f) | 1829 losedatafn(f) |
1834 | 1830 |
1835 path1 = posixpath.join(prefix, f1) | 1831 path1 = posixpath.join(prefix, f1) |
1836 path2 = posixpath.join(prefix, f2) | 1832 path2 = posixpath.join(prefix, f2) |
1837 header = [] | 1833 header = [] |
1851 header.append('%s from %s' % (copyop, path1)) | 1847 header.append('%s from %s' % (copyop, path1)) |
1852 header.append('%s to %s' % (copyop, path2)) | 1848 header.append('%s to %s' % (copyop, path2)) |
1853 elif revs and not repo.ui.quiet: | 1849 elif revs and not repo.ui.quiet: |
1854 header.append(diffline(path1, revs)) | 1850 header.append(diffline(path1, revs)) |
1855 | 1851 |
1856 if binarydiff and not opts.nobinary: | 1852 if binary and opts.git and not opts.nobinary: |
1857 text = mdiff.b85diff(content1, content2) | 1853 text = mdiff.b85diff(content1, content2) |
1858 if text and opts.git: | 1854 if text: |
1859 header.append('index %s..%s' % | 1855 header.append('index %s..%s' % |
1860 (gitindex(content1), gitindex(content2))) | 1856 (gitindex(content1), gitindex(content2))) |
1861 else: | 1857 else: |
1862 text = mdiff.unidiff(content1, date1, | 1858 text = mdiff.unidiff(content1, date1, |
1863 content2, date2, | 1859 content2, date2, |