2010-03-07 17 views
6

Usando Subversion, en mi copia de trabajo hago una pequeña modificación (actualice un número de versión). Entonces me gustaría etiquetar mi copia de trabajo. ¿Seguiría siendo esta etiqueta una copia barata con la modificación, o SVN duplicaría los archivos? Odiaría ver crecer enormemente mi repositorio porque estoy intentando guardar un cambio en el número de versión.SVN - Cuando etiqueta una copia de trabajo ¿sigue siendo una copia barata?

El motivo por el que pregunto sobre la creación de una etiqueta que contiene una modificación en lugar de confirmar y luego etiquetar involucra a mi servidor de compilación. El servidor de compilación crea un CCNetLabel que utilizo para actualizar los números de versión de mis proyectos (AssemblyInfo.cs). Cuando la construcción es exitosa crea una etiqueta. Cuando uso ForceBuild, la etiqueta se basa en la copia de trabajo que contendrá el número de versión modificado. Quiero que la etiqueta contenga el número de versión apropiado.

nota: Es discutible si estoy creando una rama o una etiqueta, sin embargo, SVN no hace una distinción entre los dos.

Respuesta

4

Depende. Si su copia de trabajo está actualizada (todos los nodos tienen la misma revisión) es tan barata como etiquetar desde el repositorio.

Para cada archivo/directorio (o subárbol en realidad) con una revisión diferente a la que se agregará su matriz de datos adicionales. Y si tiene modificaciones locales, se agregarán aún más datos.

Pero aún es razonablemente barato: no duplica los archivos que ya están en el repositorio.

+0

Excelente, mi preocupación es que puede duplicar todos los archivos. Parece que etiquetar la copia de trabajo apenas sería más grande que etiquetar una rama en el servidor. Ahora si pudiera decirle a Cruise Control .net que siempre etiquete mi copia de trabajo ... http://groups.google.com/group/ccnet-devel/browse_thread/thread/13e5cc63cb9221ae – mcdon

+0

si tengo un directorio "A" en mi copia de trabajo y yo etiqueta esto. Entiendo que esta será una copia barata en el repositorio. Sin embargo, más adelante borro "A" de mi directorio de trabajo. ¿Qué pasará con la copia barata? ¿Todavía tendrá "A" disponible? – Jus12

1

Crear una etiqueta o una rama en subversión es muy barato. Los archivos no se copiarán. Todo lo que sucede es que se creará una nueva revisión, cuyo contenido básicamente solo contiene un puntero desde donde se copió la etiqueta. Este será del mismo tamaño para una etiqueta de un proyecto con un archivo pequeño o para uno con un millón de archivos grandes.

Cuando dice "etiquetar mi copia de trabajo", ¿quiere decir "etiquetar mi rama de trabajo"? Solo puede etiquetar datos que ya se han confirmado en el repositorio en alguna parte, no sus cambios locales no confirmados.

+0

me refiero a etiquetar mi copia de trabajo. El proceso será: svn update, número de versión de actualización en la copia de trabajo, generar la etiqueta de la copia de trabajo. El objetivo es guardar la información de la versión actualizada en la etiqueta (rama más una modificación para el número de versión). – mcdon

5

partir de la descripción subversión

  • de ramas y etiquetas son baratas (operaciones constantes en el tiempo). No hay ninguna razón para que estas operaciones sean caras, por lo que no lo son. Las ramas y las etiquetas se implementan en términos de una operación subyacente de "copia". Una copia ocupa una pequeña cantidad de espacio constante. Cualquier copia es una etiqueta; y si comienzas a cometer una copia, también es una sucursal. (Esto elimina los "punto de ramificación etiquetado" de CVS, mediante la eliminación de la distinción que hizo etiquetas rama puntos necesarios en el primer lugar.)

Nota! Acabo de notar que Subversion se ha movido a la organización del proyecto Apache

1

Una publicación desactualizada pero digna de mención para cualquiera que la visite, la respuesta indica que solo puede 'Solo puede etiquetar datos que ya se han confirmado en el repositorio ...' el trabajo comprometido no es completamente exacto (al menos ahora no).

Puede etiquetar una copia de trabajo, que podría contener revisiones mixtas e incluso directorios conmutados, así como modificaciones locales.

En cuanto a lo barato, sí que debe todavía ser barato como Subversion se bifurcará para usted, entonces superponer su copia de trabajo los cambios en el repositorio, ahorrando tanto espacio como sea posible

Cuestiones relacionadas