# HG changeset patch # User Jun Wu # Date 1513722595 28800 # Node ID 8410a978c6502edd079c377f1c270207f1e37457 # Parent 7f83be82d03f4d18406a87bdba0670b3c81db5c1 compathacks: be compatible with upstream 8a0cac20a1ad memfilectx change See hg change 8a0cac20a1ad. Since the interface has changed more than one time, switch to explicit keywords arguments to avoid surprises. Since hgsubversion targets hg >= 3.2.4, drop support for hg 3.0 and 3.1 here. diff --git a/hgsubversion/compathacks.py b/hgsubversion/compathacks.py --- a/hgsubversion/compathacks.py +++ b/hgsubversion/compathacks.py @@ -20,16 +20,19 @@ def pickle_load(f): f.seek(0) return pickle.load(f) -def makememfilectx(repo, path, data, islink, isexec, copied): +def makememfilectx(repo, memctx, path, data, islink, isexec, copied): """Return a memfilectx - Works around memfilectx() adding a repo argument between 3.0 and 3.1. + Works around API change by 8a0cac20a1ad (first in 4.5). """ from mercurial import context try: - return context.memfilectx(repo, path, data, islink, isexec, copied) + return context.memfilectx(repo=repo, path=path, data=data, + islink=islink, isexec=isexec, copied=copied, + changectx=memctx) except TypeError: - return context.memfilectx(path, data, islink, isexec, copied) + return context.memfilectx(repo=repo, path=path, data=data, + islink=islink, isexec=isexec, copied=copied) def filectxfn_deleted(memctx, path): """ diff --git a/hgsubversion/replay.py b/hgsubversion/replay.py --- a/hgsubversion/replay.py +++ b/hgsubversion/replay.py @@ -174,6 +174,7 @@ def _convert_rev(ui, meta, svn, r, tbdel else: data = parentctx.filectx(path).data() return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data=data, islink=islink, diff --git a/hgsubversion/stupid.py b/hgsubversion/stupid.py --- a/hgsubversion/stupid.py +++ b/hgsubversion/stupid.py @@ -347,6 +347,7 @@ def diff_branchrev(ui, svn, meta, branch if copied not in parentctx.manifest(): copied = None return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data=data, islink=islink, @@ -559,6 +560,7 @@ def fetch_branchrev(svn, meta, branch, b if copied not in parentctx.manifest(): copied = None return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data=data, islink=islink, @@ -736,6 +738,7 @@ def convert_rev(ui, meta, svn, r, tbdelt if externals[path] is None: raise IOError(errno.ENOENT, 'no externals') return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data=externals[path], islink=False, diff --git a/hgsubversion/svnmeta.py b/hgsubversion/svnmeta.py --- a/hgsubversion/svnmeta.py +++ b/hgsubversion/svnmeta.py @@ -800,6 +800,7 @@ class SVNMeta(object): def hgtagsfn(repo, memctx, path): assert path == '.hgtags' return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data=tagdata, islink=False, @@ -871,6 +872,7 @@ class SVNMeta(object): # add new changeset containing updated .hgtags def fctxfun(repo, memctx, path): return compathacks.makememfilectx(repo, + memctx=memctx, path='.hgtags', data=src, islink=False, diff --git a/tests/test_push_command.py b/tests/test_push_command.py --- a/tests/test_push_command.py +++ b/tests/test_push_command.py @@ -35,6 +35,7 @@ class PushTests(test_util.TestBase): def file_callback(repo, memctx, path): if path == 'adding_file': return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='foo', islink=False, @@ -61,6 +62,7 @@ class PushTests(test_util.TestBase): def file_callback(repo, memctx, path): if path == 'adding_file': return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='foo', islink=False, @@ -109,6 +111,7 @@ class PushTests(test_util.TestBase): repo = self.repo def file_callback(repo, memctx, path): return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='foo', islink=False, @@ -194,6 +197,7 @@ class PushTests(test_util.TestBase): def file_callback(repo, memctx, path): if path == 'adding_file': return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='foo', islink=False, @@ -242,6 +246,7 @@ class PushTests(test_util.TestBase): def file_callback(repo, memctx, path): if path == 'adding_file': return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='foo', islink=False, @@ -271,6 +276,7 @@ class PushTests(test_util.TestBase): def test_push_two_revs_different_local_branch(self): def filectxfn(repo, memctx, path): return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data=path, islink=False, @@ -313,6 +319,7 @@ class PushTests(test_util.TestBase): def file_callback(repo, memctx, path): if path == 'adding_file2': return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='foo2', islink=False, @@ -349,6 +356,7 @@ class PushTests(test_util.TestBase): def file_callback(repo, memctx, path): if path == 'adding_file': return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='foo', islink=False, @@ -431,6 +439,7 @@ class PushTests(test_util.TestBase): def file_callback(repo, memctx, path): if path == 'gamma': return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='foo', islink=False, @@ -463,6 +472,7 @@ class PushTests(test_util.TestBase): def file_callback(repo, memctx, path): if path == 'gamma': return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='foo', islink=True, @@ -493,6 +503,7 @@ class PushTests(test_util.TestBase): def file_callback2(repo, memctx, path): if path == 'gamma': return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='a' * 129, islink=True, @@ -520,6 +531,7 @@ class PushTests(test_util.TestBase): def file_callback3(repo, memctx, path): if path == 'gamma': return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='a' * 64 + 'b' * 65, islink=True, @@ -555,6 +567,7 @@ class PushTests(test_util.TestBase): repo = self.repo def file_callback(repo, memctx, path): return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='foo', islink=link, @@ -581,6 +594,7 @@ class PushTests(test_util.TestBase): repo = self.repo def file_callback2(repo, memctx, path): return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='bar', islink=link, @@ -606,6 +620,7 @@ class PushTests(test_util.TestBase): repo = self.repo def file_callback3(repo, memctx, path): return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='bar', islink=False, @@ -755,6 +770,7 @@ class PushTests(test_util.TestBase): if path == 'newdir/new_file': testData = 'fooNewFile' return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data=testData, islink=False, diff --git a/tests/test_single_dir_push.py b/tests/test_single_dir_push.py --- a/tests/test_single_dir_push.py +++ b/tests/test_single_dir_push.py @@ -24,6 +24,7 @@ class TestSingleDirPush(test_util.TestBa def file_callback(repo, memctx, path): if path == 'adding_file': return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='foo', islink=False, @@ -31,6 +32,7 @@ class TestSingleDirPush(test_util.TestBa copied=False) elif path == 'adding_binary': return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='\0binary', islink=False, @@ -65,6 +67,7 @@ class TestSingleDirPush(test_util.TestBa subdir='trunk') def filectxfn(repo, memctx, path): return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='contents of %s' % path, islink=False, @@ -99,6 +102,7 @@ class TestSingleDirPush(test_util.TestBa self.add_svn_rev(repo_path, {'trunk/alpha': 'Changed'}) def file_callback(repo, memctx, path): return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='data of %s' % path, islink=False, @@ -131,6 +135,7 @@ class TestSingleDirPush(test_util.TestBa def cb(repo, memctx, path): if path == data: return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data=data, islink=False, @@ -180,6 +185,7 @@ class TestSingleDirPush(test_util.TestBa def file_callback(repo, memctx, path): if path == 'adding_file': return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='foo', islink=False, diff --git a/tests/test_util.py b/tests/test_util.py --- a/tests/test_util.py +++ b/tests/test_util.py @@ -712,6 +712,7 @@ class TestBase(unittest.TestCase): if source != dest: copied = source return compathacks.makememfilectx(repo, + memctx=memctx, path=dest, data=newdata, islink=False, diff --git a/tests/test_utility_commands.py b/tests/test_utility_commands.py --- a/tests/test_utility_commands.py +++ b/tests/test_utility_commands.py @@ -162,6 +162,7 @@ class UtilityTests(test_util.TestBase): parents = (self.repo['the_branch'].node(), revlog.nullid,) def filectxfn(repo, memctx, path): return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='added', islink=False, @@ -207,6 +208,7 @@ class UtilityTests(test_util.TestBase): parents = (self.repo['the_branch'].node(), revlog.nullid,) def filectxfn(repo, memctx, path): return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='added', islink=False, @@ -239,6 +241,7 @@ class UtilityTests(test_util.TestBase): parents = (self.repo[0].node(), revlog.nullid,) def filectxfn(repo, memctx, path): return compathacks.makememfilectx(repo, + memctx=memctx, path=path, data='added', islink=False,