91
91
def from_revision(cls, branch, revision_id):
92
92
"""Produce a new testament from a historical revision"""
94
93
rev = branch.get_revision(revision_id)
95
t.revision_id = str(revision_id)
96
t.committer = rev.committer
97
t.timezone = rev.timezone or 0
98
t.timestamp = rev.timestamp
99
t.message = rev.message
100
t.parent_ids = rev.parent_ids[:]
101
t.inventory = branch.get_inventory(revision_id)
102
t.revprops = copy(rev.properties)
103
assert not contains_whitespace(t.revision_id)
104
assert not contains_linebreaks(t.committer)
94
inventory = branch.get_inventory(revision_id)
95
return cls(rev, inventory)
97
def __init__(self, rev, inventory):
98
"""Create a new testament for rev using inventory."""
99
self.revision_id = str(rev.revision_id)
100
self.committer = rev.committer
101
self.timezone = rev.timezone or 0
102
self.timestamp = rev.timestamp
103
self.message = rev.message
104
self.parent_ids = rev.parent_ids[:]
105
self.inventory = inventory
106
self.revprops = copy(rev.properties)
107
assert not contains_whitespace(self.revision_id)
108
assert not contains_linebreaks(self.committer)
107
110
def as_text_lines(self):
108
111
"""Yield text form as a sequence of lines.
132
135
r.extend(self._revprops_to_lines())
135
assert isinstance(l, str), \
138
assert isinstance(l, basestring), \
136
139
'%r of type %s is not a plain string' % (l, type(l))