From b1ddf38a32c49f7e90168014c9ec1efce86cf1fb Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Sun, 13 Dec 2009 23:14:06 -0500 Subject: Moved Arch over to Storage format --- libbe/storage/vcs/base.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'libbe/storage/vcs/base.py') diff --git a/libbe/storage/vcs/base.py b/libbe/storage/vcs/base.py index 662fc30..69e412e 100644 --- a/libbe/storage/vcs/base.py +++ b/libbe/storage/vcs/base.py @@ -446,6 +446,7 @@ os.listdir(self.get_path("bugs")): kwargs['encoding'] = libbe.util.encoding.get_filesystem_encoding() libbe.storage.base.VersionedStorage.__init__(self, *args, **kwargs) self.versioned = False + self.interspersed_vcs_files = False self.verbose_invoke = False self._cached_path_id = CachedPathID() self._rooted = False @@ -514,6 +515,18 @@ os.listdir(self.get_path("bugs")): """ pass + def _vcs_is_versioned(self, path): + """ + Return true if a path is under version control, False + otherwise. You only need to set this if the VCS goes about + dumping VCS-specific files into the .be directory. + + If you do need to implement this method (e.g. Arch), set + self.interspersed_vcs_files = True + """ + assert self.interspersed_vcs_files == False + raise NotImplementedError + def _vcs_get_file_contents(self, path, revision=None): """ Get the file contents as they were in a given revision. @@ -704,7 +717,11 @@ os.listdir(self.get_path("bugs")): for i,c in enumerate(children): if c == None: continue cpath = os.path.join(path, c) - children[i] = self._cached_path_id.id(cpath) + if self.interspersed_vcs_files == True \ + and self._vcs_is_versioned(cpath) == False: + children[i] = None + else: + children[i] = self._cached_path_id.id(cpath) return [c for c in children if c != None] def _get(self, id, default=libbe.util.InvalidObject, revision=None): -- cgit