# HG changeset patch # User Idan Kamara # Date 1324573967 -7200 # Node ID a4fcece7dd8eeeb65bbdfcc679e7f1822d88ad44 # Parent 07efbd3bd09a199bc536e384ca15f492e8caa15d hglib: add top level clone method diff -r 07efbd3bd09a -r a4fcece7dd8e hglib/__init__.py --- 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) diff -r 07efbd3bd09a -r a4fcece7dd8e tests/test-clone.py --- /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())