2010-05-10 14 views
14

[respuesta automática seleccionada por el sistema de recompensas en contra de mi voluntad]SVN: El artículo <folder> no está actualizado

estoy usando Subclipse, y siempre que eliminar una carpeta en Eclipse, y tratar de cometerlo, la siguiente errores plantean:

svn: Item <folder> is out of date 
svn: DELETE of <folder>: 409 Conflict (http://myintranet) 

Borrar y cometer a través de línea de comandos funciona bien, pero lo que es malo en hacerlo a través de Subclipse? ¿Alguien más está experimentando este problema?

(I experimentado este problema en Ubuntu 9.10 y 10.04; la última versión de Eclipse, y Subclipse 1.4 - como las próximas versiones de Subclipse tienen mucho más errores)

--updated: Su cuando se borra carpetas, no los archivos

Respuesta

2

Subclipse tiene muchos problemas como este. Funciona el 90% del tiempo, ¡y luego simplemente NO funciona como debería! Estoy usando subclipse, ya que está muy bien integrado en eclipse, y cuando tengo un problema o se necesitan movimientos más grandes en svn (como fusionar alguna rama) utilizo Tortoisse.

Tenía algo con un directorio como usted. Luego solo ejecuto el TortoiseSVN como sugiere @luiscolorado, y me ayudó. Tortoise es una gran herramienta (tiene muchas características excelentes para difuminar, aplicar parches, obtener parches, etc.).

¡Hoy tuve un problema cuando eliminé un archivo y alguien había cambiado el mismo archivo! Luego subclipse muestra conflicto (hasta este momento todo está bien), ¡así que quería revertir! Pero luego falta el botón de revertir (desaparece cuando el modo no está en conflicto), así que tengo que fusionarme, y la fusión no funciona, arroja algún tipo de error. No me molesté en leer (tal vez debería leerlo y presentarlo como un error para subclipse mantenedores ;-(), sabía que la tortoisse funcionaría, y usted sabe qué, funcionó. Había una opción REVERT.

Entonces @Tom Brito, prueba la línea de comandos, prueba Tortoisse, y luego puedes mirar el registro de cambios del subclipse y presentar un error. Creo que el subclipse simplemente se olvida de mostrarnos algunos cambios y actualizaciones del directorio (o está diseñado para no hacerlo) ?), pero puedo estar equivocado.

+0

Estoy usando la mayoría de la línea de comandos (lo que no es productivo, pero funciona ...) –

+0

Mi amigo usa la línea de comando para svn y hg casi todo el tiempo, y dice que es la única forma productiva de usarlo; D. Pero eso probablemente depende del flujo de trabajo, que uno está usando. –

6

creo que si se actualiza antes de que se debe trabajar .. lo hizo el trabajo para mí

+0

¿Quiere decir actualización antes de comprometerse , no actualizar la versión de subclipse, espero. No hay nada que actualizar (por lo tanto, el botón de actualización está desactivado), soy el único en esta rama de svn. –

+0

sí, tengo este mismo problema en eclipse, que de alguna manera los archivos eliminados no se quisieron comprometer con el mismo error. Busqué en Google que, debería ACTUALIZAR a HEAD en el submenú del equipo, por lo que svn detectará esos cambios, borrando archivos. me parece un error. – marianboda

+0

lo siento, lo digo mal, no son archivos, sus carpetas. Por cierto, lo intentaré, no voy a poder reproducirlo ahora, no sé por qué. Tal vez es algo relacionado con la fecha ... no lo sé. –

2

Tom,

es posible que desee para tratar de TortoiseSVN, y actualizar manualmente el proj ect espacio de trabajo. Encuentre la ubicación del directorio de su proyecto en su disco duro y luego pruebe TortoiseSVN (o la línea de comando si así lo prefiere) para realizar la actualización.

Una causa frecuente de este problema es eliminar el directorio sin "informar" al SVN. Por ejemplo, si elimina manualmente el directorio utilizando el sistema operativo en lugar de usar SVN, tendrá este problema.

Si eliminó el directorio antes de instalar el complemento de subversión, pero el proyecto ya existía en el repositorio, experimentará este problema. Una solución, en este caso, sería recrear el directorio, actualizando/confirmando, y luego eliminar nuevamente el directorio.

Buena suerte.

+0

que había borrado de eclise. Esta tortuga es una línea de comando svn? porque funciona bien en la línea de comandos, ahora quiero que funcione en subclipse. –

+0

No, es una herramienta gráfica que se integra al Explorador de Windows. Es muy bueno. Mira http://tortoisesvn.tigris.org/. Descargar e instalar. Las instrucciones vienen en un archivo de ayuda de Windows y son bastante claras. Si hace clic con el botón derecho en cualquier archivo o directorio controlado por svn en el Explorador de Windows, verá opciones como extraer, limpiar, actualizar, etc. Tanto Subclipse como Tortoise son interfaces visuales para SVN. Subclipse está en Eclipse y Tortoise en Windows. Subclipse tiene algunos errores, error. Creo que Tortuga es más confiable. Si tiene problemas, cierre Eclipse y use Tortoise. – luiscolorado

39

¿No es eso abordado por el Subclipse FAQ?

quiera que vea "fuera de fecha" en un mensaje de error que significa que la revisión del tema en el repositorio es más reciente que la copia en su copia de trabajo local.
La solución siempre va a ejecutar una actualización, para que su copia de trabajo esté actualizada con el repositorio, y luego vuelva a realizar la confirmación (suponiendo que la actualización no generó ningún conflicto).

  • Para los archivos, esto generalmente es bastante fácil de entender cómo y por qué sucede esto.
  • Sin embargo, Subversion también versiona carpetas, y es generalmente con las carpetas que este problema ocurre con mayor frecuencia.
    Subversion no le permite eliminar/cambiar el nombre de una carpeta O cambiar sus propiedades versionadas, A MENOS QUE la copia local de la carpeta esté en la revisión HEAD de la carpeta en el repositorio.

La siguiente pregunta podría ser:
"OK, puedo entender que tal vez, pero ¿por qué mi carpeta fuera de fecha yo soy la única persona que trabaja en este repositorio?. "

Esa es una pregunta válida, la respuesta está en la forma en que Subversion funciona.
Cuando se comete un cambio en un archivo, la revisión del archivo en su copia de trabajo se actualiza para que la nueva revisión cuando el commit complete, sin embargo, la versión de la (s) carpeta (s) primaria (s) de ese archivo no se actualiza.
Esto se debe a que puede haber agregado/eliminado a otros archivos en esa carpeta y hasta que haya ejecutado una actualización, la carpeta no está realmente en ese nueva revisión.
Esto se llama "mixed revision working copies".

En resumen, la respuesta siempre es hacer una actualización para que la carpeta o archivo se actualice a su revisión HEAD.


Sobre "mixtos Copias revisión de trabajo":

Un tipo especial de flexibilidad es la capacidad de tener una copia de trabajo que contiene los archivos y directorios con una mezcla de diferentes números de revisión de trabajo .

Una de las reglas fundamentales de Subversion es que una acción "push" no causa un "tirón", ni viceversa.
El hecho de que esté listo para enviar nuevos cambios al repositorio no significa que esté listo para recibir cambios de otras personas.

El hecho es que cada vez que ejecuta svn commit su copia de trabajo termina con una mezcla de revisiones.
Las cosas que acaba de cometer están marcadas como tener revisiones de trabajo más grandes que todo lo demás. Después de varias entregas (sin cambios en el medio), su copia de trabajo contendrá toda una mezcla de revisiones

(y es por eso que, en mi opinión, no se puede reproducir el mensaje "fuera de fecha" en confirmaciones posteriores con carpeta eliminada:. su actualización resuelve el estado de "revisión mixta")

revisiones mixtas tienen limitaciones

no se puede publicar la eliminación de un archivo o directorio que no está totalmente al día.
Si existe una versión más reciente del artículo en el repositorio, se rechazará su intento de eliminar para evitar que se destruyan accidentalmente los cambios que aún no ha visto.

+1

bien, pero como ya se comentó en la respuesta similar de praksant, hacer una actualización no funciona para mí. –

+0

@Tom no hay nada que actualizar ahora. pero al mismo tiempo, deben tener una revisión mixta, que puede resolverse a través de la línea de comandos. Y ahora no puedes reproducir el problema. Porque no hay más revisiones mixtas. – VonC

+0

No podía reproducir cuando quería, pero en este momento había eliminado un archivo y un directorio, había enviado el archivo y no se puede comprometer el directorio, ya que se produce un error. Y no puedo actualizar (los botones de actualización están deshabilitados porque no hay actualizaciones que hacer, incluso si vuelvo a sincronizar). Entonces el consejo de actualización no me ayuda. La única solución es usar svn command line. Parece un error no reconocido de Subclipse. –

0

La única forma de trabajo en los mismos casos es a través de la línea de comandos. El subclipse aún no es perfecto.

2

Mi solución a esto fue

  1. eliminar todos los elementos en la carpeta
  2. Commit al repositorio
  3. carpeta de actualización a la cabeza
  4. Borrar carpeta en Eclipse
  5. commit al repositorio

un poco engorroso, tal vez, pero siempre funciona

2

Hay una solución sencilla sin necesidad de instalar un poco de sobrepeso software. También tuve este "problema" y lo que puede hacer es la siguiente:

1) abrir la vista de repositorio SVN 2) no vaya a la carpeta que desea deshacerse de y eliminarlo 3) volver a la vista java 4) actualizar la carpeta en su proyecto en realidad se eliminó/actualizar su proyecto también debería funcionar

que solucionó el problema en mi caso, como la actualización sólo se recuperan los archivos que he eliminado

Cuestiones relacionadas