- Revision
- 11289
- Author
- vajda
- Date
- 2006-07-31 15:52:49 -0700 (Mon, 31 Jul 2006)
Log Message
- moved version initialization of view to openView()
- added support for --undo check to undo latest versions that fail check()
- fixed bugs in IndexContainer.purgeDocument()/undoDocument(), use of hit
- upgraded build to chandlerdb 0.6-35
- added support for --undo check to undo latest versions that fail check()
- fixed bugs in IndexContainer.purgeDocument()/undoDocument(), use of hit
- upgraded build to chandlerdb 0.6-35
Modified Paths
Diff
Modified: trunk/chandler/Makefile (11288 => 11289)
--- trunk/chandler/Makefile 2006-07-31 22:00:15 UTC (rev 11288) +++ trunk/chandler/Makefile 2006-07-31 22:52:49 UTC (rev 11289) @@ -66,7 +66,7 @@ # these get installed into release or debug ARCHIVES=$(CHANDLERARCHIVES)/Launchers-$(SNAP)-0.8-$(BP)A.tar.gz \ - $(CHANDLERARCHIVES)/chandlerdb-$(SNAP)-0.6-$(BP)34.tar.gz \ + $(CHANDLERARCHIVES)/chandlerdb-$(SNAP)-0.6-$(BP)35.tar.gz \ $(CHANDLERARCHIVES)/db-$(SNAP)-4.4.20-$(BP)5.tar.gz \ $(CHANDLERARCHIVES)/python-$(SNAP)-2.4.3-$(BP)3.tar.gz \ $(CHANDLERARCHIVES)/epydoc-$(SNAP)-2.1-$(BP)9.tar.gz \
Modified: trunk/chandler/application/Utility.py (11288 => 11289)
--- trunk/chandler/application/Utility.py 2006-07-31 22:00:15 UTC (rev 11288) +++ trunk/chandler/application/Utility.py 2006-07-31 22:52:49 UTC (rev 11289) @@ -430,11 +430,25 @@ del kwds break - if options.undo and not repository.isNew(): - toVersion = long(options.undo) - if toVersion < repository.store.getVersion(): - repository.undo(toVersion) + if options.undo: + if options.undo == 'check': + view = repository.view + while view.itsVersion > 0: + schema.reset(view) + if view.check(): + break + repository.logger.info('Undoing version %d', view.itsVersion) + view.closeView() + repository.undo() + view.openView() + else: + version = repository.store.getVersion() + nVersions = long(options.undo) + toVersion = version - nVersions + if toVersion >= 0: + repository.undo(toVersion) + view = repository.view # tell the schema API about this view so that it doesn't setup its own
Modified: trunk/chandler/repository/persistence/DBRepositoryView.py (11288 => 11289)
--- trunk/chandler/repository/persistence/DBRepositoryView.py 2006-07-31 22:00:15 UTC (rev 11288) +++ trunk/chandler/repository/persistence/DBRepositoryView.py 2006-07-31 22:52:49 UTC (rev 11289) @@ -36,12 +36,12 @@ class DBRepositoryView(OnDemandRepositoryView): - def openView(self): + def openView(self, version=None): self._log = set() self._indexWriter = None - super(DBRepositoryView, self).openView() + super(DBRepositoryView, self).openView(version) def _logItem(self, item):
Modified: trunk/chandler/repository/persistence/FileContainer.py (11288 => 11289)
--- trunk/chandler/repository/persistence/FileContainer.py 2006-07-31 22:00:15 UTC (rev 11288) +++ trunk/chandler/repository/persistence/FileContainer.py 2006-07-31 22:52:49 UTC (rev 11289) @@ -556,8 +556,9 @@ count = 0 prevs = {} - for i, doc in indexSearcher.search(TermQuery(term)): - id = hits.id(i) + for hit in indexSearcher.search(TermQuery(term)): + id = hit.getId() + doc = hit.getDocument() uAttr = UUID(doc['attribute']) if uAttr in keeps: @@ -584,6 +585,6 @@ term = Term("item", uItem.str64()) - for i, doc in indexSearcher.search(TermQuery(term)): - if long(doc['version']) == version: - indexReader.deleteDocument(hits.id(i)) + for hit in indexSearcher.search(TermQuery(term)): + if long(hit.getDocument()['version']) == version: + indexReader.deleteDocument(hit.getId())
Modified: trunk/chandler/repository/persistence/RepositoryView.py (11288 => 11289)
--- trunk/chandler/repository/persistence/RepositoryView.py 2006-07-31 22:00:15 UTC (rev 11288) +++ trunk/chandler/repository/persistence/RepositoryView.py 2006-07-31 22:52:49 UTC (rev 11289) @@ -81,9 +81,9 @@ if repository is not None and not repository.isOpen(): raise RepositoryError, "Repository is not open" - super(RepositoryView, self).__init__(repository, name, version, + super(RepositoryView, self).__init__(repository, name, RepositoryView.itsUUID) - self.openView() + self.openView(version) def setCurrentView(self): """ @@ -119,7 +119,7 @@ return self['Schema']['Core']['Lob'].makeValue(data, *args, **kwds) - def openView(self): + def openView(self, version=None): """ Open this repository view. @@ -127,7 +127,16 @@ re-opening a closed view. """ - self._roots = self._createChildren(self, self.itsVersion == 0) + repository = self.repository + + if version is None: + if repository is not None: + version = repository.store.getVersion() + else: + version = 0L + + self._version = long(version) + self._roots = self._createChildren(self, version == 0L) self._registry = {} self._deletedRegistry = {} self._instanceRegistry = {} @@ -137,7 +146,6 @@ self.classLoader = ClassLoader(Item, MissingClass) - repository = self.repository if repository is not None: if repository.isRefCounted(): self._status |= RepositoryView.REFCOUNTED @@ -1430,7 +1438,7 @@ def __init__(self, verify=False): self._logger = logging.getLogger(__name__) - super(NullRepositoryView, self).__init__(None, "null view", 0) + super(NullRepositoryView, self).__init__(None, "null view", 0L) if verify: self._status |= RepositoryView.VERIFY
_______________________________________________ Commits mailing list [email protected] http://lists.osafoundation.org/mailman/listinfo/commits
