equal
deleted
inserted
replaced
91 class SourceRenamedOp(hook.LateOperation): |
91 class SourceRenamedOp(hook.LateOperation): |
92 oldname = newname = None # make pylint happy |
92 oldname = newname = None # make pylint happy |
93 |
93 |
94 def precommit_event(self): |
94 def precommit_event(self): |
95 source = self.session.repo.sources_by_uri[self.oldname] |
95 source = self.session.repo.sources_by_uri[self.oldname] |
96 if source.copy_based_source: |
96 sql = 'UPDATE entities SET asource=%(newname)s WHERE asource=%(oldname)s' |
97 sql = 'UPDATE entities SET asource=%(newname)s WHERE asource=%(oldname)s' |
|
98 else: |
|
99 sql = 'UPDATE entities SET source=%(newname)s, asource=%(newname)s WHERE source=%(oldname)s' |
|
100 self.session.system_sql(sql, {'oldname': self.oldname, |
97 self.session.system_sql(sql, {'oldname': self.oldname, |
101 'newname': self.newname}) |
98 'newname': self.newname}) |
102 |
99 |
103 def postcommit_event(self): |
100 def postcommit_event(self): |
104 repo = self.session.repo |
101 repo = self.session.repo |
107 source.uri = self.newname |
104 source.uri = self.newname |
108 source.public_config['uri'] = self.newname |
105 source.public_config['uri'] = self.newname |
109 repo.sources_by_uri[self.newname] = source |
106 repo.sources_by_uri[self.newname] = source |
110 repo._type_source_cache.clear() |
107 repo._type_source_cache.clear() |
111 clear_cache(repo, 'source_defs') |
108 clear_cache(repo, 'source_defs') |
112 if not source.copy_based_source: |
|
113 repo._extid_cache.clear() |
|
114 repo._clear_planning_caches() |
|
115 for cnxset in repo.cnxsets: |
|
116 cnxset.source_cnxs[self.oldname] = cnxset.source_cnxs.pop(self.oldname) |
|
117 |
109 |
118 |
110 |
119 class SourceUpdatedHook(SourceHook): |
111 class SourceUpdatedHook(SourceHook): |
120 __regid__ = 'cw.sources.configupdate' |
112 __regid__ = 'cw.sources.configupdate' |
121 __select__ = SourceHook.__select__ & is_instance('CWSource') |
113 __select__ = SourceHook.__select__ & is_instance('CWSource') |