1import subprocess 2from hglib import client, util, error 3 4HGPATH = 'hg' 5 6def open(path=None, encoding=None, configs=None): 7 '''starts a cmdserver for the given path (or for a repository found 8 in the cwd). HGENCODING is set to the given encoding. configs is a 9 list of key, value, similar to those passed to hg --config. 10 ''' 11 return client.hgclient(path, encoding, configs) 12 13def init(dest=None, ssh=None, remotecmd=None, insecure=False, 14 encoding=None, configs=None): 15 args = util.cmdbuilder('init', dest, e=ssh, remotecmd=remotecmd, 16 insecure=insecure) 17 18 args.insert(0, HGPATH) 19 proc = util.popen(args) 20 out, err = proc.communicate() 21 if proc.returncode: 22 raise error.CommandError(args, proc.returncode, out, err) 23 24 return client.hgclient(dest, encoding, configs, connect=False) 25 26def clone(source=None, dest=None, noupdate=False, updaterev=None, rev=None, 27 branch=None, pull=False, uncompressed=False, ssh=None, remotecmd=None, 28 insecure=False, encoding=None, configs=None): 29 args = util.cmdbuilder('clone', source, dest, noupdate=noupdate, 30 updaterev=updaterev, rev=rev, branch=branch, 31 pull=pull, uncompressed=uncompressed, 32 e=ssh, remotecmd=remotecmd, insecure=insecure) 33 34 args.insert(0, HGPATH) 35 proc = util.popen(args) 36 out, err = proc.communicate() 37 if proc.returncode: 38 raise error.CommandError(args, proc.returncode, out, err) 39 40 return client.hgclient(dest, encoding, configs, connect=False) 41