diff --git a/trac/versioncontrol/cache.py b/trac/versioncontrol/cache.py
|
a
|
b
|
|
| 67 | 67 | return self.repos.get_base() |
| 68 | 68 | |
| 69 | 69 | def get_quickjump_entries(self, rev): |
| 70 | | for category, name, path, rev in self.repos.get_quickjump_entries(rev): |
| 71 | | yield category, name, path, rev |
| | 70 | return self.repos.get_quickjump_entries(self.normalize_rev(rev)) |
| 72 | 71 | |
| 73 | 72 | def get_changeset(self, rev): |
| 74 | | return CachedChangeset(self.repos, self.repos.normalize_rev(rev), |
| | 73 | return CachedChangeset(self.repos, self.normalize_rev(rev), |
| 75 | 74 | self.env, self.authz) |
| 76 | 75 | |
| 77 | 76 | def get_changesets(self, start, stop): |
| … |
… |
|
| 274 | 273 | self.repos.authz = authz |
| 275 | 274 | |
| 276 | 275 | def get_node(self, path, rev=None): |
| 277 | | return self.repos.get_node(path, rev) |
| | 276 | return self.repos.get_node(path, self.normalize_rev(rev)) |
| 278 | 277 | |
| 279 | 278 | def _get_node_revs(self, path, rev=None): |
| 280 | 279 | """Return the revisions affecting `path` between its creation and |
| … |
… |
|
| 303 | 302 | return revs[bisect.bisect_left(revs, created):] |
| 304 | 303 | |
| 305 | 304 | def has_node(self, path, rev=None): |
| 306 | | return self.repos.has_node(path, rev) |
| | 305 | return self.repos.has_node(path, self.normalize_rev(rev)) |
| 307 | 306 | |
| 308 | 307 | def get_oldest_rev(self): |
| 309 | 308 | return self.repos.oldest_rev |
| … |
… |
|
| 315 | 314 | if self.has_linear_changesets: |
| 316 | 315 | return self._next_prev_rev('<', rev, path) |
| 317 | 316 | else: |
| 318 | | return self.repos.previous_rev(rev, path) |
| | 317 | return self.repos.previous_rev(self.normalize_rev(rev), path) |
| 319 | 318 | |
| 320 | 319 | def next_rev(self, rev, path=''): |
| 321 | 320 | if self.has_linear_changesets: |
| 322 | 321 | return self._next_prev_rev('>', rev, path) |
| 323 | 322 | else: |
| 324 | | return self.repos.next_rev(rev, path) |
| | 323 | return self.repos.next_rev(self.normalize_rev(rev), path) |
| 325 | 324 | |
| 326 | 325 | def _next_prev_rev(self, direction, rev, path=''): |
| 327 | 326 | db = self.env.get_db_cnx() |
| … |
… |
|
| 358 | 357 | return rev |
| 359 | 358 | |
| 360 | 359 | def rev_older_than(self, rev1, rev2): |
| 361 | | return self.repos.rev_older_than(rev1, rev2) |
| | 360 | return self.repos.rev_older_than(self.normalize_rev(rev1), |
| | 361 | self.normalize_rev(rev2)) |
| 362 | 362 | |
| 363 | 363 | def get_path_history(self, path, rev=None, limit=None): |
| 364 | | return self.repos.get_path_history(path, rev, limit) |
| | 364 | return self.repos.get_path_history(path, self.normalize_rev(rev), |
| | 365 | limit) |
| 365 | 366 | |
| 366 | 367 | def normalize_path(self, path): |
| 367 | 368 | return self.repos.normalize_path(path) |
| 368 | 369 | |
| 369 | 370 | def normalize_rev(self, rev): |
| 370 | | return self.repos.normalize_rev(rev) |
| | 371 | if rev is None or isinstance(rev, basestring) and \ |
| | 372 | rev.lower() in ('', 'head', 'latest', 'youngest'): |
| | 373 | return self.youngest_rev |
| | 374 | else: |
| | 375 | try: |
| | 376 | rev = int(rev) |
| | 377 | if rev <= self.youngest_rev: |
| | 378 | return rev |
| | 379 | except (ValueError, TypeError): |
| | 380 | pass |
| | 381 | raise NoSuchChangeset(rev) |
| 371 | 382 | |
| 372 | 383 | def get_changes(self, old_path, old_rev, new_path, new_rev, |
| 373 | | ignore_ancestry=1): |
| 374 | | return self.repos.get_changes(old_path, old_rev, new_path, new_rev, |
| 375 | | ignore_ancestry) |
| | 384 | ignore_ancestry=1): |
| | 385 | return self.repos.get_changes(old_path, self.normalize_rev(old_rev), |
| | 386 | new_path, self.normalize_rev(new_rev), |
| | 387 | ignore_ancestry) |
| 376 | 388 | |
| 377 | 389 | |
| 378 | 390 | class CachedChangeset(Changeset): |