2009-05-02 10 views
14

En los últimos años de usar svn, con frecuencia me he encontrado con problemas en los que las confirmaciones fallarían con el error anterior. Originalmente pensé que esto tenía que ver con el uso de espacios de trabajo montados en samba, pero también lo he visto de forma remota con svn + ssh.¿Cómo evito los problemas de "svn: Out of Date:"?

He aquí un ejemplo de esto viene recientemente:

  1. Cambiar el nombre de un directorio utilizando svn move
  2. Commit cambio a nuevo directorio
  3. intenta confirmar la eliminación del antiguo directorio - falla con:

    Eliminando (subdirectorio) svn: Error de confirmación (detalles a continuación): svn: Desactualizado: '(alguna ruta)/(directorio antiguo)/(subdirectorio)' en la transacción x

Adición: ¿Cuál es la mejor manera de solucionar estos problemas cuando ocurren?

Respuesta

17

Mira la SVN FAQ entry on this issue. Creo que estás realmente desactualizado y solo necesitas ejecutar "svn update".

+2

Gracias, ejecutar svn en el nivel superior parecía solucionar el problema. –

+0

Nueva URL para la entrada de preguntas frecuentes: http://subversion.apache.org/faq.html#wc-out-of-date –

+2

¿No sobrescribirá mis últimos cambios? – hkBattousai

4

Debe comprobar estas cosas de los Subversion FAQ:

  1. Los restos de un fallido de commit ensuciando su copia de trabajo.
  2. revisiones mixtas
  3. Usted puede ser realmente fuera de fecha

Su cambio de nombre de ejemplo indica Nº 2 como su fuente del problema: Si se compromete el nuevo directorio, el directorio principal de la vieja y el nuevo será una revisión mixta, por lo que si intentas enviar el directorio principal, fallará. Tiene mucho sentido comprometer el movimiento (que es una copia combinada y eliminar) en una transacción al ingresar el directorio padre.

1

Creo que deberías comprometer todo el cambio en un solo paso, de esta manera bot el padre y el directorio movido estarán en la misma revisión.

En su caso, usted debe hacer svn update en el directorio padre de que recuperará su directorio borrado, a continuación, eliminar SVN de nuevo y probar con otro cometen

1

Después de probar todas las cosas obvias, y algunas de las otras sugerencias aquí, sin suerte alguna, una búsqueda en Google llevó a este enlace - Subversion says: Your file or directory is probably out-of-date

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

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

1

bueno, esto lo hago pensar.

1) Copio mi código de modificación en un bloc de notas.

2) siguiente, actualice el archivo.

3) copie el código del bloc de notas en un archivo actualizado.

4) commit in svn.

Cuestiones relacionadas