summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-vcs/hg-git/files/hg-git-0.8.10-hg45-memfilectx.patch')
-rw-r--r--dev-vcs/hg-git/files/hg-git-0.8.10-hg45-memfilectx.patch73
1 files changed, 73 insertions, 0 deletions
diff --git a/dev-vcs/hg-git/files/hg-git-0.8.10-hg45-memfilectx.patch b/dev-vcs/hg-git/files/hg-git-0.8.10-hg45-memfilectx.patch
new file mode 100644
index 000000000000..5c94617f881b
--- /dev/null
+++ b/dev-vcs/hg-git/files/hg-git-0.8.10-hg45-memfilectx.patch
@@ -0,0 +1,73 @@
+# HG changeset patch
+# User Kevin Bullock <kbullock@ringworld.org>
+# Date 1517928348 21600
+# Node ID e326b349eba6b6ee57ac8df221727f79c313d04a
+# Parent 89303af1c4aa76b37e6d16f99f6279012eda7100
+compat: extract function for memfilectx signature variants
+
+diff --git a/hggit/compat.py b/hggit/compat.py
+--- a/hggit/compat.py
++++ b/hggit/compat.py
+@@ -1,4 +1,5 @@
+ from mercurial import (
++ context,
+ url,
+ util as hgutil,
+ )
+@@ -96,6 +97,26 @@
+ return refs, set(server_capabilities)
+
+
++def memfilectx(repo, changectx, path, data, islink=False,
++ isexec=False, copied=None):
++ # Different versions of mercurial have different parameters to
++ # memfilectx. Try them from newest to oldest.
++ args_to_try = (
++ (repo, changectx, path, data), # hg 4.5+
++ (repo, path, data), # hg 3.1 - 4.5
++ (path, data), # hg < 3.1
++ )
++ for args in args_to_try:
++ try:
++ return context.memfilectx(*args,
++ islink=islink,
++ isexec=isexec,
++ copied=copied)
++ except TypeError as ex:
++ last_ex = ex
++ raise last_ex
++
++
+ CONFIG_DEFAULTS = {
+ 'git': {
+ 'authors': None,
+diff --git a/hggit/git_handler.py b/hggit/git_handler.py
+--- a/hggit/git_handler.py
++++ b/hggit/git_handler.py
+@@ -985,22 +985,10 @@
+ if copied:
+ copied_path = copied[0]
+
+- # Different versions of mercurial have different parameters to
+- # memfilectx. Try them from newest to oldest.
+- args_to_try = (
+- (self.repo, memctx, f, data), # hg 4.5+
+- (self.repo, f, data), # hg 3.1 - 4.5
+- (f, data), # hg < 3.1
+- )
+- for args in args_to_try:
+- try:
+- return context.memfilectx(*args,
+- islink='l' in e,
+- isexec='x' in e,
+- copied=copied_path)
+- except TypeError as ex:
+- last_ex = ex
+- raise last_ex
++ return compat.memfilectx(self.repo, memctx, f, data,
++ islink='l' in e,
++ isexec='x' in e,
++ copied=copied_path)
+
+ p1, p2 = (nullid, nullid)
+ octopus = False