Changeset 120 in tracdarcs for tracdarcs/repository.py


Ignore:
Timestamp:
06/17/08 18:59:59 (4 years ago)
Author:
lele@…
Hash name:
20080617165959-97f81-01b798f29e7c925e146c0876e73dc6879e4d9156
Message:

Added the IWikiSyntaxProvider to the DarcsConnector
This allows the use of the native darcs hashname in place of the
artificial incremental number to reference any particular
changeset, either using the usual wiki syntax (that is,
[20080617091638-97f81-63d.....420.gz]) or as an argument to the
/changeset/ URL.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tracdarcs/repository.py

    r118 r120  
    151151 
    152152    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 
    162171        return rev 
    163172 
Note: See TracChangeset for help on using the changeset viewer.