changeset 33902:f39ba8237ed6

simplemerge: use `ctx.decoddeddata()` instead of `repo.wreaddata` This eliminates the need for the `repo` object. Differential Revision: https://phab.mercurial-scm.org/D435
author Phil Cohen <phillco@fb.com>
date Thu, 24 Aug 2017 21:26:40 -0700
parents f488223a87ab
children ed6f64173121
files mercurial/simplemerge.py
diffstat 1 files changed, 8 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/simplemerge.py	Thu Aug 24 21:26:40 2017 -0700
+++ b/mercurial/simplemerge.py	Thu Aug 24 21:26:40 2017 -0700
@@ -438,15 +438,14 @@
     def readctx(ctx):
         if not ctx:
             return None
-        if not repo:
-            raise error.ProgrammingError('simplemerge: repo must be passed if '
-                                         'using contexts')
-        # `wwritedata` is used to get the post-filter data from `ctx` (i.e.,
-        # what would have been in the working copy). Since merges were run in
-        # the working copy, and thus used post-filter data, we do the same to
-        # maintain behavior.
-        return repo.wwritedata(ctx.path(),
-                               _verifytext(ctx.data(), ctx.path(), ui, opts))
+        # Merges were always run in the working copy before, which means
+        # they used decoded data, if the user defined any repository
+        # filters.
+        #
+        # Maintain that behavior today for BC, though perhaps in the future
+        # it'd be worth considering whether merging encoded data (what the
+        # repository usually sees) might be more useful.
+        return _verifytext(ctx.decodeddata(), ctx.path(), ui, opts)
 
     class ctxwriter(object):
         def __init__(self, ctx):