return calendar.timegm(time.strptime(self.date, "%Y-%m-%dT%H:%M:%SZ"))
except (TypeError, ValueError):
croak("garbled date %s" % self.date)
+ def __str__(self):
+ return "<%s = %s>" % (self.revno, self.native)
def registered(fn):
"Is this a workfile for a registered history?"
self.by_revno_d[item.revno] = item
self.by_native_d[item.native] = item
for item in self.revlist:
- self.parent = self.by_native_d.get(backend.pred(item.native))
- self.child = self.by_native_d.get(backend.succ(item.native))
- if self.parent and self.parent.child != self:
- self.parent.branches.add(self)
+ item.parent = self.by_native_d.get(backend.pred(item.native))
+ item.child = self.by_native_d.get(backend.succ(item.native))
+ if item.parent and item.parent.child != item:
+ item.parent.branches.add(item)
+ #for item in self.revlist:
+ # print item
+ #print self.by_revno_d.keys()
def __len__(self):
return len(self.revlist)
def current(self):
if self.end > len(metadata):
croak("{0} has no {1} revision".format(metadata.name, self.end))
if not self.branchwise:
- self.seq = range(self.start, self.end+1)
+ self.seq = [metadata.by_revno(i) for i in range(self.start, self.end+1)]
else:
- self.seq = [self.end]
- s = self.end
+ self.seq = []
+ e = metadata.by_revno(self.end)
while True:
- rev = metadata.revno_to_native(s)
- nxt = backend.pred(rev)
- s = metadata.native_to_revno(nxt)
- if s is None:
- croak("%s is not an ancestor of %s" % (self.start, self.end))
- self.seq.append(s)
- if s == self.start:
+ self.seq.append(e)
+ if e.revno == self.start:
break
+ if e.parent is None:
+ croak("%s is not an ancestor of %s" % (self.start, self.end))
+ else:
+ e = e.parent
if debug >= DEBUG_SEQUENCE:
sys.stderr.write("selection: %s, branchwise is %s\n" % (self.seq, "on" if self.branchwise else "off"))
for item in metadata.revlist:
# Because in the branchwise case the sequence is generated in reverse
if backwards != self.branchwise:
self.seq.reverse()
- return [metadata.by_revno(s) for s in self.seq]
+ return self.seq
class CommentContext:
COMMENT_CUTLINE = """\