[PATCH 3 of 4 hglib] client: use the cmdbuilder
Idan Kamara
idankk86 at gmail.com
Fri Aug 5 10:42:40 CDT 2011
# HG changeset patch
# User Idan Kamara <idankk86 at gmail.com>
# Date 1312558485 -10800
# Node ID 8f76a5c54b1591ffc949405fe3c01c93d80daf4e
# Parent 9bfd61e1ab1c76b1407b1264cb509e4827e5da58
client: use the cmdbuilder
diff -r 9bfd61e1ab1c -r 8f76a5c54b15 hglib/client.py
--- a/hglib/client.py Fri Aug 05 18:34:44 2011 +0300
+++ b/hglib/client.py Fri Aug 05 18:34:45 2011 +0300
@@ -1,6 +1,8 @@
import subprocess, os, struct, cStringIO, collections
import hglib, error, util, templates
+from util import cmdbuilder
+
class hgclient(object):
inputfmt = '>I'
outputfmt = '>cI'
@@ -158,10 +160,7 @@
return d
def log(self, revrange=None):
- args = ['log'] + templates.changeset
- if revrange:
- args.append('-r')
- args += revrange
+ args = cmdbuilder('log', template=templates.changeset, rev=revrange)
out = self.outputruncommand(args)[1]
out = out.split('\0')[:-1]
@@ -169,13 +168,9 @@
return self._parserevs(out)
def incoming(self, revrange=None, path=None):
- args = ['incoming'] + templates.changeset
- if revrange:
- args.append('-r')
- args += revrange
-
- if path:
- args += [path]
+ args = cmdbuilder('incoming',
+ path,
+ template=templates.changeset, rev=revrange)
ret, out, err = self.outputruncommand(args, raiseonerror=False)
if not ret:
@@ -187,13 +182,9 @@
raise error.CommandError(args, ret, out, err)
def outgoing(self, revrange=None, path=None):
- args = ['outgoing'] + templates.changeset
- if revrange:
- args.append('-r')
- args += revrange
-
- if path:
- args += [path]
+ args = cmdbuilder('outgoing',
+ path,
+ template=templates.changeset, rev=revrange)
ret, out, err = self.outputruncommand(args, raiseonerror=False)
if not ret:
@@ -206,10 +197,7 @@
def commit(self, message, addremove=False):
# --debug will print the committed cset
- args = ['commit', '--debug', '-m', message]
-
- if addremove:
- args += ['-A']
+ args = cmdbuilder('commit', debug=True, m=message, A=addremove)
out = self.outputruncommand(args)[1]
rev = out.split(':')[1]
@@ -226,7 +214,7 @@
try:
inchannels = {'I' : fp.read, 'L' : fp.readline}
- self.outputruncommand(['import', '-'], inchannels)
+ self.outputruncommand(cmdbuilder('import', _=True), inchannels)
finally:
if fp != patch:
fp.close()
@@ -236,24 +224,12 @@
def clone(self, source='.', dest=None, branch=None, updaterev=None,
revrange=None):
- args = ['clone']
-
- if branch:
- args += ['-b', branch]
- if updaterev:
- args += ['-u', updaterev]
- if revrange:
- args.append('-r')
- args += revrange
- args.append(source)
-
- if dest:
- args.append(dest)
-
+ args = cmdbuilder('clone', source, dest, b=branch, u=updaterev, r=revrange)
self.outputruncommand(args)
def tip(self):
- out = self.outputruncommand(['tip'] + templates.changeset)[1]
+ args = cmdbuilder('tip', template=templates.changeset)
+ out = self.outputruncommand(args)[1]
out = out.split('\0')
return self._parserevs(out)[0]
@@ -279,20 +255,14 @@
return dict([s.split(' = ') for s in out.rstrip().split('\n')])
else:
- args = ['paths', name]
+ args = cmdbuilder('paths', name)
ret, out, err = self.outputruncommand(args, raiseonerror=False)
if ret:
raise error.CommandError(args, ret, out, err)
return out.rstrip()
def cat(self, files, rev=None, output=None):
- args = ['cat']
- if rev:
- args += ['-r', rev]
- if output:
- args += ['-o', output]
-
- args += files
+ args = cmdbuilder('cat', *files, r=rev, o=output)
ret, out, err = self.outputruncommand(args)
if not output:
diff -r 9bfd61e1ab1c -r 8f76a5c54b15 hglib/templates.py
--- a/hglib/templates.py Fri Aug 05 18:34:44 2011 +0300
+++ b/hglib/templates.py Fri Aug 05 18:34:45 2011 +0300
@@ -1,2 +1,1 @@
-changeset = ['--template',
- '{rev}\\0{node}\\0{tags}\\0{branch}\\0{author}\\0{desc}\\0']
+changeset = '{rev}\\0{node}\\0{tags}\\0{branch}\\0{author}\\0{desc}\\0'
More information about the Mercurial-devel
mailing list