Patchwork D8969: extdiff: pass full paths of `dir1a` and `dir1b` to `_runperfilediff()`

login
register
mail settings
Submitter phabricator
Date Aug. 29, 2020, 2:12 p.m.
Message ID <differential-rev-PHID-DREV-xtgfvcjq2e2gdnfaqvtw-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/47070/
State Superseded
Headers show

Comments

phabricator - Aug. 29, 2020, 2:12 p.m.
pulkit created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  Earlier we were passing basename instead of the fullpath and then joining with
  the tmproot. This is wrong because the user can choose `rev1a` as wdir and in
  those cases, tmproot should not be joined with the path.
  
  I am working on refactoring extdiff logic so that we can have options like `diff
  --tool` and encountered this. Although this patch in itself makes no difference,
  however in future when a new caller of `_runperfilediff()` will be added, it
  will be useful to directly pass on the full paths instead.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D8969

AFFECTED FILES
  hgext/extdiff.py

CHANGE DETAILS




To: pulkit, #hg-reviewers
Cc: mercurial-patches, mercurial-devel

Patch

diff --git a/hgext/extdiff.py b/hgext/extdiff.py
--- a/hgext/extdiff.py
+++ b/hgext/extdiff.py
@@ -267,7 +267,7 @@ 
     waitprocs = []
     totalfiles = len(commonfiles)
     for idx, commonfile in enumerate(sorted(commonfiles)):
-        path1a = os.path.join(tmproot, dir1a, commonfile)
+        path1a = os.path.join(dir1a, commonfile)
         label1a = commonfile + rev1a
         if not os.path.isfile(path1a):
             path1a = pycompat.osdevnull
@@ -275,7 +275,7 @@ 
         path1b = b''
         label1b = b''
         if do3way:
-            path1b = os.path.join(tmproot, dir1b, commonfile)
+            path1b = os.path.join(dir1b, commonfile)
             label1b = commonfile + rev1b
             if not os.path.isfile(path1b):
                 path1b = pycompat.osdevnull
@@ -499,8 +499,8 @@ 
             confirm=opts.get(b'confirm'),
             commonfiles=common,
             tmproot=tmproot,
-            dir1a=dir1a,
-            dir1b=dir1b,
+            dir1a=os.path.join(tmproot, dir1a),
+            dir1b=os.path.join(tmproot, dir1b) if do3way else None,
             dir2root=dir2root,
             dir2=dir2,
             rev1a=rev1a,