[PATCH 9 of 9 hglib] hglib: add init command
Idan Kamara
idankk86 at gmail.com
Fri Aug 19 12:15:30 CDT 2011
# HG changeset patch
# User Idan Kamara <idankk86 at gmail.com>
# Date 1313774103 -10800
# Node ID ce516ed9bc0da118ee023a9f7269652012ddb7e1
# Parent f4cc7ff53cf886366b0bcfa0383263d38559207a
hglib: add init command
There's not much value to adding this to hgclient since that will require a
repo in the first place. Instead we're providing this as a top level function
so users don't have to create a repo by themselves.
diff -r f4cc7ff53cf8 -r ce516ed9bc0d hglib/__init__.py
--- a/hglib/__init__.py Fri Aug 19 20:14:15 2011 +0300
+++ b/hglib/__init__.py Fri Aug 19 20:15:03 2011 +0300
@@ -1,4 +1,4 @@
-import client
+import client, subprocess, util, error
HGPATH = 'hg'
@@ -7,3 +7,17 @@
cwd). HGENCODING is set to the given encoding. configs is a list of key, value,
similar to those passed to hg --config. '''
return client.hgclient(path, encoding, configs)
+
+def init(dest=None, ssh=None, remotecmd=None, insecure=False,
+ encoding=None, configs=None):
+ args = util.cmdbuilder('init', dest, e=ssh, remotecmd=remotecmd,
+ insecure=insecure)
+
+ args.insert(0, HGPATH)
+ proc = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+
+ out, err = proc.communicate()
+ if proc.returncode:
+ raise error.CommandError(args, proc.returncode, out, err)
+
+ return open(dest, encoding, configs)
diff -r f4cc7ff53cf8 -r ce516ed9bc0d tests/test-init.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-init.py Fri Aug 19 20:15:03 2011 +0300
@@ -0,0 +1,13 @@
+import hglib, common, shutil
+
+class test_init(common.basetest):
+ def test_exists(self):
+ self.assertRaises(hglib.error.CommandError, hglib.init)
+
+ def test_basic(self):
+ self.client.close()
+ self.client = None
+ shutil.rmtree('.hg')
+
+ self.client = hglib.init()
+ self.assertTrue(self.client.root().endswith('test_init'))
More information about the Mercurial-devel
mailing list