¿Cómo superar el error svn 'fuera de fecha'?


337

He estado intentando mover una estructura de directorio de una ubicación a otra en Subversion, pero aparece un Item '*' is out of dateerror de confirmación.

Tengo la última versión verificada (por lo que puedo decir). svn st -uno aparece ninguna diferencia aparte de los comandos mv.


11
intentaste svn arriba?
Sklivvz

3
una solución trivial para evitar problemas es: si elimina una carpeta y contenido, primero elimine solo el contenido, svn, luego elimine la carpeta y luego svn nuevamente.
Fattie

Respuestas:


637

A veces me sale esto con TortoiseSVN en Windows. La solución para mí es svn updateel directorio, a pesar de que no hay revisiones para descargar o actualizar. Hace algo a los metadatos, que lo arregla mágicamente.


44
Cambié la propiedad svn: ignore de una carpeta y comencé a obtener el error desactualizado. Pero como dijiste, solo actualizarlo funcionó.
Sushant

44
Cuando intento actualizar ese directorio, aparece "svn: dos informes de nivel superior sin objetivo". Una razón más para odiar a SVN. Con git, nunca tuve este tipo de problema estúpido con operaciones básicas como mover un directorio.
Dan Dascalescu

Tuve un error 'desactualizado' en mi carpeta principal al usar la GUI de versiones. Actualicé la carpeta principal y luego me comprometí sin errores.
milesmeow

1
Esto también fue causado por el cambio de svn: ignórame y svn update lo arregló. ¡Gracias!
Nathan Schwermann

8
En Subclipse use "Equipo -> Actualizar a CABEZA". Funciona bien conmigo
NeoRamza

42

Después de intentar todas las cosas obvias, y algunas de las otras sugerencias aquí, sin suerte alguna, una búsqueda en Google condujo a este enlace (el enlace ya no funciona) - Subversion dice: Su archivo o directorio probablemente esté desactualizado

En pocas palabras, el truco es ir al directorio .svn (en el directorio que contiene el archivo ofensivo) y eliminar el archivo "all-wcprops" .

Trabajó para mí cuando nada más lo hizo.


Eso lo hizo! ¡Gracias! ¿Alguien tiene alguna sugerencia sobre cómo sucede esto y cómo evitarlo en primer lugar?
Jesse Barnum

Trabajó para mi. Terminé teniendo que eliminar todos los archivos 'all-wcprops': buscar. -name all-wcprops -exec rm -rf {} \;
Peter Hough

Supongo que deberías poder resolver esto mediante herramientas y opciones de svn, sin eliminar archivos en la estructura
agosto

+1, esto es lo único que funcionó para mí. La otra solución no lo hizo.
Clayton Dukes

99
no funciona para mí, no hay all-wcpropsarchivos en el .svdirectorio
ulkas

39

Creo que este problema proviene del archivo .svn. Es incorrecto en el antiguo padre, el nuevo padre o el antiguo. Intentaría volver a tu punto de partida. Use una exportación para obtener una copia limpia de la carpeta. Mueva la copia limpia a la nueva ubicación y use agregar y eliminar para realizar el movimiento. Eso es hacer manualmente lo que hace SVN, pero podría funcionar.


44
Subversion en realidad copia y luego elimina, lo cual es bastante diferente a eliminar allí y agregar aquí.
SnakE

37

Descubrí que esto funciona para mí:

svn update
svn resolved <dir>
svn commit

Trabajó para mí sin hacerlo svn updateantes, tuve un escenario en el que quería evitar la actualización. (así que solo
resolví

Esta ha sido la cura para mi situación, nada más funcionó. ¡Gracias!
texasdave

14

Intenté actualizar la copia local, y revertir el elemento en cuestión, y aún obtuve el error 'desactualizado'. Esto funcionó por alguna razón:

svn update --force /path/to/dir/or/file

11

Acabo de tener el mismo problema en varias carpetas y esto es lo que hice para confirmar:

1) En la perspectiva "Team Synchronize", haga clic derecho en la carpeta> Anular y actualizar
2) Eliminar la carpeta nuevamente
3) Comprometerse y ser feliz


5

Gracias. Eso solo lo resolvió para mí. svn update --force / ruta al nombre del archivo /

Si su archivo reciente en el directorio local es el mismo, no hay avisos. Si el archivo es diferente, solicita tf, mf, etc ... si elige mf (el mío está lleno) se asegura que no se sobrescriba nada y que podría confirmarlo cuando lo haya hecho.

Jay CompuMatter


5

Logré resolverlo presionando un botón de actualización


4

