tfs shelve

¿Qué es la estantería en TFS?



shelve (8)

¿Se archiva en TFS 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?


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


Está bien. Si creas un estante, otras personas que realicen una última obtención no verán tu código.

Pone los cambios de código en el servidor, que probablemente tenga una copia de seguridad mejor que su PC de trabajo.

Le permite recoger sus cambios en otra máquina, en caso de que sienta la necesidad de trabajar desde casa.

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


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ás trabajando en una nueva función, teniendo en cuenta tu propio negocio, cuando tu jefe entra y dice "¡Ahh! ¡Error! ¡Error!" y tienes que dejar tus cambios actuales en la característica y solucionar el error. Puede archivar su trabajo en la función, corregir el error, luego regresar y dejar de trabajar para corregir sus cambios más adelante.
  2. Compartir conjuntos de cambios : si desea compartir un conjunto de cambios de código sin registrarlo, puede facilitar el acceso de los demás al archivarlo. Esto podría usarse cuando le está pasando una tarea incompleta a otra persona (alma pobre) o si tiene algún tipo de código de prueba, NUNCA comprobaría que otra persona necesitaba correr. 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 característica compleja, puede encontrarse en un "buen momento" en el que le gustaría guardar su progreso. Este es un momento ideal para guardar su código. Supongamos que está pirateando algunos CSS / HTML para corregir errores de representación. Usualmente lo golpeas, iterando todos los posibles errores que puedas imaginar hasta que se vean bien. Sin embargo, una vez que se ve bien, puede intentar volver a limpiar su marca para que otra persona pueda entender lo que hizo antes de registrarlo. En este caso, puede guardar el código cuando todo funcione correctamente. , entonces usted es libre de ir y refactorizar su marca, sabiendo que si accidentalmente la rompe nuevamente, siempre puede regresar y obtener su conjunto de cambios.

¿Algún otro uso?


La estantería es como sus cambios se han almacenado en el control de origen sin afectar los cambios existentes. Significa que si ingresa un archivo en el control de origen, modificará el archivo existente, pero archivar es como almacenar sus cambios en el control de origen pero sin modificar los cambios reales.


La estantería es una forma de guardar todos los cambios en su casilla sin registrarse. Los cambios se mantienen en el servidor. En cualquier momento posterior, usted o cualquiera de sus compañeros de equipo pueden "quitarle la plantilla" a cualquiera de sus máquinas.

También es ideal para fines de revisión. En mi equipo para un chequeo guardamos 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 estantes es con el siguiente comando

tfpt review / shelveset: shelvesetName; userName

tfpt es parte de Team Foundation Power Tools


Me encuentro con esto todo el tiempo, así que la información adicional sobre las sucursales:

Si está trabajando con varias sucursales, las estanterías están vinculadas a la rama específica en la que las creó. Por lo tanto, si deja que un conjunto de cambios se oxide en el estante durante mucho tiempo y tenga que quitarle la plantilla a una rama diferente, debe hacerlo con la versión de julio de las herramientas eléctricas.

tfpt unshelve /migrate


Si está utilizando compilaciones cerradas, cuando se activa una compilación, se crea un conjunto de estantes de su área de trabajo que se envía para compilación. Si la compilación falla, el shelveset es rechazado. Si la compilación es exitosa, se crea un conjunto de cambios y se confirma a TFS. En cualquier caso, la persona que realice el check-in / build tendrá que conciliar el área de trabajo, que es tan simple como realizar un Get Latest.


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

Entiendo que el proceso es el siguiente:

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

Por lo tanto, si desea comenzar algún trabajo que pueda necesitar en Shelve, asegúrese de registrarse antes de comenzar, ya que el punto de entrada es el lugar al que volverá cuando realice el paso anterior de Deshacer cambios pendientes.