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.
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