Aquí es mi escenario:SVN cómo resolver "agregar localmente, agregar información después de la actualización" en una * carpeta *?
Asumamos que tenemos un repositorio SVN con el siguiente contenido: myfolder myfolder \ archivo.txt
Ahora puedo crear dos cajas de este repo, CO1 y CO2.
En co1 modificamos file.txt. en el CO2 que:
- svn delete myfolder
- SVN
- Crear una nueva carpeta llamada myfolder
- SVN añaden myfolder
- SVN
Ahora si intento una actualización en co1 obtengo un conflicto de árbol:
A + C myfolder > local edit, incoming delete upon update
M + myfolder\file.txt
quiero seguir myfolder y el archivo modificado, por lo que resuelve el conflicto de árbol:
svn resolve --accept working folder
Ahora bien, si lo intento de cometer, consigo "svn: El directorio '/ myfolder' no está actualizado" . Si trato de resolver este usando svn hasta myfolder, aparece un nuevo conflicto de árbol:
A + C folder > local add, incoming add upon update
M + myfolder\file.txt
bien, así que tratamos de resolver SVN --Acepte carpeta de trabajo de nuevo. Pero todavía no podemos comprometernos, obtenemos el mismo mensaje que "svn: Directorio '/ mi carpeta' está desactualizado ', si hacemos svn up myfolder, volvemos al último conflicto de árbol.
¿Cuál es el procedimiento correcto para resolver este tipo de conflicto (cuando deseamos mantener myfolder y sus cambios)?
EDIT: script de línea de cmd de Windows para ilustrar:
rmdir /S /Q C:\svntest
mkdir C:\svntest
cd C:\svntest
svnadmin create repo
svn co file:///c:/svntest/repo co1
svn co file:///c:/svntest/repo co2
cd co1
mkdir folder
echo content > folder\file.txt
svn add folder
svn commit folder -m ""
cd C:\svntest\co2
svn up
cd C:\svntest\co1
svn del folder
svn commit -m ""
mkdir folder
svn add folder
svn commit -m ""
cd C:\svntest\co2
echo changed_content > folder\file.txt
svn up
svn resolve --accept working folder
svn commit -m ""
svn up folder
svn resolve --accept working folder
svn commit -m ""
Y aquí está la salida de funcionamiento de ese guión (tenga en cuenta los fallos de cometer al final):
C:\>rmdir /S /Q C:\svntest
C:\>mkdir C:\svntest
C:\>cd C:\svntest
C:\svntest>svnadmin create repo
C:\svntest>svn co file:///c:/svntest/repo co1
Checked out revision 0.
C:\svntest>svn co file:///c:/svntest/repo co2
Checked out revision 0.
C:\svntest>cd co1
C:\svntest\co1>mkdir folder
C:\svntest\co1>echo content 1>folder\file.txt
C:\svntest\co1>svn add folder
A folder
A folder\file.txt
C:\svntest\co1>svn commit folder -m ""
Adding folder
Adding folder\file.txt
Transmitting file data .
Committed revision 1.
C:\svntest\co1>cd C:\svntest\co2
C:\svntest\co2>svn up
A folder
A folder\file.txt
Updated to revision 1.
C:\svntest\co2>cd C:\svntest\co1
C:\svntest\co1>svn del folder
D folder\file.txt
D folder
C:\svntest\co1>svn commit -m ""
Deleting folder
Committed revision 2.
C:\svntest\co1>mkdir folder
C:\svntest\co1>svn add folder
A folder
C:\svntest\co1>svn commit -m ""
Adding folder
Committed revision 3.
C:\svntest\co1>cd C:\svntest\co2
C:\svntest\co2>echo changed_content 1>folder\file.txt
C:\svntest\co2>svn up
C folder
At revision 3.
Summary of conflicts:
Tree conflicts: 1
C:\svntest\co2>svn resolve --accept working folder
Resolved conflicted state of 'folder'
C:\svntest\co2>svn commit -m ""
Adding folder
svn: Commit failed (details follow):
svn: Directory '/folder' is out of date
C:\svntest\co2>svn up folder
C folder
At revision 3.
Summary of conflicts:
Tree conflicts: 1
C:\svntest\co2>svn resolve --accept working folder
Resolved conflicted state of 'folder'
C:\svntest\co2>svn commit -m ""
Adding folder
svn: Commit failed (details follow):
svn: Directory '/folder' is out of date
@Azirath: He actualizado mi respuesta, me puede decir qué la versión de svn que estás usando? –
Perdón por el largo tiempo de respuesta, tuve que hacer que esta cuenta no registrada se fusionara con mi cuenta real. Vea mi respuesta en los comentarios a su respuesta. – Ziphnor