view hglib/__init__.py @ 79:ca5f8f43e585

branches: more robust parsing strategy The right side of output is more strictly defined than the left, so parse from right to left. This fixes issues with spaces in branch names.
author Matt Mackall <mpm@selenic.com>
date Wed, 09 Nov 2011 16:09:46 -0600
parents 15485fa4b35e
children 07efbd3bd09a
line wrap: on
line source

import client, subprocess, util, error

HGPATH = 'hg'

def open(path=None, encoding=None, configs=None):
    ''' starts a cmdserver for the given path (or for a repository found in the
    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 = util.popen(args)
    out, err = proc.communicate()
    if proc.returncode:
        raise error.CommandError(args, proc.returncode, out, err)

    return open(dest, encoding, configs)