Mercurial > python-hglib
changeset 93:a4fcece7dd8e
hglib: add top level clone method
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Thu, 22 Dec 2011 19:12:47 +0200 |
parents | 07efbd3bd09a |
children | 4da6bb8abfcc |
files | hglib/__init__.py tests/test-clone.py |
diffstat | 2 files changed, 28 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/hglib/__init__.py Thu Dec 22 19:12:47 2011 +0200 +++ b/hglib/__init__.py Thu Dec 22 19:12:47 2011 +0200 @@ -20,3 +20,19 @@ raise error.CommandError(args, proc.returncode, out, err) return client.hgclient(dest, encoding, configs, connect=False) + +def clone(source=None, dest=None, noupdate=False, updaterev=None, rev=None, + branch=None, pull=False, uncompressed=False, ssh=None, remotecmd=None, + insecure=False, encoding=None, configs=None): + args = util.cmdbuilder('clone', source, dest, noupdate=noupdate, + updaterev=updaterev, rev=rev, branch=branch, + pull=pull, uncompresses=uncompressed, + e=ssh, remotecmd=remotecmd, insecure=insecure) + + args.insert(0, HGPATH) + proc = util.popen(args) + out, err = proc.communicate() + if proc.returncode: + raise error.CommandError(args, proc.returncode, out, err) + + return client.hgclient(dest, encoding, configs, connect=False)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-clone.py Thu Dec 22 19:12:47 2011 +0200 @@ -0,0 +1,12 @@ +import os +import common +import hglib + +class test_clone(common.basetest): + def test_basic(self): + self.append('a', 'a') + self.client.commit('first', addremove=True) + cloned = hglib.clone('.', 'cloned') + self.assertRaises(ValueError, cloned.log) + cloned.open() + self.assertEquals(self.client.log(), cloned.log())