tortoise - ¿Renombrado el archivo, ahora SVN no me permite comprometerme?
svn tutorial español (10)
Agregue un archivo con el nombre anterior y realice la confirmación. Luego, elimine el archivo de nuevo y realice la confirmación.
Estoy desarrollando un sitio web ColdFusion usando Aptana. Estamos usando SVN para el control de versiones.
Cambié el nombre de algunos archivos y ahora estoy intentando asignar uno de ellos, pero aparece el siguiente error:
''SVN Commit'' has encountered a problem.
org.apache.subversion.javahl.ClientException: Illegal target for the requested operation
svn: Commit failed (details follow):
svn: Cannot commit ''R:/myPath/My-New-File-Name.cfm'' because it was moved from ''R:/myPath/My-Old-File-Name.cfm'' which is not part of the commit; both sides of the move must be committed together
Esto parece indicar que necesito comprometer tanto el archivo anterior (que fue renombrado) como el nuevo archivo renombrado. ¿Cómo puedo comprometer un archivo que ya no existe ...?
Confirme el directorio, no el archivo.
Piense en un directorio como un archivo de texto que contiene la lista de archivos que contiene, luego puede ver que para realizar correctamente, necesita actualizar el directorio para que pueda eliminar la entrada anterior y agregar la nueva entrada. Esto aparecerá en SVN como eliminar el anterior y agregar el nuevo archivo (es decir, 2 cambios al directorio, no 1 cambio al archivo)
Si solo desea confirmar el archivo 1, deberá agregar los otros archivos modificados temporalmente a una lista de ignorar.
En eclipse con subversión, pude evitar este error confuso haciendo un Team-> synchronize en una carpeta de nivel lo suficientemente alto en el proyecto que abarcaba los nombres y ubicaciones de archivos antiguos y nuevos. Si movió y renombró sus archivos o si no puede descubrir qué es exactamente lo que está sucediendo, no tiene sentido sincronizar en el nivel más alto de su proyecto.
Cuando hice esto, las versiones anteriores de los archivos renombrados aparecieron en la vista de sincronización. Una vez que utilicé "anular y comprometer" en ellos, desaparecieron de nuevo. En este punto, los nuevos finalmente se comprometerán correctamente.
Existe la posibilidad de que uno de los archivos sea renombrado.
Mire los nombres de archivo en el error y vea si esto coincide con sus archivos.
Si los nombres de los archivos no coinciden, cambie el nombre de su archivo por el del error y confirme todos los archivos que desea confirmar. Después de esto, puedes cambiar el nombre de tu archivo y volver a cometerlo.
Para Visual Studio 2015, me tropecé con una solución para Ankh SVN. En mi caso, el error se produjo al renombrar un "Form1.cs" durante el desarrollo (y tal vez moverlo). Eso causó problemas con los viejos y nuevos archivos .resx.
- Resalte el proyecto en el Explorador de soluciones para abrir la ventana de vista de cambios pendientes,
- Elija Archivo> Subversión> Cambios pendientes
- Desmarcar la ruta
- Verifique los dos o más archivos que la subversión necesita. Si "nuevo" uno no está en la lista, cambie sus contenidos de forma no destructiva para que aparezca en la lista.
- Ejecutar commit
Espero que esto funcione para usted.
Si está utilizando IntelliJ IDEA y realiza commit con TortoiseSVN, a veces sucede que IDEA no elimina la carpeta y Subversion comete este error.
En ese caso, eso significa "por favor, no ingrese una carpeta / archivo que marcó como borrado"
Si las cosas realmente se estropean, la solución más simple es eliminar la carpeta del repositorio y luego agregarla nuevamente en su forma actual.
SVN Wipe and Replace:
- Copie la carpeta que contiene todos sus cambios en una ubicación temporal.
- Use SVN Delete en la carpeta y luego confirme.
- Copie la copia de respaldo a su copia de trabajo y confirme.
TortiseSVN abre el archivo en el explorador de Windows. seleccione el archivo, haga clic derecho, use TortiseSVN -> unversión y agregue a la lista de ignorar
entonces el archivo se deshará del SVN, se convierte en un archivo normal. por lo tanto, puede hacer la operación para agregar el archivo a SVN y enviarlo.
Utilizo la solución para resolver el problema.
Varios clientes parecen manejar esto mejor que otros ..
AnkhSVN for Visual Studio encuentra este error y no puede manejarlo.
TortiseSVN (extensión de shell) funciona bien: sabe eliminar el archivo anterior y agregar el nuevo.
Entonces, si estás en Windows, una manera fácil de evitar esto es utilizar TortiseSVN desde Explorer para realizar una confirmación en el directorio (que borra el nombre del archivo anterior y agrega el nuevo).
svn commit ''R: / myPath / My-New-File-Name.cfm'' ''R: / myPath / My-Old-File-Name.cfm'' -m "mensaje"
funciona para mi. Simplemente también necesita incluir el archivo eliminado.