File Diff:

String path = request.getParameter("path"); if (null == path) { response.sendRedirect(response.encodeRedirectURL("index.jsp")); return; } String r1 = request.getParameter("r1"); String r2 = request.getParameter("r2"); FileEntry fent = new FileEntry(env, path); fent.sync(); if (null == r1) r1 = String.valueOf(fent.getHeadRev()-1); if (null == r2) r2 = String.valueOf(fent.getHeadRev()); String cmd[] = { "p4", "diff2", "-du", path+"#"+r1, path+"#"+r2 }; String l, c; try { P4Process p = new P4Process(env); p.exec(cmd); while (null != (l = p.readLine())) { if (0 == l.length()) { out.print("<BR/>"); continue; } switch (l.charAt(0)) { case '@': c = "diffmacro"; break; case '+': c = "diffadd"; if (1 > l.length()) { l = ""; } else { l = l.substring(1); } break; case '-': c = "diffsub"; if (2 > l.length()) { l = "&nbsp;"; } else { l = l.substring(1); } break; default: c = "diff"; break; } out.print("<FONT class=\""+c+"\">"+l+"</FONT><BR/>"); } p.close(); } catch (Exception ex) { /* Ignored. */ } out.print("<PRE>"); out.print("</PRE>");