From ab090d8929f7019aa68876fd825766f472fd9138 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Mon, 6 Dec 2010 10:43:49 -0500 Subject: Make libbe.storage.vcs.darcs.Darcs._vcs_listdir() more robust. The old version returned [] (for Darcs 2.5) on darcs show files --no-files --patch 'Initial commit' .be (called in `be diff` for `test_usage.sh darcs`), because darcs returned the paths prefixed with './' (e.g. `./.be`, not `.be`). By calculating relative paths and using the relative paths to determine which files belong to the directory, we can handle both prefixed and plain paths. --- libbe/storage/vcs/darcs.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libbe/storage/vcs/darcs.py b/libbe/storage/vcs/darcs.py index 7ff4554..29b25eb 100644 --- a/libbe/storage/vcs/darcs.py +++ b/libbe/storage/vcs/darcs.py @@ -229,8 +229,9 @@ class Darcs(base.VCS): descendents = [self._u_rel_path(f, path) for f in files if f != '.'] else: - descendents = [self._u_rel_path(f, path) for f in files - if f.startswith(path)] + rel_files = [self._u_rel_path(f, path) for f in files] + descendents = [f for f in rel_files + if f != '.' and not f.startswith('..')] return [f for f in descendents if f.count(os.path.sep) == 0] # Darcs versions <= 2.3.1 lack the --patch option for 'show files' raise NotImplementedError -- cgit