visual usar update team studio curso conectar como tfs shelving

tfs - usar - visual studio team foundation server licensing



Ramas vs. Estantes en TFS (8)

Siempre he usado SVN en mi pasado, y ahora que hemos pasado de la fase inicial de un proyecto, necesitamos averiguar nuestro proceso de ramificación para futuras mejoras.

Al leer sobre esto, vemos que TFS tiene estanterías.

¿Cómo se comparan? ¿Cuáles son los grandes gotcha en cada uno?

En general, ¿cuál es el preferido y por qué?


Deshacer en una rama diferente no es la funcionalidad predeterminada de TFS.

Para quitar el personal en una rama diferente, deberá seguir las instrucciones de este blogpost

Esto implica instalar herramientas eléctricas TFS2010 desde la galería VS.


Estantería y ramificación no son el mismo concepto.

La bifurcación es tomar un código base y "dividirlo", básicamente hacer una copia de él. Todos los equipos de desarrollo pueden trabajar en sus propias sucursales (por ejemplo) y luego todos los cambios se pueden volver a fusionar en una sucursal de origen. Las sucursales solo se pueden combinar en una rama principal en TFS.

La estantería permite a los desarrolladores verificar el código en el sistema de control de fuente en una "estantería". El código no está registrado en la rama principal. Si un administrador de compilación u otro desarrollador "se pone al día", no obtendrá el código archivado de forma predeterminada. La estantería se almacena de forma segura en el control de la fuente como en todos los demás códigos, simplemente no está en la rama. Otros desarrolladores pueden bajar los estantes para ver los efectos. En algún momento, los cambios se registrarán en la rama principal y formarán parte de un conjunto de cambios.

Sugiero este libro: http://www.amazon.com/Team-Foundation-Server-2008-Action/dp/1933988592/ref=sr_1_1?ie=UTF8&s=books&qid=1263417920&sr=8-1

Tiene una explicación muy simple, pero efectiva de estanterías, fusiones y varios modelos de ramificación.


Estantería y ramificación son dos cosas totalmente diferentes. Los estantes le permiten almacenar todos sus cambios en TFS, pero en realidad no están registrados en ninguna rama en particular. Sus cambios se guardan simplemente bajo un nombre dado. Esto es realmente muy útil porque es una excelente manera de hacer revisiones de código. Podría haber hecho cambios en tal vez 10 archivos diferentes. Crearé un estante de esos cambios con un nombre de pila. Entonces le pediré a alguien que revise mi estantería. A continuación, puedo desactivar los cambios o eliminar el conjunto de estantes.

La ramificación es un proceso mediante el cual usted hace una copia completa de un tronco de código y le asigna un nombre y una ubicación. Luego puede ingresar / salir / fusionarse con la rama del código. Esto es genial cuando se trabaja en la próxima versión de una aplicación. Puede crear una rama para trabajar en nuevas características.

Aquí hay una buena explicación de los estantes: http://msdn.microsoft.com/en-us/library/ms181403(VS.80).aspx


Evite los estantes. Siempre restaurará un archivador sobre una versión más nueva de los archivos y perderá todos los cambios confirmados. Utilice los estantes solo cuando comience a trabajar en una rama estable y comprenda que los cambios necesarios son mayores que lo que se había pensado. Luego guarda tu trabajo, crea una rama y deja de apilar sobre ella.


Los conjuntos de estanterías son por usuario y se almacenan de manera diferente en el control de origen: no es posible fusionar los conjuntos de estanterías, no hay historial, etc. ni siquiera puedes fusionar archivos mientras lo haces. Por lo tanto, solo lo usamos como un almacenamiento temporal para cosas que aún no están terminadas y, por lo tanto, no se pueden registrar en una rama.

Por lo tanto, debe usar sucursales ;-) tal vez una rama principal y diferentes ramas de desarrollo para funciones y corrección de errores.


Los estantes son una colección de cambios pendientes, comentarios y elementos de trabajo asociados.

Escenarios:

  • Apoyo
  • Mover temporalmente los cambios para trabajar en un tema diferente
  • Revisiones de código remoto
  • Buddy construye o coordina cambios

Se necesita una sucursal cuando su equipo de desarrollo necesita trabajar en dos copias distintas de un proyecto al mismo tiempo.


Si por alguna razón uno no puede cometer los cambios, puede guardar los cambios. Luego, uno tiene la opción de conservar los cambios locales (es decir, mantener las copias archivadas localmente) o volver a la versión actual localmente (y los cambios solo existen en la copia archivada). Si uno mantiene los cambios a nivel local, el almacenamiento es una buena manera de mantener una versión de su código en el repositorio y estar a salvo de una falla del disco local.

Además, las estanterías son útiles cuando uno ha realizado muchos cambios que aún no se han registrado y desea conservar esa versión antes de embarcarse en un experimento de codificación "arriesgado y complicado". Si el experimento sale mal y uno quiere descartarlo, uno simplemente puede quitar la plantilla de la copia archivada. Y si el experimento fue exitoso, uno simplemente puede eliminar el estante o dejarlo languidecer en la oscuridad.


Una rama, es una copia de la rama principal. Puedes usar una rama para decir probar una idea para hacer algo. Es genial porque si algo sale mal, puedes descartar el original, de manera muy similar a eliminar una copia de un archivo. Si las cosas van bien, fusiona la rama con la original, diga "Principal".

Un Shelve es análogo a una carpeta temporal. Puede usarlos para las revisiones de un código, o como lo hacemos nosotros, o si necesita arreglar algo, de esa manera está en TFS y en una copia de seguridad. Guarda cualquier código en el que esté trabajando (dándole una etiqueta) y luego vuelva a la pantalla principal. Cuando hayas terminado, luego intercambias Main por tus Shelve, y la vida continúa sin parar.