[PATCH hglib] client: add missing options to import_()
Idan Kamara
idankk86 at gmail.com
Tue Aug 9 16:42:58 CDT 2011
# HG changeset patch
# User Idan Kamara <idankk86 at gmail.com>
# Date 1312926163 -10800
# Node ID c3bbfe5b6d4aada497a49fd6a697f984ed0e0b3d
# Parent 2d8e3d357ca5ba83edea254a6d3d03999082244c
client: add missing options to import_()
and don't read the file before calling hg, just pass it as one of the arguments
diff -r 2d8e3d357ca5 -r c3bbfe5b6d4a hglib/client.py
--- a/hglib/client.py Wed Aug 10 00:34:00 2011 +0300
+++ b/hglib/client.py Wed Aug 10 00:42:43 2011 +0300
@@ -213,24 +213,34 @@
return self._encoding
- def import_(self, patch):
- if isinstance(patch, str):
- fp = open(patch)
+ def import_(self, patches, strip=None, force=False, nocommit=False,
+ bypass=False, exact=False, importbranch=False, message=None,
+ date=None, user=None, similarity=None):
+ """
+ patches can be a list of file names with patches to apply
+ or a file-like object that contains a patch (needs read and readline)
+ """
+ if hasattr(patches, 'read') and hasattr(patches, 'readline'):
+ patch = patches
+
+ def readline(size, output):
+ return patch.readline(size)
+
+ stdin = True
+ patches = ()
+ prompt = readline
+ input = patch.read
else:
- assert hasattr(patch, 'read')
- assert hasattr(patch, 'readline')
+ stdin = False
+ prompt = None
+ input = None
- fp = patch
+ args = cmdbuilder('import', *patches, strip=strip, force=force,
+ nocommit=nocommit, bypass=bypass, exact=exact,
+ importbranch=importbranch, message=message,
+ date=date, user=user, similarity=similarity, _=stdin)
- try:
- def readline(size, output):
- return fp.readline(size)
-
- self.rawcommand(cmdbuilder('import', _=True),
- prompt=readline, input=fp.read)
- finally:
- if fp != patch:
- fp.close()
+ self.rawcommand(args, prompt=prompt, input=input)
def incoming(self, revrange=None, path=None):
args = cmdbuilder('incoming',
diff -r 2d8e3d357ca5 -r c3bbfe5b6d4a tests/test-import.py
--- a/tests/test-import.py Wed Aug 10 00:34:00 2011 +0300
+++ b/tests/test-import.py Wed Aug 10 00:42:43 2011 +0300
@@ -1,9 +1,7 @@
import common, cStringIO
import hglib
-class test_import(common.basetest):
- def test_basic(self):
- patch = """
+patch = """
# HG changeset patch
# User test
# Date 0 0
@@ -17,5 +15,13 @@
@@ -0,0 +1,1 @@
+1
"""
+
+class test_import(common.basetest):
+ def test_basic_cstringio(self):
self.client.import_(cStringIO.StringIO(patch))
self.assertEquals(self.client.cat(['a']), '1\n')
+
+ def test_basic_file(self):
+ open('patch', 'w').write(patch)
+ self.client.import_(['patch'])
+ self.assertEquals(self.client.cat(['a']), '1\n')
More information about the Mercurial-devel
mailing list