Edgewall Software

Ticket #2545: svn_chgset_get_properties_r3116.diff

File svn_chgset_get_properties_r3116.diff, 1.9 KB (added by cboos, 6 years ago)

Initial implementation of the feature

  • trac/versioncontrol/cache.py

     
    4040        if not self.synced: 
    4141            self.sync() 
    4242            self.synced = 1 
    43         return CachedChangeset(self.repos.normalize_rev(rev), self.db, 
    44                                self.authz) 
     43        return CachedChangeset(self.repos, self.repos.normalize_rev(rev), 
     44                               self.db, self.authz) 
    4545 
    4646    def sync(self): 
    4747        self.log.debug("Checking whether sync with repository is needed") 
     
    134134 
    135135class CachedChangeset(Changeset): 
    136136 
    137     def __init__(self, rev, db, authz): 
     137    def __init__(self, repos, rev, db, authz): 
     138        self.repos = repos 
    138139        self.db = db 
    139140        self.authz = authz 
    140141        cursor = self.db.cursor() 
     
    161162            yield path, kind, change, base_path, base_rev 
    162163 
    163164    def get_properties(self): 
    164         return [] 
     165        for prop in self.repos.get_changeset(self.rev).get_properties(): 
     166            yield prop 
  • trac/versioncontrol/svn_fs.py

     
    616616        date = core.svn_time_from_cstring(date, self.pool()) / 1000000 
    617617        Changeset.__init__(self, rev, message, author, date) 
    618618 
     619    def get_properties(self): 
     620        props = fs.revision_proplist(self.fs_ptr, self.rev, self.pool()) 
     621        for k,v in props.iteritems(): 
     622            if k not in (core.SVN_PROP_REVISION_LOG, 
     623                         core.SVN_PROP_REVISION_AUTHOR, 
     624                         core.SVN_PROP_REVISION_DATE): 
     625                yield (k, to_unicode(v), False, '') 
     626 
    619627    def get_changes(self): 
    620628        pool = Pool(self.pool) 
    621629        tmp = Pool(pool)