¿Qué es la estantería en TFS?

317

¿Estanterías en TFS es simplemente un registro suave para que otros miembros del equipo puedan ver el código fuente?

es decir, el código archivado no se compilará, ¿verdad?

Matthew Lock
fuente

Respuestas:

453

La estantería tiene muchos usos. Los principales son:

  1. Cambio de contexto : guardar el trabajo en su tarea actual para que pueda cambiar a otra tarea de alta prioridad. Digamos que está trabajando en una nueva función, ocupándose de su propio negocio, cuando su jefe se presenta y dice "¡Ahhh! ¡Bug Bug Bug!" y tiene que soltar sus cambios actuales en la función e ir a solucionar el error. Puede archivar su trabajo en la función, corregir el error, luego regresar y dejar de trabajar para trabajar en sus cambios más tarde.
  2. Compartir conjuntos de cambios : si desea compartir un conjunto de códigos de cambio sin registrarlo, puede facilitar el acceso de los demás archivándolo. Esto podría usarse cuando está pasando una tarea incompleta a otra persona (pobre alma) o si tiene algún tipo de código de prueba que NUNCA verificará que alguien más necesita ejecutar. h / t a las otras respuestas sobre el uso de esto para las revisiones, es una muy buena idea.
  3. Guardar su progreso : mientras trabaja en una función compleja, puede encontrarse en un "buen punto" donde le gustaría guardar su progreso. Este es un momento ideal para archivar su código. Supongamos que está pirateando algunos CSS / HTML para corregir errores de representación. Por lo general, lo golpeas, iterando cada posible error que puedas imaginar hasta que se vea bien. Sin embargo, una vez que se vea bien, puede intentar volver a limpiar su marcado para que otra persona pueda entender lo que hizo antes de registrarlo. En este caso, puede archivar el código cuando todo se vea bien , entonces es libre de ir y refactorizar su marcado, sabiendo que si lo rompe accidentalmente de nuevo, siempre puede regresar y obtener su conjunto de cambios.

¿Algún otro uso?

TJB
fuente
16
Al archivar un conjunto de cambios, uno puede conservar los cambios pendientes localmente (útil para 2 o 3) o no (útil para 1)
dumbledad
2
La documentación de Visual Studio sobre estanterías tiene un contexto adicional y cómo información.
Desarrollador holístico el
1
También lo utiliza una compilación cerrada para almacenar los cambios hasta que se pueda realizar una confirmación final.
Tore Østergaard
Una cosa que noté es que los cambios de Shelving no necesariamente revierten el código, ni cambia el estado de los archivos para registrarse. Entonces, mientras está trabajando en estos, por ejemplo, cambios de errores, ¿cómo evita cometer el código de cambio de errores junto con su código archivado?
Jacques
Acabo de darme cuenta de que los archivos permanecen desprotegidos cuando selecciona la opción para preservar el conjunto de cambios localmente.
Jacques
105

El archivar es una forma de guardar todos los cambios en su caja sin registrarse. Los cambios persisten en el servidor. En cualquier momento posterior, usted o cualquiera de sus compañeros de equipo puede "quitarlos" de nuevo a cualquiera de sus máquinas.

También es excelente para fines de revisión. En mi equipo para un registro, archivamos nuestros cambios y enviamos un correo electrónico con la descripción del cambio y el nombre del conjunto de cambios. Las personas del equipo pueden ver el conjunto de cambios y dar su opinión.

FYI: La mejor manera de revisar un conjunto de estanterías es con el siguiente comando

tfpt review / shelveset: shelvesetName; userName

tfpt es parte de las herramientas eléctricas de Team Foundation

JaredPar
fuente
66
Cabe señalar que hoy no habría razón para archivar manualmente los cambios y enviar información por correo electrónico. El proceso moderno es solicitar una revisión del código.
ChiefTwoPencils
34

Así es. Si crea un estante, otras personas que realicen una última actualización no verán su código.

Coloca los cambios de código en el servidor, que probablemente esté mejor respaldado que su PC de trabajo.

