# # # patch "tracvc/mtn/automate.py" # from [b4c10bd231d383b3bc39f65273ac9116d39549d7] # to [14c70552b4f82bff57fd19d7fc32f746a7a823a4] # # patch "tracvc/mtn/backend.py" # from [879aa06bbc51fb1f98d54a59f691a3de7894bc73] # to [c8a5835923ef6dedadaebb3a828d05a0e810a067] # ============================================================ --- tracvc/mtn/automate.py b4c10bd231d383b3bc39f65273ac9116d39549d7 +++ tracvc/mtn/automate.py 14c70552b4f82bff57fd19d7fc32f746a7a823a4 @@ -177,7 +177,8 @@ class MTN: """Returns a list of revisions selected by the selector.""" if REVID_RULE.match(selector): return [selector] - status, result = self.automate.command("select", selector) + status, result = self.automate.command("select", + selector.encode('utf-8')) if status == 0: return result.splitlines() return [] ============================================================ --- tracvc/mtn/backend.py 879aa06bbc51fb1f98d54a59f691a3de7894bc73 +++ tracvc/mtn/backend.py c8a5835923ef6dedadaebb3a828d05a0e810a067 @@ -155,6 +155,7 @@ class MonotoneRepository(Repository): Retrieve a Changeset object that describes the changes made in revision 'rev'. """ + rev = self.normalize_rev(rev) return MonotoneChangeset(self.mtn, rev) def get_changesets(self, start, stop): @@ -169,7 +170,7 @@ class MonotoneRepository(Repository): if time < start: continue # assume none of the parents is younger elif time < stop: - yield MonotoneChangeset(self.mtn, current) + yield MonotoneChangeset(self.mtn, current) # or self.get_changeset(current) for parent in self.mtn.parents(current): if parent not in seen: seen.add(parent) @@ -257,10 +258,10 @@ class MonotoneRepository(Repository): revision. It should simply be passed through. """ if rev != None: - if isinstance(rev, unicode): - rev = rev.encode('ascii') revs = self.mtn.select(rev) - rev = revs and revs[0] or None + if len(revs) != 1: + raise NoSuchChangeset(rev) + rev = revs[0].encode('ascii') return rev def short_rev(self, rev): @@ -410,10 +411,8 @@ class MonotoneChangeset(Changeset): class MonotoneChangeset(Changeset): def __init__(self, mtn, rev): - self.certs = rev and mtn.certs(rev) - if not self.certs: - raise NoSuchChangeset(rev) + self.certs = mtn.certs(rev) self.messages = self.certs.get('changelog', ['-']) self.authors = self.certs.get('author', ['-']) self.dates = dates(self.certs.get('date', []))