Index: tracdarcs/repository.py
===================================================================
--- tracdarcs/repository.py	(revision 216)
+++ tracdarcs/repository.py	(revision 219)
@@ -155,12 +155,13 @@
         else:
             youngest = self.get_youngest_rev()
-            if rev is None or rev == "":
+            if rev is None or (isinstance(rev, basestring) and
+                               rev.lower() in ('', 'head', 'latest', 'youngest')):
                 return youngest
             try:
                 rev = int(rev)
-            except ValueError, le:
-                raise TracError('Ill-formed revision: %s, error: %s' % (rev, le))
+            except (ValueError, TypeError):
+                raise NoSuchChangeset(rev)
             if rev > youngest:
-                rev = youngest
+                raise NoSuchChangeset(rev)
         return rev
 
