D5968: obsutil: don't assume leftctx and rightctx repo as same

pulkit (Pulkit Goyal) phabricator at mercurial-scm.org
Fri Feb 15 14:48:42 UTC 2019


pulkit created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Backed out changeset https://phab.mercurial-scm.org/rHG520514af2d9378d9d5815f0c4edc01617968356d.
  
  hgsubversion can pass leftctx and rightctx which are instances of two different
  repositories. This was making tests fail on hgsubversion with 4.9.
  
  The two different instances are:
  
  (Pdb) p rightctx.repo()
  <filteredrepo:served <hgsubversion.svnrepo.svnlocalrepo object at 0x7fe29d296d10>>
  (Pdb) p leftctx.repo()
  <filteredrepo:visible <hgsubversion.svnrepo.svnlocalrepo object at 0x7fe29d494590>>

REPOSITORY
  rHG Mercurial

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

AFFECTED FILES
  mercurial/obsutil.py

CHANGE DETAILS

diff --git a/mercurial/obsutil.py b/mercurial/obsutil.py
--- a/mercurial/obsutil.py
+++ b/mercurial/obsutil.py
@@ -397,14 +397,12 @@
 
     This is a first and basic implementation, with many shortcoming.
     """
-    # lefctx.repo() and rightctx.repo() are the same here
-    repo = leftctx.repo()
-    diffopts = diffutil.diffallopts(repo.ui, {'git': True})
+    diffopts = diffutil.diffallopts(leftctx.repo().ui, {'git': True})
     # Leftctx or right ctx might be filtered, so we need to use the contexts
     # with an unfiltered repository to safely compute the diff
-    leftunfi = repo.unfiltered()[leftctx.rev()]
+    leftunfi = leftctx._repo.unfiltered()[leftctx.rev()]
     leftdiff = leftunfi.diff(opts=diffopts)
-    rightunfi = repo.unfiltered()[rightctx.rev()]
+    rightunfi = rightctx._repo.unfiltered()[rightctx.rev()]
     rightdiff = rightunfi.diff(opts=diffopts)
 
     left, right = (0, 0)



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


More information about the Mercurial-devel mailing list