aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorW. Trevor King <wking@drexel.edu>2009-11-17 09:47:44 -0500
committerW. Trevor King <wking@drexel.edu>2009-11-17 09:47:44 -0500
commitf108f5a0fb0984c0daccd8be72ea0ffa309b3fff (patch)
tree674a4de9a5f63c5e67ed07b15a76f4b1fcedf398
parent2a1bca807d4b94610924343169c813a9f7868147 (diff)
downloadbugseverywhere-f108f5a0fb0984c0daccd8be72ea0ffa309b3fff.tar.gz
Use unicode_output=False in some Darcs._u_invoke_client() calls.
This avoids the following error: ====================================================================== ERROR: Should get file contents as committed to specified revision. ---------------------------------------------------------------------- Traceback (most recent call last): File ".../libbe/vcs.py", line 860, in test_revision_file_contents_as_committed full_path, revision) File ".../libbe/vcs.py", line 339, in get_file_contents contents = self._vcs_get_file_contents(relpath,revision,binary=binary) File ".../libbe/darcs.py", line 122, in _vcs_get_file_contents status,output,error = self._u_invoke(args, stdin=major_patch) File ".../libbe/vcs.py", line 488, in _u_invoke raise CommandError(args, status, stdout, stderr) CommandError: Command failed (2): patch: **** Only garbage was found in the patch input. while executing ['patch', '--reverse', 'a/text'] After adding the unicode_output=False lines, I adjusted the VCS._u_invoke_client() definition to pass all it's kwargs automatically through to VCS._u_invoke(). To make this simpler and more consistent, I renamed the "directory" option to "cwd", and adjusted *._u_invoke() calls appropriately in several VCS backends.
-rw-r--r--libbe/arch.py12
-rw-r--r--libbe/bzr.py2
-rw-r--r--libbe/darcs.py8
-rw-r--r--libbe/git.py9
-rw-r--r--libbe/hg.py4
-rw-r--r--libbe/vcs.py5
6 files changed, 19 insertions, 21 deletions
diff --git a/libbe/arch.py b/libbe/arch.py
index daa8ac6..98c4edd 100644
--- a/libbe/arch.py
+++ b/libbe/arch.py
@@ -83,7 +83,7 @@ class Arch(vcs.VCS):
self._archive_dir = "/tmp/%s" % trailer
self._tmp_archive = True
self._u_invoke_client("make-archive", self._archive_name,
- self._archive_dir, directory=path)
+ self._archive_dir, cwd=path)
def _invoke_client(self, *args, **kwargs):
"""
Invoke the client on our archive.
@@ -121,7 +121,7 @@ class Arch(vcs.VCS):
version = "0.1"
self._project_name = "%s--%s--%s" % (category, branch, version)
self._invoke_client("archive-setup", self._project_name,
- directory=path)
+ cwd=path)
self._tmp_project = True
def _remove_project(self):
assert self._tmp_project == True
@@ -164,10 +164,10 @@ class Arch(vcs.VCS):
# http://regexps.srparish.net/tutorial-tla/new-source.html
# http://regexps.srparish.net/tutorial-tla/importing-first.html
self._invoke_client("init-tree", self._project_name,
- directory=path)
+ cwd=path)
self._adjust_naming_conventions(path)
self._invoke_client("import", "--summary", "Began versioning",
- directory=path)
+ cwd=path)
def _vcs_cleanup(self):
if self._tmp_project == True:
self._remove_project()
@@ -198,7 +198,7 @@ class Arch(vcs.VCS):
assert self._archive_name != None
def _get_archive_project_name(self, root):
# get project names
- status,output,error = self._u_invoke_client("tree-version", directory=root)
+ status,output,error = self._u_invoke_client("tree-version", cwd=root)
# e.g output
# jdoe@example.com--bugs-everywhere-auto-2008.22.24.52/be--mainline--0.1
archive_name,project_name = output.rstrip('\n').split('/')
@@ -266,7 +266,7 @@ class Arch(vcs.VCS):
vcs.VCS._vcs_duplicate_repo(self, directory, revision)
else:
status,output,error = \
- self._u_invoke_client("get", revision,directory)
+ self._u_invoke_client("get", revision, directory)
def _vcs_commit(self, commitfile, allow_empty=False):
if allow_empty == False:
# arch applies empty commits without complaining, so check first
diff --git a/libbe/bzr.py b/libbe/bzr.py
index ed9e032..8e91d0c 100644
--- a/libbe/bzr.py
+++ b/libbe/bzr.py
@@ -49,7 +49,7 @@ class Bzr(vcs.VCS):
status,output,error = self._u_invoke_client("root", path)
return output.rstrip('\n')
def _vcs_init(self, path):
- self._u_invoke_client("init", directory=path)
+ self._u_invoke_client("init", cwd=path)
def _vcs_get_user_id(self):
status,output,error = self._u_invoke_client("whoami")
return output.rstrip('\n')
diff --git a/libbe/darcs.py b/libbe/darcs.py
index 9115886..6bf0119 100644
--- a/libbe/darcs.py
+++ b/libbe/darcs.py
@@ -60,7 +60,7 @@ class Darcs(vcs.VCS):
return None
return os.path.dirname(darcs_dir)
def _vcs_init(self, path):
- self._u_invoke_client("init", directory=path)
+ self._u_invoke_client("init", cwd=path)
def _vcs_get_user_id(self):
# following http://darcs.net/manual/node4.html#SECTION00410030000000000000
# as of June 29th, 2009
@@ -107,10 +107,12 @@ class Darcs(vcs.VCS):
# Darcs versions < 2.0.0pre2 lack the "show contents" command
status,output,error = self._u_invoke_client( \
- "diff", "--unified", "--from-patch", revision, path)
+ "diff", "--unified", "--from-patch", revision, path,
+ unicode_output=False)
major_patch = output
status,output,error = self._u_invoke_client( \
- "diff", "--unified", "--patch", revision, path)
+ "diff", "--unified", "--patch", revision, path,
+ unicode_output=False)
target_patch = output
# "--output -" to be supported in GNU patch > 2.5.9
diff --git a/libbe/git.py b/libbe/git.py
index 628f9b9..781a278 100644
--- a/libbe/git.py
+++ b/libbe/git.py
@@ -50,12 +50,12 @@ class Git(vcs.VCS):
if os.path.isdir(path) != True:
path = os.path.dirname(path)
status,output,error = self._u_invoke_client("rev-parse", "--git-dir",
- directory=path)
+ cwd=path)
gitdir = os.path.join(path, output.rstrip('\n'))
dirname = os.path.abspath(os.path.dirname(gitdir))
return dirname
def _vcs_init(self, path):
- self._u_invoke_client("init", directory=path)
+ self._u_invoke_client("init", cwd=path)
def _vcs_get_user_id(self):
status,output,error = \
self._u_invoke_client("config", "user.name", expect=(0,1))
@@ -102,9 +102,8 @@ class Git(vcs.VCS):
if revision==None:
vcs.VCS._vcs_duplicate_repo(self, directory, revision)
else:
- #self._u_invoke_client("archive", revision, directory) # makes tarball
- self._u_invoke_client("clone", "--no-checkout",".",directory)
- self._u_invoke_client("checkout", revision, directory=directory)
+ self._u_invoke_client("clone", "--no-checkout", ".", directory)
+ self._u_invoke_client("checkout", revision, cwd=directory)
def _vcs_commit(self, commitfile, allow_empty=False):
args = ['commit', '--all', '--file', commitfile]
if allow_empty == True:
diff --git a/libbe/hg.py b/libbe/hg.py
index 7cd4c2f..40739b6 100644
--- a/libbe/hg.py
+++ b/libbe/hg.py
@@ -45,10 +45,10 @@ class Hg(vcs.VCS):
return True
return False
def _vcs_root(self, path):
- status,output,error = self._u_invoke_client("root", directory=path)
+ status,output,error = self._u_invoke_client("root", cwd=path)
return output.rstrip('\n')
def _vcs_init(self, path):
- self._u_invoke_client("init", directory=path)
+ self._u_invoke_client("init", cwd=path)
def _vcs_get_user_id(self):
status,output,error = self._u_invoke_client("showconfig","ui.username")
return output.rstrip('\n')
diff --git a/libbe/vcs.py b/libbe/vcs.py
index 59dcaf8..ba23858 100644
--- a/libbe/vcs.py
+++ b/libbe/vcs.py
@@ -488,12 +488,9 @@ class VCS(object):
raise CommandError(args, status, stdout, stderr)
return status, stdout, stderr
def _u_invoke_client(self, *args, **kwargs):
- directory = kwargs.get('directory',None)
- expect = kwargs.get('expect', (0,))
- stdin = kwargs.get('stdin', None)
cl_args = [self.client]
cl_args.extend(args)
- return self._u_invoke(cl_args, stdin=stdin,expect=expect,cwd=directory)
+ return self._u_invoke(cl_args, **kwargs)
def _u_search_parent_directories(self, path, filename):
"""
Find the file (or directory) named filename in path or in any