2012-02-10 11 views
19

He encontrado el siguiente conflicto básico de árbol: Local add, incoming add on merge.Cómo aceptar 'theirs-conflict' para resolver conflictos de árbol: Local add, incoming add on merge

Sé que podemos usar svn resolve --accept working file para resolverlo, pero SVN me impide usar accept their-conflict para aceptar la versión entrante.

¿Alguien puede decirme cómo reemplazar mi archivo local por el que viene? ¿Es posible usar svn resolved file de alguna manera?

+0

Una opción es sacar su archivo local del camino, hacer una 'svn update', poner su archivo de nuevo, y luego hacer un' svn commit'. De acuerdo, probablemente no sea la forma "correcta" de hacerlo, pero es probablemente mucho más simple que jugar con los comandos SVN. – aroth

+0

@aroth, estos archivos ya existen tanto en el tronco como en la rama (fondo: fusiono la rama con el tronco semanalmente), de hecho, quiero usar el de la rama para sobrescribir el del tronco, como dijiste, necesito para eliminar estos archivos en el tronco, luego confirmar, luego fusionarlos de la rama, ¿verdad? –

+0

¿Has resuelto tu problema? –

Respuesta

11

Lo correcto es detectar este problema en una ejecución previa anterior y eliminar el directorio conflictivo local con svn delete antes de realizar la fusión.

Primer caso: Copia de trabajo con la fusión ya realizada. Solución: elimine la copia de trabajo, obtenga una copia limpia y haga lo correcto.

Segundo escenario: directorio erróneo ya comprometido, después de svn resolve --accept=working.

Debe svn delete el directorio en conflicto, y vuelva a ejecutar la combinación desde el directorio principal del directorio conflictivo ignorando mergeinfo. Revertir todos los objetos, excepto el directorio en conflicto anterior (ahora no hay conflicto). Verifica y confirma los cambios.

Ej. Copia de trabajo de la carpeta de WC. Su conflicto en el directorio A/conflictDir:

cd A 
svn delete conflictDir 
svn merge --ignore-ancestry -rbeginRev:endRev <URLrepo/A> 
svn -R revert `ls | grep -v conflictDir` 
<... check ...> 
svn ci -m "conflictDir fixed" 
5

tuve problema similar, en el que svn actualizar un archivo que tiene un conflicto con mi archivo local. Quiero que la copia remota reemplace mi copia local. Lo que hice fue svn delete file_name, y luego . Se recupera a la copia remota. No estoy seguro si el primer svn delete es necesario o no.

+0

Fue para mí, eliminar el archivo solo con 'rm' provocó que el conflicto permanezca, pero eliminarlo con' svn delete' y luego restaurarlo solucionó el conflicto del árbol. – tomjen

Cuestiones relacionadas