Como sugiere @ Alexander-Klyubin, haga el movimiento en el repositorio. También será mucho más rápido, especialmente si tiene una gran cantidad de datos para mover, porque no tendrá que transferir todos esos datos a través de la red nuevamente.

svn mv https://username@server/svn/old/ https://username@server/svn/new/

debería funcionar bien


Estaba teniendo este problema con una svn up; svn mvserie de comandos, y esto funcionó muy bien. Gracias.
DopeGhoti

3

Elimine su archivo o su ruta utilizando antes de ejecutar el comando haga una copia de sus cambios

sudo rm -r /path/to/dir/

después :

svn up and commit or delete 

2

¿Estás seguro de que has revisado la cabeza y no una revisión inferior? Además, ¿ha realizado una actualización para asegurarse de tener la última versión?

Hay una discusión sobre esto en http://svn.haxx.se/users/archive-2007-01/0170.shtml .


Digamos que quieres registrar una copia vieja? ¿Cuál es entonces la forma más fácil de hacer que el registro funcione?
OJW

Si está hablando de volver a una copia anterior, simplemente instálela como de costumbre. Obtendrá un nuevo número de revisión.
jgreep


2

Existe al menos otra causa del mensaje de error "desactualizado". En mi caso, el problema era .svn / dir-props que se creó ejecutando "svn propset svn: ignore -F .gitignore". por primera vez. Eliminar .svn / dir-props parece una mala idea y puede causar otros errores, por lo que puede ser mejor usar "svn propdel" para limpiar el errante "svn propset".

# Normal state, works fine.
> svn commit -m"bump"  
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 509.

# Set a property, but forget to commit.
> svn propset svn:ignore -F .gitignore .
property 'svn:ignore' set on '.'

# Edit a file. Should have committed before the edit.
> svn commit -m"bump"                   
Sending        .
svn: Commit failed (details follow):
svn: File or directory '.' is out of date; try updating
svn: resource out of date; try updating

# Delete the property.
> svn propdel svn:ignore .              
property 'svn:ignore' deleted from '.'.

# Now the commit works fine.
> svn commit -m"bump"     
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 510.

2

Si está utilizando el puente github svn, es probable que algo haya cambiado en el lado de github. La solución es simple, solo tiene que ejecutarla svn switch, lo que le permite encontrarse correctamente, luego actualizar y todo funcionará. Simplemente ejecute lo siguiente desde la raíz de su pago

svn info | grep Relative 
svn switch path_from_previous_command
svn update

o

svn switch `svn info | grep Relative | sed 's_.*: __'`
svn update

La base de esta solución proviene del blog de Lee Preimesberger.


1

¿Lo estás moviendo usando svn mv, o simplemente mv? Creo que usar solo mvpuede causar este problema.


1

Moví el directorio a mi máquina local para guardarlo, luego svn eliminé el directorio estúpido y luego me comprometí. Cuando intenté agregar la carpeta desde mi máquina local, TODAVÍA arrojó el error (el movimiento SVN hizo lo mismo cuando intenté cambiar el nombre de la carpeta). Entonces volví, luego hice un DIRKAME de mkdir, agregué y me comprometí. Luego agregué los contenidos y me comprometí, y funcionó.


1
Evitaría cambiar el contenido del repositorio (svn delete), solo porque mi pago local está dañado de alguna manera.
Lars Noschinski

1

Recibí este error al azar después de eliminar algunos directorios, cada uno con algunos archivos. Eliminé los directorios a través de Netbeans y me di cuenta de que en realidad no los eliminó. Parecía simplemente eliminar todo dentro de los directorios y eliminar la referencia al directorio dentro de Netbeans. Sin embargo, todavía existían en el sistema de archivos. Asegúrese de que se eliminen del sistema de archivos e intente la confirmación nuevamente.


1

Si alguna vez resolvió un problema similar, simplemente revisando una nueva copia de trabajo y reemplazando el directorio .svn arrojando los errores de confirmación con este recién revisado. La razón en mi caso fue que después de una corrupción y restauración del repositorio desde una copia de seguridad, la copia de trabajo apuntaba hacia una revisión que no existía en el repositorio restaurado. También obtuve errores de "elemento desactualizado". Actualizar la copia de trabajo antes de confirmar no resolvió esto, pero reemplazar el .svn como se describió anteriormente sí lo hizo.


1

