Index: src/info.c ================================================================== --- src/info.c +++ src/info.c @@ -516,11 +516,17 @@ }else{ @ <a href="%s(g.zTop)/vinfo/%T(zName)">[show diffs]</a> } } @ - @ <a href="%s(g.zTop)/vpatch?from=%S(zParent)&to=%S(zUuid)">[patch]</a><br/> + @ <a href="%s(g.zTop)/vpatch?from=%S(zParent)&to=%S(zUuid)">[patch]</a> + @ <form method="get" action="%s(g.zTop)/vdiff"> + @ See difference from another version: + @ <input type="text" name="to"/> + @ <input type="hidden" name="from" value="%S(zParent)"/> + @ <input type="submit" /> + @ </form><br/> db_prepare(&q, "SELECT name," " mperm," " (SELECT uuid FROM blob WHERE rid=mlink.pid)," " (SELECT uuid FROM blob WHERE rid=mlink.fid)," @@ -995,10 +1001,17 @@ @ </p></blockquote> @ <h2>To Artifact <a href="%s(g.zTop)/artifact/%S(zV2)">[%S(zV2)]</a>:</h2> @ <blockquote><p> object_description(v2, 1, 0); @ </p></blockquote> + @ <hr /> + @ <form method="get" action="%s(g.zTop)/fdiff"> + @ See difference from another version: + @ <input type="text" name="v2"/> + @ <input type="hidden" name="v1" value="%s(zV1)"/> + @ <input type="submit" /> + @ </form> @ <hr /> @ <blockquote><pre> @ %h(blob_str(&diff)) @ </pre></blockquote> blob_reset(&diff);