Mercurial > hgrepos > DevTools > mercurial-extensions
changeset 235:027dceaf3de5
Refactor: Move the different implementation paths for updating with one or two parent into different methods
| author | Franz Glasner <hg@dom66.de> |
|---|---|
| date | Tue, 30 Oct 2018 09:32:46 +0100 |
| parents | 0158ebd7285b |
| children | 5e5aac8160d0 |
| files | extensions/timestamps.py |
| diffstat | 1 files changed, 38 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/extensions/timestamps.py Mon Oct 29 09:09:55 2018 +0100 +++ b/extensions/timestamps.py Tue Oct 30 09:32:46 2018 +0100 @@ -934,35 +934,47 @@ if ts is None: self.ui.warn(_("update.timestamps: timestamps database file could not be found or read\n")) else: - to_update = set() - for p in self.__from_parents: - status = self.status(p) - if _DEV: - self.ui.debug("FROM PARENT: " + p + " Status: " - + repr(status) + '\n') - to_update.update(set(status.added)) - to_update.update(set(status.modified)) - if _DEV: - self.ui.debug("UPDATE TO_UPDATE: " + repr(to_update) - + '\n') - ms = _mergemod.mergestate.read(self) - if _DEV: - self.ui.debug("UPDATE MergeState ACTIVE: " - + repr(ms.active()) - + '\n') - self.ui.debug("UPDATE MergeState FILES: " - + repr(ms.files()) + '\n') - self.ui.debug("UPDATE MergeState _state: " - + repr(ms._state) + '\n') - if ms.active(): - to_update.difference_update(set(ms.files())) - if _DEV: - self.ui.debug("UPDATE TO_UPDATE w/o resolved: " - + repr(to_update) + '\n') - _restore_timestamps(self, to_update, tsmatch, ts) + if not parent2: + self._ts_update_update(tsmatch, ts) + else: + self._ts_update_merge(tsmatch, ts) else: self.ui.debug("update.timestamps: timestamps not activated/configured\n") + def _ts_update_update(self, tsmatch, ts): + """:hg:`update`, :hg:`merge --abort`""" + to_update = set() + for p in self.__from_parents: + status = self.status(p) + if _DEV: + self.ui.debug("FROM PARENT: " + p + " Status: " + + repr(status) + '\n') + to_update.update(set(status.added)) + to_update.update(set(status.modified)) + if _DEV: + self.ui.debug("UPDATE TO_UPDATE: " + repr(to_update) + + '\n') + ms = _mergemod.mergestate.read(self) + if _DEV: + self.ui.debug("UPDATE MergeState ACTIVE: " + + repr(ms.active()) + + '\n') + self.ui.debug("UPDATE MergeState FILES: " + + repr(ms.files()) + '\n') + self.ui.debug("UPDATE MergeState _state: " + + repr(ms._state) + '\n') + if ms.active(): + to_update.difference_update(set(ms.files())) + if _DEV: + self.ui.debug("UPDATE TO_UPDATE w/o resolved: " + + repr(to_update) + '\n') + _restore_timestamps(self, to_update, tsmatch, ts) + + def _ts_update_merge(self,tsmatch, ts): + """:hg:`merge`""" + # XXX TBD + self._ts_update_update(tsmatch, ts) + repo.__class__ = TimestampedRepo ui.setconfig('hooks', 'update.timestamps', update_hook)
