Problema de SVN (Subversion) "El archivo está programado para agregarse, pero falta" - Uso de versiones

94

Estoy usando Versiones para SVN.

Intento comprometerme y recibir este mensaje:

Confirmación fallida (a continuación se detallan los detalles): '/Users/mike/Sites/mysite.com/astss-cvsdude/Trunk/cart/flashfile.swf' está programado para agregarse, pero falta

Supongo que esto se debe a que agregué archivos al repositorio y luego los eliminé a través del sistema de archivos.

Me gustaría que simplemente tome nota de mi cambio y aplique el cambio al repositorio.

¿Cómo puedo evitar esto?

Miguel
fuente

Respuestas:

120

No estoy seguro de lo que está intentando hacer: si agregó el archivo a través de

svn add myfile

sólo le dijo a svn que pusiera este archivo en su repositorio cuando realizara su próxima confirmación . No hay cambios en el repositorio antes de escribir un

svn commit

Si elimina el archivo antes de la confirmación, lo svntiene en sus registros (porque lo agregó) pero no puede enviarlo al repositorio porque el archivo ya no existe.

Entonces, o desea guardar el archivo en el repositorio y luego eliminarlo de su copia de trabajo: en este caso, intente recuperar su archivo (¿de la papelera?), Confirme y elimine el archivo luego a través de

svn delete myfile
svn commit

Si desea deshacer addel archivo y simplemente desecharlo, puede

svn revert myfile

que le dice svn(en este caso) que deshaga la operación add.

EDITAR

Lo siento, no sabía que estaba utilizando el cliente de GUI "Versiones" para Max OSX. Así que intente revertir el directorio que lo contiene usando la GUI o salte al agua fría y encienda su shell de comandos de Mac oculto :-) (se llama "Terminal" en el OSX alemán, no tengo idea de cómo abrirlo en el inglés versión...)

MartinStettner
fuente
2
El problema aquí es que usa una GUI. Si puede usar la línea de comandos de todos modos, podría solo svn rmel archivo incluso si no existe en el directorio.
Pikrass
Ok, no estaba al tanto del cliente "Versions" para OSX. Debería poder usar "revertir" de todos modos, ¿no? Eso funcionaría con TortoiseSVN en Windows.
MartinStettner
svn cleanups y svn rms más tarde ... Gracias por su ayuda chicos. ¿Hay alguna manera de decirle a svn, "mira, agregué algunos archivos a través del administrador de archivos predeterminado de mi sistema operativo, y ahora mismo, las cosas en esta carpeta, es lo que quiero que sea el estado actual de este repositorio ... ahora déjalo suceda ... no me digas lo que puedo y no puedo hacer con estos archivos, pero sí, haz un seguimiento de todo por mí ".
Mike
1
Un svn add *agrega automáticamente todos los archivos sin versión, nuevas, una svn commitsalva de inmediato estos cambios en el repositorio. Afaik no hay una operación equivalente para la eliminación, por lo que si elimina archivos, debe llamar svn rmmanualmente.
MartinStettner
Solo para su información, también tuve este problema y svn rm, incluso con --forceno funciona, dice does not exist. Entonces, svn revertes lo correcto para hacer aquí.
Michel Müller
24

Tuve el mismo problema con las versiones que muestran el mismo mensaje. Simplemente hice clic derecho en los archivos ofensivos y seleccioné 'Revertir ...' en el menú contextual y todo estuvo bien.

Básicamente, Versions (en realidad, Subversion) cree que aún desea agregar el archivo, pero no puede encontrarlo porque lo eliminó en el sistema de archivos. La opción Revertir le dice a Subversion que se olvide de agregarlo.

mmopy
fuente
Recibí este error porque había eliminado una carpeta de la jerarquía de aplicaciones. Acabo de agregar una carpeta vacía con el mismo nombre y funcionó.
Yogi
10

Agregar un archivo y luego eliminarlo es el tipo de operación que se considera un error, por lo que SVN se lo dice. Le dijiste que esperara algunos datos de archivo y luego no los proporciones cuando te comprometes, ¡las luces rojas parpadean y las sirenas se apagan!

La respuesta es deshacer su adición, alternativamente, confirmar el archivo y luego usar 'svn rm' para eliminarlo del sistema de archivos y el repositorio.

gbjbaanb
fuente
Obtengo esto de Xcode donde agrego un archivo y lo hice mal o algo así y le digo a Xcode que lo elimine (mueva a la papelera). Desafortunadamente, Xcode lo deja en este estado y no hace el rm de svn por mí, aunque elimina el archivo ...
chadbag
3

Esto resolvió mi problema similar. Lo usé para revertir los cambios, luego agregué todo y realicé cambios en la terminal con

svn add folder_path/*
svn commit -m "message"
jose
fuente
2

Evite usar Xcode para cambiar el nombre de los archivos en una referencia de carpeta. Si cambia el nombre de un archivo usando Xcode, se marcará para su confirmación. Si luego lo elimina antes de la confirmación, terminará con este error.

Totoro
fuente
0

Acabo de eliminar el archivo desde VS, luego desde 'Repository Explorer', copié el archivo a la copia de trabajo.

Behzad Sedighzadeh
fuente
0

Si está utilizando TortoiseSVN…

Desde su ventana de confirmación en la sección "Cambios realizados" puede seleccionar todos los archivos ofensivos, luego hacer clic derecho y seleccionar eliminar. Finalice la confirmación y los archivos se eliminarán de las adiciones programadas.

Howard
fuente