2008-10-21 8 views
5

tuve un problema con la comisión de cambios después de combinar dos ramas de mi proyecto utilizando TortoiseSVN.no puedo confirmar los cambios después de fusionarse en SVN

Éstos son los detalles:

hice una rama de combinación de maletero de proyecto que estoy trabajando.

Proyecto incluye repositorio principal y bibliotecas conjuntos para repositorio principal como svn externa (bibliotecas también están ramificadas) como subdirectorio de proyecto.

Cuando yo estaba tratando de confirmar los cambios TortoiseSVN dijo:

Commit A 
re all the targets part of the same working copy? 
Unable to lock 'D:\websites\project\lib' 
Please execute the "Cleanup" command. 

Por supuesto Cleanup no ayudó.

SVN: palabra clave externa para proyecto directorio estaba bien definido, también lib carpeta aún contenía la versión adecuada de bibliotecas (versión tronco).

Tanto el servidor y el cliente SVN se encuentran en la versión 1.5.x (TortoiseSVN es 1.5.3.x).

Desde el punto de vista técnico, tanto proyecto y bibliotecas son proyectos en el mismo repositorio SVN.

¿Alguna idea de qué salió mal?

que había estado buscando en Google un poco de la solución, pero no encontró nada útil, así que traté de cometer mis cambios en dos pasos:

  1. confirmar los cambios de carpeta del proyecto
  2. cometer cambios de bibliotecas carpeta

que pasó sin ningún problema.

Pero todavía me pregunto por qué no podía cometer todo en un commit.

EDITS:

  • (Después de la respuesta Ken G) versión fija de TortoiseSVN 1.3.x -> 1.5.3.x.
+0

Esto es algo más complicado :( Hoy he recibido este error cuando estaba actualizando repositorio - SVN no ha podido bloquear la carpeta que estaba en el repositorio SVN Después de la limpieza, dijo:. Error al añadir el directorio 'D: \ sites \ project \ import ': ya existe un directorio versionado del mismo nombre Lo investigaré. –

Respuesta

1

svn: externos hará que la subversión de combinar diferentes rutas de repositorios a la salida, pero en última instancia esos caminos son todavía 'disjuntos', por lo que tiene que hacer dos confirmaciones para obtener los cambios aplicados.

Aquí está la cita relevante de Version Control with Subversion

y subversión todavía realmente funciona sólo en copias de trabajo nondisjoint. Así, por ejemplo, si quieres cometer cambios que ha realizado en una o más de esas copias de trabajo externas, debe ejecutar SVN explícitamente en aquellos que trabajan copias a comprometerse en la copia de trabajo primaria no recurse en ninguna externa.

+0

Ken - este es el mismo repositorio - hago la fusión una vez a la semana y siempre funciona - puedo confirmar todo en uno commit. TortoiseSVN me muestra en los archivos de la ventana de confirmación tanto desde la carpeta del proyecto nd lib carpeta - incluso la carpeta lib sí mismo (propiedad svn: merge fue cambiado). –

+0

JFTR, "diferentes repos Las rutas de acceso "residen en el mismo repositorio, simplemente son diferentes _paths_, ¿verdad? ¿Entonces después de actualizar a 1.5.3 de TortoiseSVN, ve el mismo comportamiento? El mismo mensaje de error? –

+0

Sí. Todavía el mismo comportamiento. De acuerdo con http://svn.haxx.se/users/archive-2008-01/0814.shtml esto no es un error, pero es característica :). Así que tienes razón. Probablemente la versión para principiantes de TortoiseSVN enmascaró este comportamiento. –

1

Creo que recuerdo haber leído acerca de un error relacionado con esto en TortoiseSVN que se ha solucionado en el último lanzamiento. Consulte la última release notes.

2

1.3 de TortoiseSVN es muy antiguo, la última revisión es 1.5.x. Ha habido numerosos cambios tanto en Subversion y TortoiseSVN desde 1.3, por lo que la actualización de su cliente es probablemente su mejor apuesta.

Dicho esto, TortoiseSVN 1.5 se va a crear/actualizar las copias de trabajo a una versión del formato 1.5.TENGA MUCHO CUIDADO cuando use TortoiseSVN (o cualquier cliente SVN) contra una copia de trabajo anterior de Subversion.

Cuestiones relacionadas