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())