Edgewall Software

Ticket #7723: 7723-3-get_youngest_rev-r7928.patch

File 7723-3-get_youngest_rev-r7928.patch, 847 bytes (added by cboos, 3 years ago)
  • trac/versioncontrol/cache.py

    MultiRepos: the `get_youngest_rev` shouldn't trigger a resync.
    
    OTOH, that `self.youngest` value should be "refreshed" once new revisions come in, and not only for the process that actually gets notified.
    
    diff --git a/trac/versioncontrol/cache.py b/trac/versioncontrol/cache.py
    a b  
    258258 
    259259    def get_youngest_rev(self): 
    260260        if not hasattr(self, 'youngest'): 
    261             self.sync() 
     261            db = self.getdb() 
     262            cursor = db.cursor() 
     263            cursor.execute("SELECT MAX(" + db.cast('rev', 'int') + ") " 
     264                           "FROM revision WHERE repos=%s", (self.reponame,)) 
     265            for rev, in cursor: 
     266                self.youngest = rev 
    262267        return self.youngest 
    263268 
    264269    def previous_rev(self, rev, path=''):