You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by tv...@apache.org on 2021/02/04 08:09:15 UTC

[buildstream] 07/43: _casbaseddirectory: _list_relative_paths now passes all tests

This is an automated email from the ASF dual-hosted git repository.

tvb pushed a commit to branch jmac/cas_to_cas_oct_v2
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit dde560d0e44edd884b8f8b562e8b1bc056d8a224
Author: Jim MacArthur <ji...@codethink.co.uk>
AuthorDate: Thu Oct 4 17:52:15 2018 +0100

    _casbaseddirectory: _list_relative_paths now passes all tests
---
 buildstream/storage/_casbaseddirectory.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/buildstream/storage/_casbaseddirectory.py b/buildstream/storage/_casbaseddirectory.py
index ef7bb68..22a6664 100644
--- a/buildstream/storage/_casbaseddirectory.py
+++ b/buildstream/storage/_casbaseddirectory.py
@@ -611,16 +611,18 @@ class CasBasedDirectory(Directory):
         symlink_list = list(filter(lambda i: isinstance(i[1].pb_object, remote_execution_pb2.SymlinkNode), self.index.items()))
         file_list = list(filter(lambda i: isinstance(i[1].pb_object, remote_execution_pb2.FileNode), self.index.items()))
         directory_list = list(filter(lambda i: isinstance(i[1].buildstream_object, CasBasedDirectory), self.index.items()))
+        symlinks_to_directories_list = []
         print("Running list_relative_paths on relpath {}. files={}, symlinks={}".format(relpath, [f[0] for f in file_list], [s[0] for s in symlink_list]))
 
         for (k, v) in sorted(symlink_list):
             target = self._resolve(k, absolute_symlinks_resolve=True)
             if isinstance(target, CasBasedDirectory):
-                print("Adding the resolved symlink {} which resolves to {} to our directory list".format(k, target))
-                directory_list.append((k,IndexEntry(k, buildstream_object=target)))
+                symlinks_to_directories_list.append(k)
             else:
                 # Broken symlinks are also considered files!
                 file_list.append((k,v))
+        for d in sorted(symlinks_to_directories_list):
+            yield os.path.join(relpath, d)
         if file_list == [] and relpath != "":
             print("Yielding empty directory name {}".format(relpath))
             yield relpath