Hice esto y funcionó para mí:
1. Haga una copia de seguridad de su archivo. Simplemente puede copiar su código a un archivo de texto.
2. Haga clic con el botón derecho en el archivo que desea confirmar >> Equipo >> Mostrar historial. 3. En el panel "Mostrar historial" verá todas las revisiones de ese archivo. Haga clic derecho en la última revisión del archivo >> Obtener revisión: anulará sus cambios locales.
4. Ahora, combine su código con el último archivo con el archivo de respaldo (paso # 1).
5. Sincronice y confirme el archivo recién fusionado.


1

Actualice su servidor y cliente a Subversion 1.9.

Si el out of date error ocurre aleatoriamente cuando normalmente no debería hacerlo, cuando ejecuta commit, puede indicar que está utilizando un cliente o servidor Subversion 1.7 obsoleto y no compatible o más antiguo.

Debe actualizar el servidor y los clientes para resolver el problema. Consulte la entrada correspondiente de las Notas de la versión de Subversion 1.9: Errores "desactualizados" cuando se confirma a través de HTTPv1 .


1
Esto incluso me sucedió con TortoiseSVN 1.8.8 en Windows. La actualización a 1.9 ayudó.
Martin Pecka

1

El error se debe a que no actualizó ese archivo en particular, primero actualice y luego solo usted puede confirmar el archivo.


1

Intenté todo menos cambiar en .svn directamente. Nada ayudó, así que aquí está mi solución.

En Eclipse> Ventana> Mostrar vista> Historial , he visto que el archivo no se encuentra en la revisión más reciente, aunque realicé varios svn "Anular y actualizar" / "Revertir" / eliminar archivo y finalizar la compra.

Así que fui Package Explorer> Haga clic derecho en el archivo> Reemplazar con> Último del repositorio .

Otra mirada en la Vista de historial mostró que el archivo ahora estaba en la última Revisión.


1

"Clean Up" Te pondrá en camino.

Haga clic derecho en la carpeta svn y haga clic en 'Limpiar', haga esto si obtiene ese error.


0

Esto sucedió cuando actualicé una rama de una versión anterior con archivos de la troncal. Utilicé el Explorador de Windows para copiar carpetas de mi carpeta de pago de troncal y las pegué en mi vista Eclipse de la carpeta de pago de la rama de lanzamiento. Ahora, el Explorador de Windows se configuró para no mostrar archivos "ocultos" que comienzan con ".", Por lo que no tenía en cuenta todos los archivos .svn incorrectos que se pegan en la carpeta de pago de la rama de lanzamiento. Doh!

Mi solución fue eliminar el proyecto Eclipse dañado, verificarlo nuevamente y luego copiar los nuevos archivos con más cuidado. También cambié Windows para mostrar archivos "ocultos".


0

Recibí este error al intentar confirmar algunos archivos, solo que era un archivo / carpeta que no existía en mi copia de trabajo. REALMENTE no quería pasar por la molestia de mover los archivos y volver a verificar, al final, terminé editando el archivo .svn / entries y eliminé la referencia del directorio ofensivo.


0

En mi caso, solo la eliminación de la versión local y el nuevo pago de una copia nueva fue una solución.


0

Acabo de recibir este error. Lo que le recomiendo es que primero verifique en su servidor si el archivo original está allí. A veces los cambios no se realizan en su carpeta local. Si esta es su situación, simplemente elimine su carpeta y vuelva a pagar.


0

Para resolverlo, necesitaba revertir el archivo con un problema y actualizar mi copia de trabajo, y luego modifiqué el archivo nuevamente y después de estos pasos el error ya no ocurrió.


0

Simplemente haga svn en la línea de comando o si está en Windows, seleccione la opción de actualización de svn.

  • Una vez hecho esto, esto le permitirá realizar más acciones como comprometerse y otros.

0

Acabo de recibir esto mientras intentaba commitdesde un trunkdirectorio. Hacer svn updatedesde el trunkdirectorio no resolvió el error; sin embargo, hacerlo svn updatedesde el directorio padre (donde .svnpertenece el directorio) resolvió el error.

Mi suposición acerca de lo que sucedió (un caso de uso entre otros, puede haber múltiples razones para este "svn: E160024: recurso desactualizado; intente actualizar"): junto con trunk, había un branchesdirectorio. Saqué una branches/branch-1a masterpartir de GitHub. Hacer svn updatedesde el directorio principal (es decir, la raíz de mi copia de trabajo) en lugar de trunkparece haber hecho algo branchesademás trunk. Cuando intentécommit nuevamente, no hubo error.

Sin embargo, como dije anteriormente, este es un caso entre probablemente muchos otros.

Nota al margen: a diferencia de lo que alguien sugirió, no creo que sea una buena idea jugar manualmente en el .svndirectorio.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.