BEGIN {
FS = ": "
rcount = 0
}
{ sub(/^( )*/,"",$0) }
/^revno:/{revno = $2; rs[++rcount] = $2}
/^revision-id:/{
revids[$2] = revno
revnos[revno,"revid"] = $2
revnos[revno,"parents"] = 0
}
/^parent:/{revnos[revno,"parent",++revnos[revno,"parents"]] = $2}
/^committer:/{revnos[revno,"committer"] = $2}
/^branch nick:/{revnos[revno,"branch"] = $2}
/^timestamp:/{revnos[revno,"time"] = $2}
/^ .*/{revnos[revno,"message"] = revnos[revno,"message"] $0 "\n"}
function mangle(s) {
gsub(/@/, "_at_", s)
gsub(/\./, "_dot_", s)
return s
}
END{
for (r=1; r<=rcount; r++) {
revno = rs[r]
print ".. _"revno":\n"
if((revno,"branch") in revnos) {
into = "into branch ``"revnos[revno,"branch"]"`` "
} else {
into = ""
}
print "* rev. **"revno"** by *"mangle(revnos[revno,"committer"])"* "into"at "revnos[revno,"time"]
for (n=1; n <= revnos[revno,"parents"]; n++) {
p_revid = revnos[revno,"parent",n]
rev_range=revnos[revno,"revid"]".."p_revid
gsub(/[:%/?*]/, "_", rev_range)
print "* parent: `"revids[p_revid]"`_ `diff <diff/"rev_range">`__"
}
print "\n::\n\n" revnos[revno,"message"]
}
}