Creo que hay una respuesta aún realmente resuelve el problema en el sentido de que si los cambios en una parte de svn: externals se ha realizado, por supuesto, deberían mostrarse. Esto, de manera propagable, no tiene sentido para los repositorios realmente externos. Pero utilizo svn: externals para agregar una carpeta de compilación general desde el mismo repositorio en proyectos (porque no existe una jerarquía general de los módulos). Y no quiero usar las opciones --ignore-externals -q
ya que pierdo información sobre archivos no agregados y cambios en el script de compilación general que he realizado en este proyecto (que podría querer confirmar). Mi solución fue parchar la implementación de línea de comando de subversión java svnkit.
AbstractSVNCommand.registerCommand(new SVNStatusCommand());
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
final PrintStream stream = new PrintStream(bos);
final SVNCommandLine commandLine = new SVNCommandLine();
commandLine.init(new String[] { "status", "PATH..." });
final SVNCommandEnvironment env = new SVNCommandEnvironment("mySvn", stream, stream, System.in);
env.init(commandLine);
env.initClientManager();
final SVNStatusCommand svnStatusCall = new SVNStatusCommand();
svnStatusCall.init(env);
svnStatusCall.run();
stream.flush();
String result = new String(bos.toByteArray());
StringBuffer buffer = new StringBuffer();
Scanner scanner = new Scanner(result);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
if (line.startsWith("X") || line.startsWith("Performing status on external item at")) {
// ignore this output
} else if (line.trim().isEmpty() == false) {
buffer.append(line + "\n");
}
}
System.out.println(buffer.toString());
Esto resuelve el problema porque los cambios en factores externos también están marcados con 'M' para modificar ...
1 Tengo el mismo problema, en lugar hubiera gustado --ignore-externos sean el predeterminado o configurable para convertirse en predeterminado. –
Para que quede claro: -q (modo silencioso) elimina la línea "X lib" y --ignore-externals quita la línea "Realizar el estado en el elemento externo en 'lib'". Mejor actualizar la respuesta en base a esto. –
Por lo que vale, http://subversion.tigris.org/issues/show_bug.cgi?id=1935 tiene una larga discusión, que aún no he terminado de leer. Hasta ahora, parece que se ha establecido un consenso razonable para solucionar esto en 2004 .../-: – tripleee