# # # patch "tracvc/mtn/automate.py" # from [14c70552b4f82bff57fd19d7fc32f746a7a823a4] # to [6787b45e149070d179346ead8fea47a0e6186b0a] # # patch "tracvc/mtn/backend.py" # from [8ad96c19cbb06bc36490d26daeba8a6de8bd3b01] # to [7c6bcf060c9299f2e09b03825658423e33c6fffd] # ============================================================ --- tracvc/mtn/automate.py 14c70552b4f82bff57fd19d7fc32f746a7a823a4 +++ tracvc/mtn/automate.py 6787b45e149070d179346ead8fea47a0e6186b0a @@ -25,7 +25,6 @@ import os """ import os -import re import time import calendar try: @@ -36,9 +35,7 @@ from cache import memoize import util from cache import memoize -REVID_RULE = re.compile(r'^[0-9a-f]{40}$') - class Automate: """General interface to the 'automate stdio' command.""" @@ -175,8 +172,6 @@ class MTN: def select(self, selector): """Returns a list of revisions selected by the selector.""" - if REVID_RULE.match(selector): - return [selector] status, result = self.automate.command("select", selector.encode('utf-8')) if status == 0: ============================================================ --- tracvc/mtn/backend.py 8ad96c19cbb06bc36490d26daeba8a6de8bd3b01 +++ tracvc/mtn/backend.py 7c6bcf060c9299f2e09b03825658423e33c6fffd @@ -39,6 +39,7 @@ DATE_RULE = re.compile(r'\d{4}-\d{2}-\d{ import re DATE_RULE = re.compile(r'\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}') +REVID_RULE = re.compile(r'^[0-9a-f]{40}$') class MonotoneConnector(Component): @@ -279,10 +280,15 @@ class MonotoneRepository(Repository): revision. It should simply be passed through. """ if rev != None: - revs = self.mtn.select(rev) - if len(revs) != 1: - raise NoSuchChangeset(rev) - rev = revs[0].encode('ascii') + if REVID_RULE.match(rev): + # already a single revision id, not passed to select + pass + else: + revs = self.mtn.select(rev) + if len(revs) != 1: + raise NoSuchChangeset(rev) + rev = revs[0] + rev = rev.encode('ascii') return rev def short_rev(self, rev):