diff options
author | W. Trevor King <wking@drexel.edu> | 2009-11-17 09:47:44 -0500 |
---|---|---|
committer | W. Trevor King <wking@drexel.edu> | 2009-11-17 09:47:44 -0500 |
commit | f108f5a0fb0984c0daccd8be72ea0ffa309b3fff (patch) | |
tree | 674a4de9a5f63c5e67ed07b15a76f4b1fcedf398 | |
parent | 2a1bca807d4b94610924343169c813a9f7868147 (diff) | |
download | bugseverywhere-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.py | 12 | ||||
-rw-r--r-- | libbe/bzr.py | 2 | ||||
-rw-r--r-- | libbe/darcs.py | 8 | ||||
-rw-r--r-- | libbe/git.py | 9 | ||||
-rw-r--r-- | libbe/hg.py | 4 | ||||
-rw-r--r-- | libbe/vcs.py | 5 |
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 |