diff options
Diffstat (limited to 'libbe')
-rw-r--r-- | libbe/comment.py | 4 | ||||
-rw-r--r-- | libbe/storage/vcs/base.py | 6 |
2 files changed, 9 insertions, 1 deletions
diff --git a/libbe/comment.py b/libbe/comment.py index 21118f0..f850042 100644 --- a/libbe/comment.py +++ b/libbe/comment.py @@ -590,6 +590,8 @@ class Comment (Tree, settings_object.SavedSettingsObject): # methods for saving/loading/acessing settings and properties. def load_settings(self, settings_mapfile=None): + if self.uuid == INVALID_UUID: + return if settings_mapfile == None: settings_mapfile = \ self.storage.get(self.id.storage("values"), default="\n") @@ -601,6 +603,8 @@ class Comment (Tree, settings_object.SavedSettingsObject): self._setup_saved_settings(settings) def save_settings(self): + if self.uuid == INVALID_UUID: + return mf = mapfile.generate(self._get_saved_settings()) self.storage.set(self.id.storage("values"), mf) diff --git a/libbe/storage/vcs/base.py b/libbe/storage/vcs/base.py index 7d4383f..7068e46 100644 --- a/libbe/storage/vcs/base.py +++ b/libbe/storage/vcs/base.py @@ -239,7 +239,11 @@ class CachedPathID (object): else: extra = fields[1:] if uuid not in self._cache: - raise InvalidID(uuid) + self.disconnect() + self.init() + self.connect() + if uuid not in self._cache: + raise InvalidID(uuid) if relpath == True: return os.path.join(self._cache[uuid], *extra) return os.path.join(self._root, self._cache[uuid], *extra) |