From: W. Trevor King Date: Tue, 28 Aug 2012 18:48:19 +0000 (-0400) Subject: Allow symlinks in bugdir directories. X-Git-Tag: 1.1.0~117 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=299ca4e57646921babf4dbbf95f28885549519b6;p=be.git Allow symlinks in bugdir directories. This allows you to do things like: $ mkdir -p /tmp/joint-repo/.be $ cd /tml/joint-repo/.be $ ln -s ~/src/be/.be/version $ ln -s ~/src/be/.be/bea86499-824e-4e77-b085-2d581fa9ccab/ $ ln -s ~/src/BEurtle/.be/7017b289-f207-4e39-9746-f58323404eba/ $ be list without crashing with a: Traceback (most recent call last): File ".../libbe/storage/base.py", line 316, in children return self._children(*args, **kwargs) File ".../libbe/storage/vcs/base.py", line 820, in _children path = self.path(id, revision, relpath=False) File ".../libbe/storage/vcs/base.py", line 721, in path path = self._cached_path_id.path(id) File ".../libbe/storage/vcs/base.py", line 280, in path raise InvalidID(uuid) libbe.storage.base.InvalidID: 7017b289-f207-4e39-9746-f58323404eba in revision None Currently it only lists the first bug directory it comes across, but after this patch, it doesn't crash ;). --- diff --git a/libbe/storage/vcs/base.py b/libbe/storage/vcs/base.py index 5f13c01..2a5f600 100644 --- a/libbe/storage/vcs/base.py +++ b/libbe/storage/vcs/base.py @@ -219,7 +219,8 @@ class CachedPathID (object): else: self._cache = cache spaced_root = os.path.join(self._root, self._spacer_dirs[0]) - for dirpath, dirnames, filenames in os.walk(spaced_root): + for dirpath, dirnames, filenames in os.walk(spaced_root, + followlinks=True): if dirpath == spaced_root: continue try: