Mercurial > libervia-backend
diff sat/plugins/plugin_merge_req_mercurial.py @ 3040:fee60f17ebac
jp: jp asyncio port:
/!\ this commit is huge. Jp is temporarily not working with `dbus` bridge /!\
This patch implements the port of jp to asyncio, so it is now correctly using the bridge
asynchronously, and it can be used with bridges like `pb`. This also simplify the code,
notably for things which were previously implemented with many callbacks (like pagination
with RSM).
During the process, some behaviours have been modified/fixed, in jp and backends, check
diff for details.
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 25 Sep 2019 08:56:41 +0200 |
parents | ab2696e34d29 |
children | 9d0df638c8b4 |
line wrap: on
line diff
--- a/sat/plugins/plugin_merge_req_mercurial.py Wed Sep 25 08:53:38 2019 +0200 +++ b/sat/plugins/plugin_merge_req_mercurial.py Wed Sep 25 08:56:41 2019 +0200 @@ -53,6 +53,7 @@ @param path(unicode): path to the repository @param command(unicode): hg command to run + @return D(bytes): stdout of the command """ assert "path" not in kwargs kwargs["path"] = path @@ -86,8 +87,10 @@ return d def export(self, repository): - return MercurialProtocol.run(repository, 'export', '-g', '-r', 'outgoing()', - '--encoding=utf-8') + d = MercurialProtocol.run(repository, 'export', '-g', '-r', 'outgoing()', + '--encoding=utf-8') + d.addCallback(lambda data: data.decode('utf-8')) + return d def import_(self, repository, data, data_type, item_id, service, node, extra): parsed_data = self.parse(data) @@ -97,7 +100,7 @@ except Exception: parsed_name = '' name = 'mr_{item_id}_{parsed_name}'.format(item_id=CLEAN_RE.sub('', item_id), - parsed_name=parsed_name) + parsed_name=parsed_name) return MercurialProtocol.run(repository, 'qimport', '-g', '--name', name, '--encoding=utf-8', '-', stdin=data)