Aunque de alguna manera soy versado en VCS (usuario regular de svn, git y git-svn) no puedo entender este peculiar comportamiento de SVN.Una manera sensata de cambiar el nombre de un directorio en una copia de trabajo de subversión
Cada vez que necesito para cambiar el nombre de un directorio en mi copia de trabajo SVN desde un estado de otra manera 'limpia' - es decir, svn status
no devuelve nada y todas las demás modificaciones se han comprometido - como tal (que es lo que sugiere el documento SVN):
svn mv foo bar
svn commit
SVN se queja en voz alta:
Adding bar
Adding bar/toto
Deleting foo
svn: Commit failed (details follow):
svn: Item '/test/foo' is out of date
Como usted desee:
svn update
que da:
C foo
At revision 46.
Summary of conflicts:
Tree conflicts: 1
Hay un conflicto de árbol, mientras que ningún cambio de terceros sucedió. Obviamente, la única manera de salir de este lío conflicto de árbol es genéricamente (del libro rojo SVN):
svn resolve --accept working -R .
svn commit
Cambiar el nombre de él de forma remota en el repositorio y luego actualizar mi copia de trabajo parece bastante braindead:
url=$(svn info | grep -e '^URL:' | sed 's/^URL: //') svn mv $url/foo $url/bar
svn update
¿Existe alguna forma sancionada y simplificada de cambiar el nombre de una carpeta que me falta? ¿Cuál es la causa raíz de ese estado de conflicto de árbol particularmente sorprendente?
¿Se puede publicar el mensaje de conflicto de árbol exacto? –
También he visto este comportamiento antes, pero no estoy seguro de cuál es la causa. ¿Es cuando agregas un directorio y lo renombra antes tal vez? –
También experimento este comportamiento y no he podido encontrar un motivo. Siempre lo he atribuido a "la forma en que SVN funciona". Me vuelve loco. –