# # # patch "mtn.py" # from [83c0839578662c078c8c109cea1c21446edb0cdb] # to [bfdcd3f284ef8508f44fc96f3ae2c54aa5809b61] # # patch "static/viewmtn.css" # from [6efcadac0d56fb3d77a22786f477ba621f4af33d] # to [377c58c351ab0bb6d4153b02cfbe95af68fa2514] # # patch "templates/tags.html" # from [613f14c73a648a769f178af4ebeecd51b237a746] # to [e37d06408dc812404695b1ac441426fa5c39e051] # # patch "viewmtn.py" # from [728f0806a4a331836b9c67251c0534d37065b775] # to [88c855a6669379de6be323446fd8e72f22f8a630] # ============================================================ --- mtn.py 83c0839578662c078c8c109cea1c21446edb0cdb +++ mtn.py bfdcd3f284ef8508f44fc96f3ae2c54aa5809b61 @@ -181,9 +181,9 @@ class Tag(MtnObject): self.obj_type = obj_type class Tag(MtnObject): - def __init__(self, name, revision, author): + def __init__(self, name, revision, author, branches): MtnObject.__init__(self, "tag") - self.name, self.revision, self.author = name, Revision(revision), author + self.name, self.revision, self.author, self.branches = name, Revision(revision), author, branches class Branch(MtnObject): def __init__(self, name): @@ -295,13 +295,15 @@ class Operations: self.automate = apply(Automate, runner_args) def tags(self): - for line in (t.strip() for t in self.standalone.run('ls', ['tags'])): - if not line: - continue - yield apply(Tag, line.split(' ', 2)) + for stanza in basic_io_from_stream(self.automate.run('tags', [])): + if stanza[0] == 'tag': + branches = [] + for branch in stanza[7:]: + branches.append(Branch(branch)) + yield Tag(stanza[1], stanza[3], stanza[5], branches) def branches(self): - for line in (t.strip() for t in self.standalone.run('ls', ['branches'])): + for line in (t.strip() for t in self.automate.run('branches', [])): if not line: continue yield apply(Branch, (line,)) ============================================================ --- static/viewmtn.css 6efcadac0d56fb3d77a22786f477ba621f4af33d +++ static/viewmtn.css 377c58c351ab0bb6d4153b02cfbe95af68fa2514 @@ -91,3 +91,10 @@ DIV#popupBox { padding: 2px; z-index: 10; } + +PRE.code { + border-left-style: solid; + border-left-width: 1px; + border-left-color: black; + padding-left: 3px; +} ============================================================ --- templates/tags.html 613f14c73a648a769f178af4ebeecd51b237a746 +++ templates/tags.html e37d06408dc812404695b1ac441426fa5c39e051 @@ -8,18 +8,25 @@ To view a particular tag, select it from

- + #for tag in $tags - - + ============================================================ --- viewmtn.py 728f0806a4a331836b9c67251c0534d37065b775 +++ viewmtn.py 88c855a6669379de6be323446fd8e72f22f8a630 @@ -215,6 +215,7 @@ class Tags: class Tags: def GET(self): + # otherwise we couldn't use automate again.. tags = map(None, ops.tags()) def revision_ago(rev): for cert in ops.certs(rev):
TagSigned byAge
TagSigned byBranchesAge
+ #filter Filter $link($tag).html() #filter WebSafe + $tag.author + #filter Filter + #for branch in $tag.branches + $link($branch).html()
+ #end for + #filter WebSafe +
$revision_ago($tag.revision)