Changeset 120 in tracdarcs
- Timestamp:
- 06/17/08 18:59:59 (4 years ago)
- Hash name:
- 20080617165959-97f81-01b798f29e7c925e146c0876e73dc6879e4d9156
- Location:
- tracdarcs
- Files:
-
- 2 edited
-
components.py (modified) (3 diffs)
-
repository.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
tracdarcs/components.py
r111 r120 14 14 # Author: Lele Gaifax <lele@metapensiero.it> 15 15 16 from genshi.builder import tag 17 16 18 from trac.config import BoolOption, Option 17 19 from trac.core import Component, implements 18 20 from trac.db import Column, DatabaseManager, Index, Table 19 21 from trac.env import IEnvironmentSetupParticipant 20 from trac.versioncontrol import IRepositoryConnector 22 from trac.util.text import shorten_line 23 from trac.versioncontrol import IRepositoryConnector, NoSuchChangeset 24 from trac.wiki import IWikiSyntaxProvider 21 25 22 26 from tracdarcs.repository import DarcsRepository … … 24 28 class DarcsConnector(Component): 25 29 26 implements(IRepositoryConnector )30 implements(IRepositoryConnector, IWikiSyntaxProvider) 27 31 28 32 dont_escape_8bit = BoolOption('darcs', 'dont_escape_8bit', 'false', … … 45 49 darcs = "DARCS_DONT_ESCAPE_8BIT=1 " + darcs 46 50 return DarcsRepository(db, dir, self.env.log, darcs) 51 52 # IWikiSyntaxProvider methods 53 54 def get_wiki_syntax(self): 55 yield (r'[0-9]{14}-[0-9a-f]{5}-[0-9a-f]{40}.gz', 56 lambda formatter, label, match: self._format_link(formatter, 'cset', label, label)) 57 58 def get_link_resolvers(self): 59 yield ('cset', self._format_link) 60 61 def _format_link(self, formatter, ns, rev, label): 62 63 repos = self.env.get_repository() 64 try: 65 chgset = repos.get_changeset(rev) 66 return tag.a(chgset.rev, class_="changeset", 67 title=shorten_line(chgset.message), 68 href=formatter.href.changeset(chgset.rev)) 69 except NoSuchChangeset, e: 70 return tag.a(label, class_="missing changeset", 71 title="No changeset for %s" % rev, rel="nofollow") 47 72 48 73 class DarcsSetup(Component): -
tracdarcs/repository.py
r118 r120 151 151 152 152 def normalize_rev(self, rev): 153 youngest = self.get_youngest_rev() 154 if rev is None or rev == "": 155 return youngest 156 try: 157 rev = int(rev) 158 except ValueError, le: 159 raise TracError('Ill-formed revision: %s, error: %s' % (rev, le)) 160 if rev > youngest: 161 rev = youngest 153 if isinstance(rev, basestring) and rev.endswith('.gz'): 154 c = self.db.cursor() 155 c.execute('SELECT rev FROM darcs_changesets ' 156 'WHERE hash = %s', (rev,)) 157 row = c.fetchone() 158 if row is None: 159 raise NoSuchChangeset(rev) 160 rev = row[0] 161 else: 162 youngest = self.get_youngest_rev() 163 if rev is None or rev == "": 164 return youngest 165 try: 166 rev = int(rev) 167 except ValueError, le: 168 raise TracError('Ill-formed revision: %s, error: %s' % (rev, le)) 169 if rev > youngest: 170 rev = youngest 162 171 return rev 163 172
Note: See TracChangeset
for help on using the changeset viewer.