Hi, I'll be uploading a NMU for hg-git in a minute. debdiff below, also pushed to https://salsa.debian.org/python-team/applications/hg-git/merge_requests/1
Cheers, Julien diff -Nru hg-git-0.8.12/debian/changelog hg-git-0.8.12/debian/changelog --- hg-git-0.8.12/debian/changelog 2019-01-10 15:26:54.000000000 +0100 +++ hg-git-0.8.12/debian/changelog 2019-03-13 15:43:48.000000000 +0100 @@ -1,3 +1,10 @@ +hg-git (0.8.12-1.1) unstable; urgency=medium + + * Non-maintainer upload. + * Fix for compatibility with mercurial 4.9 (closes: #921732). + + -- Julien Cristau <jcris...@debian.org> Wed, 13 Mar 2019 15:43:48 +0100 + hg-git (0.8.12-1) unstable; urgency=medium * Team upload diff -Nru hg-git-0.8.12/debian/patches/fix-test-capitalisation.patch hg-git-0.8.12/debian/patches/fix-test-capitalisation.patch --- hg-git-0.8.12/debian/patches/fix-test-capitalisation.patch 2019-01-10 13:57:00.000000000 +0100 +++ hg-git-0.8.12/debian/patches/fix-test-capitalisation.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,44 +0,0 @@ -Description: Fix capitalisation mismatches in tests -Author: Daniel Watkins <oddbl...@ubuntu.com> -Forwarded: no -Last-Update: 2018-06-07 - ---- a/tests/test-git-clone.t -+++ b/tests/test-git-clone.t -@@ -51,8 +51,8 @@ - abort: potentially unsafe hostname: '-oProxyCommand=rm${IFS}nonexistent' - [255] - $ hg clone 'git+ssh://fakehost|rm${IFS}nonexistent/path' 2>&1 >/dev/null | grep -v ^devel-warn: -- ssh: * fakehost%7crm%24%7bifs%7dnonexistent* (glob) -+ ssh: * fakehost%7Crm%24%7BIFS%7Dnonexistent* (glob) - abort: git remote error: The remote server unexpectedly closed the connection. - $ hg clone 'git+ssh://fakehost%7Crm${IFS}nonexistent/path' 2>&1 >/dev/null | grep -v ^devel-warn: -- ssh: * fakehost%7crm%24%7bifs%7dnonexistent* (glob) -+ ssh: * fakehost%7Crm%24%7BIFS%7Dnonexistent* (glob) - abort: git remote error: The remote server unexpectedly closed the connection. ---- a/tests/test-pull.t -+++ b/tests/test-pull.t -@@ -366,8 +366,8 @@ - abort: potentially unsafe hostname: '-oProxyCommand=rm nonexistent' - [255] - $ hg pull 'git+ssh://fakehost|shellcommand/path' 2>&1 >/dev/null | grep -v ^devel-warn: -- ssh: * fakehost%7cshellcommand* (glob) -+ ssh: * fakehost%7Cshellcommand* (glob) - abort: git remote error: The remote server unexpectedly closed the connection. - $ hg pull 'git+ssh://fakehost%7Cshellcommand/path' 2>&1 >/dev/null | grep -v ^devel-warn: -- ssh: * fakehost%7cshellcommand* (glob) -+ ssh: * fakehost%7Cshellcommand* (glob) - abort: git remote error: The remote server unexpectedly closed the connection. ---- a/tests/test-push.t -+++ b/tests/test-push.t -@@ -211,8 +211,8 @@ - abort: potentially unsafe hostname: '-oProxyCommand=rm nonexistent' - [255] - $ hg push 'git+ssh://fakehost|rm%20nonexistent/path' 2>&1 >/dev/null | grep -v ^devel-warn: -- ssh: * fakehost%7crm%20nonexistent* (glob) -+ ssh: * fakehost%7Crm%20nonexistent* (glob) - abort: git remote error: The remote server unexpectedly closed the connection. - $ hg push 'git+ssh://fakehost%7Crm%20nonexistent/path' 2>&1 >/dev/null | grep -v ^devel-warn: -- ssh: * fakehost%7crm%20nonexistent* (glob) -+ ssh: * fakehost%7Crm%20nonexistent* (glob) - abort: git remote error: The remote server unexpectedly closed the connection. diff -Nru hg-git-0.8.12/debian/patches/hg49-compat.patch hg-git-0.8.12/debian/patches/hg49-compat.patch --- hg-git-0.8.12/debian/patches/hg49-compat.patch 1970-01-01 01:00:00.000000000 +0100 +++ hg-git-0.8.12/debian/patches/hg49-compat.patch 2019-03-13 15:34:02.000000000 +0100 @@ -0,0 +1,264 @@ +diff --git a/hggit/compat.py b/hggit/compat.py +--- a/hggit/compat.py ++++ b/hggit/compat.py +@@ -4,6 +4,7 @@ from mercurial import ( + phases, + templatekw, + url, ++ ui as hgui, + util as hgutil, + ) + +@@ -204,3 +205,15 @@ class templatekeyword(object): + templatekw.keywords.update({name: func}) + return func + return decorate ++ ++if hgutil.safehasattr(hgui.ui, 'makeprogress'): ++ def progress(ui, topic, pos, item="", unit="", total=None): ++ progress = ui.makeprogress(topic, unit, total) ++ if pos is not None: ++ progress.update(pos, item=item) ++ else: ++ progress.complete() ++else: ++ # <= hg-48 ++ def progress(ui, topic, pos, item="", unit="", total=None): ++ ui.progress(topic, pos, item="", unit="", total=None) +diff --git a/hggit/git_handler.py b/hggit/git_handler.py +--- a/hggit/git_handler.py ++++ b/hggit/git_handler.py +@@ -93,13 +93,13 @@ class GitProgress(object): + self.lasttopic = topic + + pos, total = map(int, m.group(1, 2)) +- self.ui.progress(topic, pos, total=total) ++ compat.progress(self.ui, topic, pos, total=total) + else: + self.flush(msg) + + def flush(self, msg=None): + if self.lasttopic: +- self.ui.progress(self.lasttopic, None) ++ compat.progress(self.ui, self.lasttopic, None) + self.lasttopic = None + if msg: + self.ui.note(msg + '\n') +@@ -487,7 +487,7 @@ class GitHandler(object): + for ctx in to_export: + item = hex(ctx.node()) + pos += 1 +- repo.ui.progress(topic, pos, item, unit, todo_total) ++ compat.progress(repo.ui, topic, pos, item, unit, todo_total) + if ctx.extra().get('hg-git', None) != 'octopus': + export.append(ctx) + +@@ -521,12 +521,12 @@ class GitHandler(object): + mapsavefreq = compat.config(self.ui, 'int', 'hggit', + 'mapsavefrequency') + for i, ctx in enumerate(export): +- self.ui.progress('exporting', i, total=total) ++ compat.progress(self.ui, 'exporting', i, total=total) + self.export_hg_commit(ctx.node(), exporter) + if mapsavefreq and i % mapsavefreq == 0: + self.ui.debug(_("saving mapfile\n")) + self.save_map(self.map_file) +- self.ui.progress('exporting', None, total=total) ++ compat.progress(self.ui, 'exporting', None, total=total) + + def set_commiter_from_author(self, commit): + commit.committer = commit.author +@@ -813,13 +813,13 @@ class GitHandler(object): + mapsavefreq = compat.config(self.ui, 'int', 'hggit', + 'mapsavefrequency') + for i, csha in enumerate(commits): +- self.ui.progress('importing', i, total=total, unit='commits') ++ compat.progress(self.ui, 'importing', i, total=total, unit='commits') + commit = commit_cache[csha] + self.import_git_commit(commit) + if mapsavefreq and i % mapsavefreq == 0: + self.ui.debug(_("saving mapfile\n")) + self.save_map(self.map_file) +- self.ui.progress('importing', None, total=total, unit='commits') ++ compat.progress(self.ui, 'importing', None, total=total, unit='commits') + + # TODO if the tags cache is used, remove any dangling tag references + return total +diff --git a/hggit/gitrepo.py b/hggit/gitrepo.py +--- a/hggit/gitrepo.py ++++ b/hggit/gitrepo.py +@@ -12,7 +12,7 @@ except ImportError: + from mercurial.peer import peerrepository + + +-class gitrepo(peerrepository): ++class basegitrepo(peerrepository): + def __init__(self, ui, path, create, intents=None, **kwargs): + if create: # pragma: no cover + raise error.Abort('Cannot create a git repository.') +@@ -96,9 +96,51 @@ class gitrepo(peerrepository): + def unbundle(self): + raise NotImplementedError + +- def commandexecutor(self): +- from mercurial.wireprotov1peer import peerexecutor +- return peerexecutor(self) ++try: ++ from mercurial.wireprotov1peer import ( ++ batchable, ++ future, ++ peerexecutor, ++ ) ++except ImportError: ++ # compat with <= hg-4.8 ++ gitrepo = basegitrepo ++else: ++ class gitrepo(basegitrepo): ++ ++ @batchable ++ def lookup(self, key): ++ f = future() ++ yield {}, f ++ yield super(gitrepo, self).lookup(key) ++ ++ @batchable ++ def heads(self): ++ f = future() ++ yield {}, f ++ yield super(gitrepo, self).heads() ++ ++ @batchable ++ def listkeys(self, namespace): ++ f = future() ++ yield {}, f ++ yield super(gitrepo, self).listkeys(namespace) ++ ++ @batchable ++ def pushkey(self, namespace, key, old, new): ++ f = future() ++ yield {}, f ++ yield super(gitrepo, self).pushkey(key, old, new) ++ ++ def commandexecutor(self): ++ return peerexecutor(self) ++ ++ def _submitbatch(self, req): ++ for op, argsdict in req: ++ yield None ++ ++ def _submitone(self, op, args): ++ return None + + instance = gitrepo + +diff --git a/hggit/overlay.py b/hggit/overlay.py +--- a/hggit/overlay.py ++++ b/hggit/overlay.py +@@ -467,6 +467,8 @@ class overlayrepo(object): + self.handler.repo._constructmanifest()) + + def __getitem__(self, n): ++ if isinstance(n, int): ++ n = self.changelog.node(n) + if n not in self.revmap: + return self.handler.repo[n] + return overlaychangectx(self, n) +@@ -532,3 +534,7 @@ class overlayrepo(object): + elif ref.startswith('refs/tags/'): + tagname = ref[10:] + self.tagmap.setdefault(bin(refs[ref]), []).append(tagname) ++ ++ def narrowmatch(self, *args, **kwargs): ++ return self.handler.repo.narrowmatch(*args, **kwargs) ++ +diff --git a/hggit/verify.py b/hggit/verify.py +--- a/hggit/verify.py ++++ b/hggit/verify.py +@@ -6,6 +6,7 @@ + # of the GNU General Public License, incorporated herein by reference. + + import stat ++import compat + + from mercurial import error + from mercurial.i18n import _ +@@ -13,7 +14,6 @@ from mercurial.i18n import _ + from dulwich import diff_tree + from dulwich.objects import Commit, S_IFGITLINK + +- + def verify(ui, repo, hgctx): + '''verify that a Mercurial rev matches the corresponding Git rev + +@@ -62,7 +62,7 @@ def verify(ui, repo, hgctx): + if (gitfile.mode == S_IFGITLINK or gitfile.path == '.hgsubstate' or + gitfile.path == '.hgsub'): + continue +- ui.progress('verify', i, total=len(hgfiles)) ++ compat.progress(ui, 'verify', i, total=len(hgfiles)) + i += 1 + gitfiles.add(gitfile.path) + +@@ -82,7 +82,7 @@ def verify(ui, repo, hgctx): + ui.write(_('difference in: %s\n') % gitfile.path) + failed = True + +- ui.progress('verify', None, total=len(hgfiles)) ++ compat.progress(ui, 'verify', None, total=len(hgfiles)) + + if hgfiles != gitfiles: + failed = True +diff --git a/tests/test-git-clone.t b/tests/test-git-clone.t +--- a/tests/test-git-clone.t ++++ b/tests/test-git-clone.t +@@ -51,8 +51,8 @@ test for ssh vulnerability + abort: potentially unsafe hostname: '-oProxyCommand=rm${IFS}nonexistent' + [255] + $ hg clone 'git+ssh://fakehost|rm${IFS}nonexistent/path' 2>&1 >/dev/null | grep -v ^devel-warn: +- ssh: * fakehost%7crm%24%7bifs%7dnonexistent* (glob) ++ ssh: * fakehost%7?rm%24%7????%7?nonexistent* (glob) + abort: git remote error: The remote server unexpectedly closed the connection. + $ hg clone 'git+ssh://fakehost%7Crm${IFS}nonexistent/path' 2>&1 >/dev/null | grep -v ^devel-warn: +- ssh: * fakehost%7crm%24%7bifs%7dnonexistent* (glob) ++ ssh: * fakehost%7?rm%24%7????%7?nonexistent* (glob) + abort: git remote error: The remote server unexpectedly closed the connection. +diff --git a/tests/test-help.t b/tests/test-help.t +--- a/tests/test-help.t ++++ b/tests/test-help.t +@@ -4,6 +4,7 @@ Load commonly used test logic + $ . "$TESTDIR/testutil" + + $ hg help | grep 'git' | sed 's/ */ /g' ++ git-cleanup clean up Git commit map after history editing (?) + hggit push and pull from a Git server + git Working with Git Repositories + +diff --git a/tests/test-pull.t b/tests/test-pull.t +--- a/tests/test-pull.t ++++ b/tests/test-pull.t +@@ -366,8 +366,8 @@ test for ssh vulnerability + abort: potentially unsafe hostname: '-oProxyCommand=rm nonexistent' + [255] + $ hg pull 'git+ssh://fakehost|shellcommand/path' 2>&1 >/dev/null | grep -v ^devel-warn: +- ssh: * fakehost%7cshellcommand* (glob) ++ ssh: * fakehost%7?shellcommand* (glob) + abort: git remote error: The remote server unexpectedly closed the connection. + $ hg pull 'git+ssh://fakehost%7Cshellcommand/path' 2>&1 >/dev/null | grep -v ^devel-warn: +- ssh: * fakehost%7cshellcommand* (glob) ++ ssh: * fakehost%7?shellcommand* (glob) + abort: git remote error: The remote server unexpectedly closed the connection. +diff --git a/tests/test-push.t b/tests/test-push.t +--- a/tests/test-push.t ++++ b/tests/test-push.t +@@ -211,8 +211,8 @@ test for ssh vulnerability + abort: potentially unsafe hostname: '-oProxyCommand=rm nonexistent' + [255] + $ hg push 'git+ssh://fakehost|rm%20nonexistent/path' 2>&1 >/dev/null | grep -v ^devel-warn: +- ssh: * fakehost%7crm%20nonexistent* (glob) ++ ssh: * fakehost%7?rm%20nonexistent* (glob) + abort: git remote error: The remote server unexpectedly closed the connection. +- $ hg push 'git+ssh://fakehost%7Crm%20nonexistent/path' 2>&1 >/dev/null | grep -v ^devel-warn: +- ssh: * fakehost%7crm%20nonexistent* (glob) ++ $ hg push 'git+ssh://fakehost%7?rm%20nonexistent/path' 2>&1 >/dev/null | grep -v ^devel-warn: ++ ssh: * fakehost%* (glob) + abort: git remote error: The remote server unexpectedly closed the connection. diff -Nru hg-git-0.8.12/debian/patches/series hg-git-0.8.12/debian/patches/series --- hg-git-0.8.12/debian/patches/series 2019-01-10 11:42:00.000000000 +0100 +++ hg-git-0.8.12/debian/patches/series 2019-03-13 15:38:02.000000000 +0100 @@ -1,4 +1,4 @@ -fix-test-capitalisation.patch ae6b1ba7482963bc9de51f299891e99005794e4e.patch 143b7511eadbea7507d847c805241a6db290ffe7.patch 8d00fde45adbc6c3c0ccab8e362b5f5c36c171e6.patch +hg49-compat.patch