Le permite recoger sus cambios en otra máquina, si siente la necesidad de trabajar desde su casa.

Otros pueden ver sus estantes (aunque creo que esto puede ser opcional) para que puedan revisar su código antes de registrarse.

teedyay
fuente
Así es. Si crea un estante, otras personas que realicen una actualización no verán su código. Significa 1) cuando registre el código en TFS y luego, ¿el miembro de mi equipo verá el código en su sistema si obtiene la última versión? 2) Entonces, ¿por qué cuenta hemos archivado el código, de la misma cuenta solo veremos el código archivado? corrígeme si me equivoco
Krish
Puedes ver los estantes de otras personas si quieres.
teedyay
3
Para ser más precisos, "otras personas que realizan una última actualización no descargarán su código"
sergiol
18

Un punto que se pierde en muchas de estas discusiones es cómo revierte en la MISMA máquina en la que archivó sus cambios. Quizás sea obvio para la mayoría, pero no lo fue para mí. Creo que realiza un Deshacer cambios pendientes, ¿es así?

Entiendo que el proceso sea el siguiente:

  1. Para archivar sus cambios pendientes actuales, haga clic con el botón derecho en el proyecto, Archivar, agregue un nombre de archivador
  2. Esto guardará (o archivará) los cambios en el servidor (nadie los verá)
  3. Luego realiza Deshacer cambios pendientes para revertir su código al último punto de registro
  4. Luego puede hacer lo que necesita hacer con la línea de base del código revertido
  5. Puede anular los cambios en cualquier momento (puede requerir algún conflicto de fusión)

Por lo tanto, si desea comenzar un trabajo que tal vez necesite archivar, asegúrese de registrarse antes de comenzar, ya que el punto de registro es el lugar al que volverá cuando realice el paso Deshacer cambios pendientes anterior.

Nick Wright
fuente
8
Puede omitir el paso Deshacer cambios pendientes si desactiva la casilla de verificación "Conservar cambios pendientes localmente" al crear el conjunto de estantes.
Michael J.
14

Me encuentro con esto todo el tiempo, por lo que la información complementaria con respecto a las sucursales:

Si está trabajando con varias ramas, los conjuntos de estanterías están vinculados a la rama específica en la que los creó. Por lo tanto, si deja que un conjunto de cambios se oxida en el estante durante demasiado tiempo y tiene que retirarse a una rama diferente, debe hacerlo con la versión de julio de las herramientas eléctricas.

tfpt unshelve /migrate
joshua.ewer
fuente
Fuera de tema, pero cierto :-)
Tore Østergaard
2
Este comentario es tan antiguo que se agregó antes de que se estableciera ettiquete de respuesta de desbordamiento de pila :-)
joshua.ewer
2

La archivación es como si sus cambios se hubieran almacenado en el control de origen sin afectar los cambios existentes. Significa que si registra un archivo en control de origen, modificará el archivo existente, pero dejar de lado es como almacenar sus cambios en el control de origen pero sin modificar los cambios reales.

Sr. N. Das
fuente
1

@JaredPar: Sí, puede usar Shelvesets para las revisiones, pero tenga en cuenta que los Shelvesets pueden ser sobrescritos por usted u otros y, por lo tanto, no son estables a largo plazo. Por lo tanto, para las revisiones relevantes de regulación, nunca debe usar un Shelveset como base, sino más bien un registro (Changeset). Para una revisión informal, está bien, pero no para una revisión formal (por ejemplo, relevante para el TLC).

Daniel
fuente
0

Si está utilizando compilaciones bloqueadas, cuando se activa una compilación, crea un conjunto de estanterías de su espacio de trabajo que se envía para la compilación. Si la compilación falla, se rechaza el conjunto de estanterías. Si la compilación es exitosa, se crea un conjunto de cambios y se compromete con TFS. En cualquier caso, la persona que realiza ese check-in / build tendrá que conciliar el espacio de trabajo, que es tan simple como realizar un Get Latest.

Jim Roth
fuente