|
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 = " ";
} 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>");
|
|