# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1598691918 -19800 # Node ID 451e13cc6d859c3a5f7971059265abdfb4e37ca3 # Parent 1bed1b00b18d37bf59789065c72cf21b92701786 extdiff: move single file handling inside `not per-file` conditional If `--per-file` is passed, we will diffing files one by one, hence there is no need to make this optimization around single file in that case. This optimization is only required when `--per-file` is not passed and we will be opening directory-diff for a single file. Differential Revision: https://phab.mercurial-scm.org/D8971 diff -r 1bed1b00b18d -r 451e13cc6d85 hgext/extdiff.py --- a/hgext/extdiff.py Sat Aug 29 14:32:26 2020 +0530 +++ b/hgext/extdiff.py Sat Aug 29 14:35:18 2020 +0530 @@ -456,23 +456,23 @@ label1b = rev1b label2 = rev2 - # If only one change, diff the files instead of the directories - # Handle bogus modifies correctly by checking if the files exist - if len(common) == 1: - common_file = util.localpath(common.pop()) - dir1a = os.path.join(tmproot, dir1a, common_file) - label1a = common_file + rev1a - if not os.path.isfile(dir1a): - dir1a = pycompat.osdevnull - if do3way: - dir1b = os.path.join(tmproot, dir1b, common_file) - label1b = common_file + rev1b - if not os.path.isfile(dir1b): - dir1b = pycompat.osdevnull - dir2 = os.path.join(dir2root, dir2, common_file) - label2 = common_file + rev2 + if not opts.get(b'per_file'): + # If only one change, diff the files instead of the directories + # Handle bogus modifies correctly by checking if the files exist + if len(common) == 1: + common_file = util.localpath(common.pop()) + dir1a = os.path.join(tmproot, dir1a, common_file) + label1a = common_file + rev1a + if not os.path.isfile(dir1a): + dir1a = pycompat.osdevnull + if do3way: + dir1b = os.path.join(tmproot, dir1b, common_file) + label1b = common_file + rev1b + if not os.path.isfile(dir1b): + dir1b = pycompat.osdevnull + dir2 = os.path.join(dir2root, dir2, common_file) + label2 = common_file + rev2 - if not opts.get(b'per_file'): # Run the external tool on the 2 temp directories or the patches cmdline = formatcmdline( cmdline,