Changeset 1713
- Timestamp:
- 12/19/06 18:49:25 (2 years ago)
- Files:
-
- publishrevertplugin/publishrevert/setchangeset.py (modified) (3 diffs)
- publishrevertplugin/publishrevert/setchangeset.pyc (modified) (previous)
- publishrevertplugin/publishrevert/svnpublish.py (modified) (7 diffs)
- publishrevertplugin/publishrevert/svnpublish.pyc (modified) (previous)
- publishrevertplugin/publishrevert/svnrevert.py (modified) (6 diffs)
- publishrevertplugin/publishrevert/svnrevert.pyc (modified) (previous)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
publishrevertplugin/publishrevert/setchangeset.py
r1660 r1713 24 24 from trac.core import * 25 25 from trac.perm import IPermissionRequestor 26 from trac.Search import ISearchSource,query_to_sql, shorten_result26 from trac.Search import query_to_sql, shorten_result 27 27 from trac.Timeline import ITimelineEventProvider 28 28 from trac.versioncontrol import Changeset, Node … … 39 39 40 40 implements(INavigationContributor, IPermissionRequestor, IRequestHandler, 41 ITimelineEventProvider, IWikiSyntaxProvider, I SearchSource, ITemplateProvider)41 ITimelineEventProvider, IWikiSyntaxProvider, ITemplateProvider) 42 42 43 43 # need to add IRequestFilter when we upgrade … … 333 333 % (formatter.href.changeset(rev), label) 334 334 335 # ISearchProvider methods336 337 def get_search_filters(self, req):338 if req.perm.has_permission('CHANGESET_VIEW'):339 yield ('changeset', 'Changesets')340 341 def get_search_results(self, req, query, filters):342 if not 'changeset' in filters:343 return344 authzperm = SubversionAuthorizer(self.env, req.authname)345 db = self.env.get_db_cnx()346 sql, args = query_to_sql(db, query, 'message||author')347 cursor = db.cursor()348 cursor.execute("SELECT rev,time,author,message "349 "FROM revision WHERE " + sql, args)350 for rev, date, author, log in cursor:351 if not authzperm.has_permission_for_changeset(rev):352 continue353 yield (self.env.href.changeset(rev),354 '[%s]: %s' % (rev, util.shorten_line(log)),355 date, author, shorten_result(log, query.split()))356 357 335 358 336 # ITemplateProvider methods publishrevertplugin/publishrevert/svnpublish.py
r1674 r1713 28 28 # from trac.config import BoolOption, Option 29 29 from trac.perm import IPermissionRequestor 30 from trac.Search import ISearchSource,query_to_sql, shorten_result30 from trac.Search import query_to_sql, shorten_result 31 31 from trac.Timeline import ITimelineEventProvider 32 32 from trac.versioncontrol import Changeset, Node … … 43 43 44 44 implements(INavigationContributor, IPermissionRequestor, IRequestHandler, 45 ITimelineEventProvider, IWikiSyntaxProvider, I SearchSource, ITemplateProvider)45 ITimelineEventProvider, IWikiSyntaxProvider, ITemplateProvider) 46 46 47 47 # the folloing line will be used when we upgrade to the newest version of Trac … … 221 221 # TODO: 222 222 if(self.db_rev_num(server,info['path.new']) == "True"): 223 self.update_rev_num(server,info['path.new'],revert_rev )223 self.update_rev_num(server,info['path.new'],revert_rev,ticket.id) 224 224 else: 225 self.insert_rev_num(server,info['path.new'],revert_rev )225 self.insert_rev_num(server,info['path.new'],revert_rev,ticket.id) 226 226 227 227 # now do the update … … 262 262 % (formatter.href.changeset(rev), label) 263 263 264 # ISearchProvider methods265 266 def get_search_filters(self, req):267 if req.perm.has_permission('CHANGESET_VIEW'):268 yield ('changeset', 'Changesets')269 270 def get_search_results(self, req, query, filters):271 if not 'changeset' in filters:272 return273 authzperm = SubversionAuthorizer(self.env, req.authname)274 db = self.env.get_db_cnx()275 sql, args = query_to_sql(db, query, 'message||author')276 cursor = db.cursor()277 cursor.execute("SELECT rev,time,author,message "278 "FROM revision WHERE " + sql, args)279 for rev, date, author, log in cursor:280 if not authzperm.has_permission_for_changeset(rev):281 continue282 yield (self.env.href.changeset(rev),283 '[%s]: %s' % (rev, util.shorten_line(log)),284 date, author, shorten_result(log, query.split()))285 286 287 264 # ITemplateProvider methods 288 265 def get_templates_dirs(self): … … 341 318 342 319 343 def update_rev_num(self, server, filename, rev, db=None):320 def update_rev_num(self, server, filename, rev, ticket_id, db=None): 344 321 if not db: 345 322 db = self.env.get_db_cnx() … … 350 327 cursor = db.cursor() 351 328 352 cursor.execute('UPDATE file_revision SET rev = %s WHERE server=%s AND file=%s',(rev, server, filename))329 cursor.execute('UPDATE file_revision SET rev = %s , ticket_id = %s WHERE server=%s AND file=%s',(rev, server, filename, ticket_id)) 353 330 if(commit): 354 331 db.commit() 355 332 356 333 357 def insert_rev_num(self, server, filename, rev, db=None):334 def insert_rev_num(self, server, filename, rev, ticket_id, db=None): 358 335 if not db: 359 336 db = self.env.get_db_cnx() … … 363 340 364 341 cursor = db.cursor() 365 query = 'INSERT INTO file_revision (rev,file,server ) VALUES (%s,%s,%s)'366 cursor.execute(query, (rev,filename,server ))342 query = 'INSERT INTO file_revision (rev,file,server,ticket_id) VALUES (%s,%s,%s,%s)' 343 cursor.execute(query, (rev,filename,server,ticket_id)) 367 344 if(commit): 368 345 db.commit() publishrevertplugin/publishrevert/svnrevert.py
r1674 r1713 28 28 # from trac.config import BoolOption, Option 29 29 from trac.perm import IPermissionRequestor 30 from trac.Search import ISearchSource,query_to_sql, shorten_result30 from trac.Search import query_to_sql, shorten_result 31 31 from trac.Timeline import ITimelineEventProvider 32 32 from trac.versioncontrol import Changeset, Node … … 43 43 44 44 implements(INavigationContributor, IPermissionRequestor, IRequestHandler, 45 ITimelineEventProvider, IWikiSyntaxProvider, I SearchSource, ITemplateProvider)45 ITimelineEventProvider, IWikiSyntaxProvider, ITemplateProvider) 46 46 47 47 # the folloing line will be used when we upgrade to the newest version of Trac … … 113 113 114 114 format = req.args.get('format') 115 self._render_html(req, ticket, repos, chgset, diff_options)116 req.hdf['setchangesets'] = setchangesets117 ticket['ticketaction'] = 'Doing'118 ticket.save_changes(req.authname, 'reverted clone', 0, db)119 req.hdf['message'] = 'Successfully Reverted All Files'120 req.hdf['ticket'] = ticket.values115 if(self._render_html(req, ticket, repos, chgset, diff_options)): 116 req.hdf['setchangesets'] = setchangesets 117 ticket['ticketaction'] = 'Doing' 118 ticket.save_changes(req.authname, 'reverted clone', 0, db) 119 req.hdf['message'] = 'Successfully Reverted All Files' 120 req.hdf['ticket'] = ticket.values 121 121 else: 122 122 req.hdf['error'] = 'Error: not in correct state to publish' … … 215 215 req.hdf['svn_commands'] = '' 216 216 for info in filepaths: 217 revert_rev = self.db_rev_num(1,path) 217 row = self.db_rev_num(1,path) 218 revert_rev = row[0] 219 ticket_id = row[1] 218 220 server = 1 # clone = 1, prod = 2 219 req.hdf['error'] += self.svn_update(req,server,info['path.new'],revert_rev) 220 req.hdf['setchangeset.changes.%d' % idx] = info 221 idx += 1 221 if(int(ticket_id) == int(ticket.id)): 222 req.hdf['error'] += self.svn_update(req,server,info['path.new'],revert_rev) 223 req.hdf['setchangeset.changes.%d' % idx] = info 224 idx += 1 225 else: 226 error = "ERROR: File %s could not be reverted because ticket %s has modified it. You will need to manually resolve this conflict." % (path,ticket_id) 227 req.hdf['error'] += error 228 ticket.save_changes(req.authname, error, 0) 229 return False 222 230 self.svn_close() 223 231 req.hdf['svn_commands'] = req.hdf['svn_commands'].split(',') … … 252 260 % (formatter.href.changeset(rev), label) 253 261 254 # ISearchProvider methods255 256 def get_search_filters(self, req):257 if req.perm.has_permission('CHANGESET_VIEW'):258 yield ('changeset', 'Changesets')259 260 def get_search_results(self, req, query, filters):261 if not 'changeset' in filters:262 return263 authzperm = SubversionAuthorizer(self.env, req.authname)264 db = self.env.get_db_cnx()265 sql, args = query_to_sql(db, query, 'message||author')266 cursor = db.cursor()267 cursor.execute("SELECT rev,time,author,message "268 "FROM revision WHERE " + sql, args)269 for rev, date, author, log in cursor:270 if not authzperm.has_permission_for_changeset(rev):271 continue272 yield (self.env.href.changeset(rev),273 '[%s]: %s' % (rev, util.shorten_line(log)),274 date, author, shorten_result(log, query.split()))275 276 277 262 # ITemplateProvider methods 278 263 def get_templates_dirs(self): … … 322 307 # Fetch the standard ticket fields 323 308 cursor = db.cursor() 324 query = 'SELECT rev FROM file_revision WHERE server=%s AND file=%s'309 query = 'SELECT rev,ticket_id FROM file_revision WHERE server=%s AND file=%s' 325 310 cursor.execute(query, (server,filename)) 326 311 db.commit() 327 312 row = cursor.fetchone() 328 return row [0]313 return row 329 314 330 315
