Siempre se puede utilizar el parámetro -r
para referirse a una revisión específica. Al hacerlo, también puede usar la fijación de revisión @rev
para asegurarse de que se está refiriendo al diseño de la revisión de Subversion en una revisión en particular. Lo siguiente creará una etiqueta desde el tronco sobre la revisión 577 y llamar a esta etiqueta REV-1.2
:
$ svn cp -r 577 https://subversion.assembla.com/svn/my_assembla_svn_directory/trunk
https://subversion.assembla.com/svn/my_assembla_svn_directory/tags/REV-1.2
Si usted no tiene un trunk
, branches
, y tags
directorios, tendrá que mover su trabajo con el fin de crear una cierta:
$ # Move the current directory to the "trunk"
$ svn cp https://subversion.assembla.com/svn/my_assembla_svn_directory \
https://subversion.assembla.com/svn/my_assembla_svn_directory/trunk
$ # Make a corresponding tags and branches directories too
$ svn mkdir https://subversion.assembla.com/svn/my_assembla_svn_directory/branches
$ svn mkdir https://subversion.assembla.com/svn/my_assembla_svn_directory/tags
$ # Now, we can delete the old location. Let your developers know this,
$ # so they're not surprised by this and will be able to do a "svn relocate"
$ svn delete https://subversion.assembla.com/svn/my_assembla_svn_directory/
$ # Whoops. I should have done the tagging when I had a chance.
$ #Oh well, we'll use the `@rev` pinning:
$ svn -r557 cp https://subversion.assembla.com/svn/[email protected] \
https://subversion.assembla.com/svn/my_assembla_svn_directory/tags/REL-1.2
Subversion no implementa el etiquetado y ramificación excepto como una copia. Esto no es inusual Perforce implementa ramificaciones de la misma manera. De hecho, una vez que te acostumbras a ella, que funciona muy bien:
- Es fácil ver por las ramas y etiquetas válidas (simplemente hacer una
svn ls
en el directorio correcto
- La historia completa de etiquetas y ramas son fáciles de ver. Puede ver quién realizó el cambio, cuándo, por qué, etc.
- Se muestra el historial completo de la etiqueta o rama. Si alguien cambia una etiqueta o una rama, verá quién lo hizo con mucha claridad.
- Desalienta el tipo de ramificación helter-skelter que se ve en muchos otros sistemas de control de versiones cuando los desarrolladores eligen y eligen sobre varias ramas y el tronco qué ramificar o etiquetar. Eso hace que el seguimiento de la historia sea muy difícil de hacer. El esquema de Subversion lo alienta a pensar que las ramas y las etiquetas afectan a todos los archivos de un proyecto.