Mercurial > python-hglib
diff hglib/client.py @ 13:400cb1520834
client: add missing options to import_()
and don't read the file before calling hg, just pass it as one of the arguments
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Wed, 10 Aug 2011 00:42:43 +0300 |
parents | c2a9b716cd80 |
children | e0d21c9db20b |
line wrap: on
line diff
--- a/hglib/client.py Wed Aug 10 00:24:01 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) - else: - assert hasattr(patch, 'read') - assert hasattr(patch, 'readline') + 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 - fp = patch + def readline(size, output): + return patch.readline(size) - try: - def readline(size, output): - return fp.readline(size) + stdin = True + patches = () + prompt = readline + input = patch.read + else: + stdin = False + prompt = None + input = None - self.rawcommand(cmdbuilder('import', _=True), - prompt=readline, input=fp.read) - finally: - if fp != patch: - fp.close() + 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) + + self.rawcommand(args, prompt=prompt, input=input) def incoming(self, revrange=None, path=None): args = cmdbuilder('incoming',