¿Hay alguna garantía de que svn fusione automáticamente "agregar línea" y "eliminar línea" al mismo file?

Tengo un sistema distribuido que usa files XML en un repository SVN como medio de comunicación (como se puede adivinar a partir de eso, la comunicación normalmente es lenta). Algunos nodos de procesamiento agregan o eliminan algunos datos a un repository, otro nodo de procesamiento lo toma como un evento de input y reactjs en consecuencia.

Por el momento, todo está bien, pero me pregunto si puedo tener problemas con la fusión automática de SVN.

Digamos que un nodo agrega un trabajo específico a otro nodo agregando una línea en un file xml apuntando a otro file xml con los detalles del trabajo. Esto se parece al siguiente código:

----File: nodename.xml---- <assignments> <file>537f7acb382326.xml</file> <file>572919a90c0234.xml</file> <file>58a7c3e2015922.xml</file> </assignments> 

Cada file enumerado en ese file es una asignación de trabajo al nombre de nodename host. En la ejecución del trabajo, la línea correspondiente será borrada por el cesionario.

Desde la perspectiva del repository SVN, tengo un "sumdor" y un "leer y borrar". Un nodo solo agrega líneas a ese file, un nodo solo elimina las líneas de ese file. Puedo garantizar que solo un nodo puede agregar y solo un nodo puede eliminar. Pero: aunque los nombres de los files tienen ID únicos, pueden volver a agregarse, por lo que una línea puede agregarse y eliminarse al mismo time, lo que teóricamente puede causar problemas.

Mi pregunta es: ¿hay alguna garantía de que SVN fusione automáticamente una "línea de agregar" y "eliminar línea" concurrente sin la interacción del usuario? Si no, ¿hay alguna garantía si agrego una timestamp a cada línea agregada, haciendo que cada línea sea única?

Con SVN no hay concurrency. O bien la eliminación o el agregado ocurrirá primero. Si el repository ha cambiado desde que se actualizó, la confirmación fallará. Por ejemplo, si su read-and-deleter lee el file, el adder agrega una nueva línea y el de read-and-deleter intenta confirmar una eliminación, fallará porque su copy está desactualizada.

Pero realmente SVN no es una gran manera de hacer este tipo de cosas. Dicho esto, puede que te vaya mejor si work-to-do carpeta de work-to-do donde el adder agrega files individuales que representan trabajo pendiente. La function de read-and-deleter puede actualizar ese directory y eliminar files a medida que se realiza el trabajo. Los nombres de los files se pueden hacer únicos con una timestamp o algo así.