Mercurial > hgsubversion
diff hgsubversion/hg_delta_editor.py @ 367:ce64d57172a3
Generate separate data structure containing revision's tags/branches changes.
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Fri, 29 May 2009 17:33:52 +0200 |
parents | e8f5688a0cd9 |
children | e786253eb565 |
line wrap: on
line diff
--- a/hgsubversion/hg_delta_editor.py +++ b/hgsubversion/hg_delta_editor.py @@ -566,16 +566,21 @@ class HgChangeReceiver(delta.Editor): and branch not in added_branches): parent = {branch: (None, 0, revision.revnum)} added_branches.update(parent) - for t in tags_to_delete: + return { + 'tags': (added_tags, tags_to_delete), + 'branches': (added_branches, self.branches_to_delete), + } + + def save_tbdelta(self, tbdelta): + for t in tbdelta['tags'][1]: del self.tags[t] - for br in self.branches_to_delete: + for br in tbdelta['branches'][1]: del self.branches[br] - for t, info in added_tags.items(): + for t, info in tbdelta['tags'][0].items(): self.ui.status('Tagged %s@%s as %s\n' % (info[0] or 'trunk', info[1], t)) - self.tags.update(added_tags) - self.branches.update(added_branches) - self._save_metadata() + self.tags.update(tbdelta['tags'][0]) + self.branches.update(tbdelta['branches'][0]) def _updateexternals(self): if not self.externals: @@ -607,7 +612,7 @@ class HgChangeReceiver(delta.Editor): else: self.delete_file(path) - def commit_current_delta(self): + def commit_current_delta(self, tbdelta): if hasattr(self, '_exception_info'): #pragma: no cover traceback.print_exception(*self._exception_info) raise ReplayException() @@ -636,7 +641,7 @@ class HgChangeReceiver(delta.Editor): branch_batches[b].append((p, f)) # close any branches that need it closed_revs = set() - for branch in self.branches_to_delete: + for branch in tbdelta['branches'][1]: closed = revlog.nullid if 'closed-branches' in self.repo.branchtags(): closed = self.repo['closed-branches'].node()