TFS: Etiquetas vs Conjuntos de cambios


Estoy tratando de llegar a las mejores prácticas con respecto al uso del control de fuentes TFS. En este momento, cada vez que hacemos una compilación, etiquetamos los archivos que se registran en el TFS con el número de versión. ¿Es este enfoque mejor o peor que simplemente verificar los archivos y tener el número de versión en los comentarios? A continuación, puede utilizar el conjunto de cambios para volver si es necesario o las etiquetas son aún más versátiles?

Gracias!

Author: laconicdev, 2009-06-05

4 answers

Tienen dos propósitos diferentes, los conjuntos de cambios son cuando los archivos realmente han cambiado y desea mantener un registro permanente de ese cambio. Las etiquetas marcan una cierta versión de los archivos para que pueda volver fácilmente a ese punto. A menos que su compilación realmente cambie los archivos bajo control de código fuente y desee registrar estos cambios. Deberías estar etiquetando.

Además, el etiquetado es mucho menos intensivo en recursos. Y puede tener varias etiquetas en la misma versión de un archivo.

 32
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-05 15:30:50

Debe etiquetar las versiones de los archivos fuente que componen su compilación. Si estás usando TeamBuild, lo hace por ti automáticamente. Combina el nombre de la definición de compilación, la fecha y el número de compilación. Así que no tienes que hacer nada.

Su otra opción no es muy convencional y requiere mucho trabajo innecesario. Si lo entiendo correctamente, debería revisar sus archivos fuente durante el proceso de compilación y luego volver a revisarlos con un número de versión especificado en los comentarios. Esto es como Alex mencionó muy intensivo en recursos en términos de su proceso de compilación y también su repositorio de control de código fuente. Además, ¿cómo obtendría los archivos fuente de una versión en particular si la información de la versión está incrustada en los comentarios? Será muy difícil y tendrá que sentarse y escribir su propia aplicación que utiliza la api de control de código fuente de TFS para descargar los archivos de origen a un espacio de trabajo mediante la búsqueda del número de versión en los comentarios de check-in. Esto crea complejidad innecesaria y dolores de cabeza.

Si utiliza etiquetas en su lugar, puede hacer una etiqueta get by en VS IDE para descargar los archivos de origen que componen esa etiqueta. Incluso puede decirle a TeamBuild que use una etiqueta en lugar de descargar los archivos de origen más recientes durante la automatización de compilación. De esta manera puede crear versiones anteriores de su aplicación fácilmente. Con las etiquetas, también puede aplicar conjuntos de cambios posteriores a una etiqueta existente si hubo cambios de código simplemente obteniendo esa etiqueta y luego obtener conjuntos de cambios específicos y luego hacer una etiqueta rápida o crear una etiqueta nueva.

El etiquetado es muy potente, cómodo de usar y forma parte de TFS. En lugar de idear una solución personalizada que requiera mucho esfuerzo para que funcione y se mantenga, simplemente intente usar lo que ya está disponible.

 7
Author: Mehmet Aras,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-05 16:09:25

En este momento, cada vez que hacemos una compilación, etiquetamos los archivos que se registran en el TFS con el número de versión

No necesitas hacer esto. TFS puede referirse a un estado de la base de código de muchas maneras, de las cuales las etiquetas son una sola, pero también lo son las compilaciones e incluso los conjuntos de cambios. Puede ver las formas disponibles para reconstruir un punto en particular en el tiempo haciendo un Get Specific Version... y examinando las opciones en el menú desplegable Type:

Changeset
Date
Label
Latest Version
Workspace Version

Changeset le permite obtener justo después de cualquier conjunto de cambios; Date es obvio; Label también lo es, excepto que se construye automáticamente* crear etiquetas (elija Label de este menú desplegable y luego eche un vistazo en el diálogo Find Label).

*creo que es automático! A menos que sea algo que hayamos establecido especialmente donde estoy en este momento...

 2
Author: AakashM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-05 16:00:09

StackOverflow no me deja comentar las respuestas anteriores, así que estoy escribiendo esto como una nueva "respuesta". Quiero aclarar algunos de los conceptos erróneos enumerados anteriormente.

Primero, usar etiquetas TFVC es MÁS intensivo en recursos que usar conjuntos de cambios. Mucho más. Los comandos como Branch, Merge y Get by Label son más lentos. Para servidores empresariales con bases de datos enormes, no desea usar etiquetas.

En segundo lugar, las compilaciones no crean etiquetas automáticamente, aunque los pasos de compilación predeterminados incluye un paso para crear una etiqueta.

Tercero, como otros ya han mencionado, las etiquetas se pueden mover o eliminar, por lo que son mucho menos confiables que los conjuntos de cambios que son inmutables.

En general, te recomiendo que NO uses etiquetas. La alternativa más simple es simplemente recordar el número de conjunto de cambios para sus compilaciones. O si desea aislar diferentes versiones de lanzamiento, debe crear ramas de lanzamiento.

Las etiquetas están bien para sistemas pequeños, pero no son buenas para grandes empresas.

 0
Author: Will Lennon - MSFT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-04 11:21:00