Mercurial > python-hglib
changeset 60:ce516ed9bc0d
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.
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Fri, 19 Aug 2011 20:15:03 +0300 |
parents | f4cc7ff53cf8 |
children | d0b9215180a4 |
files | hglib/__init__.py tests/test-init.py |
diffstat | 2 files changed, 28 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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)
--- /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'))