TFS: ¿Cómo se puede deshacer la compra de archivos no modificados en un archivo por lotes


Utilizamos un archivo por lotes para generar código, y automáticamente comprueba los archivos generados desde Team Foundation Server (TFS) para que pueda regenerarlos. La mayoría de estos archivos no se modifican, pero el generador no lo sabe de antemano.

El comando "tfs undo" deshace el proceso de pago, pero le pregunta si algunos han sido modificados (lo cual no queremos hacer). Tampoco queremos comprobar los archivos generados de inmediato.

Hay un comando (o serie de comandos) para deshacer la comprobación de todos los archivos sin modificar sin preguntar al usuario?

Author: CJBS, 2009-02-13

9 answers

Echa un vistazo a Deshacer sin cambios comando de la Team Foundation Server Power Tools Agosto 2011

c:\myProject> tfpt uu . /noget /recursive

Gracias Matt Florence por la actualización del enlace.

Gracias Ray Vega por sintaxis actual.

 191
Author: Mike Chaliy,
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-05-23 12:34:39

Instale Team Foundation Server Power Tools y ejecute lo siguiente desde la línea de comandos utilizando tfpt.exe en la raíz del directorio workspace de tu proyecto:

c:\myProject> tfpt uu . /noget /recursive

Incluir /noget es muy recomendable ya que evita un 'get latest' forzado de todos los archivos de su proyecto que dependiendo del número total puede tomar un tiempo extremadamente largo.

 123
Author: Ray Vega,
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
2010-05-27 21:03:08

Gracias @ mike & @ ray,

Deseo hacerlo más fácil.

En VS, en el menú Herramientas, haga clic en "Herramientas externas".

Herramientas Externas

Haga clic en Agregar.

Introduzca el título.

Comando: tfpt.exe

Argumentos: uu . / noget / recursivo

Directorio inicial :[ puede elegir entre el botón de flecha].

Deshacer sin cambios en la solución

Deshacer sin cambios en el proyecto

Se añaden dos nuevos comandos al menú Herramientas.

Utilícelos cuando sea necesario.

Disfruta,

Ofir

 114
Author: Ofir,
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
2012-09-06 06:42:42
  1. Haga clic con el botón derecho en su proyecto
  2. Seleccione deshacer pago, luego simplemente haga clic en Aceptar, o lo que quede de confirmación...
  3. Luego, mientras se deshace el proceso de pago, para cada archivo que tiene cambios REALES en él, un mensaje le pedirá que confirme la salida de ese archivo... simplemente haga clic en"No a todos"

Visual studio sabrá si el archivo extraído tiene cambios o ninguno.

ADVERTENCIA: Este método también elimina nuevos archivos , es decir, archivos que aún no están se registró en TFS. Si desea conservar estos archivos, simplemente excluirlos del conjunto de archivos que "deshacer".

 25
Author: Ray Lionfang,
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
2016-12-12 21:35:15

Si simplemente vuelve a revisar todos los archivos que ha revisado, TFS es lo suficientemente inteligente como para averiguar cuáles cambian y solo incluirlos en el conjunto de cambios que se graba en el servidor.

TFS hace esto comparando los hashes MD5 del contenido de los archivos antes y después del check-in.

Todo esto asume que su proceso de generación está actualizando puramente el mismo conjunto de archivos, es decir, nunca tendrá el caso en el que un archivo que se generó en una generación anterior sea no es necesario en la próxima generación (es decir, que desee colgar un borrado para ese archivo) o que los archivos cambien de nombre.

Si su proceso podría necesitar eliminar archivos, la mejor opción podría ser mirar el comando Team Foundation Power Tools ( tfpt ) y usar el comando tfpt online que solo revisará los archivos que han cambiado, y será lo suficientemente inteligente como para eliminar cualquier archivo que ya no sea necesario o añadir.

Buena suerte,

Martin.
 7
Author: Martin Woodward,
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-02-13 13:33:11

Tenga en cuenta que TFS undo no revertirá el valor "Date Modified" del Sistema de Archivos. Esto es muy frustrante, especialmente si utiliza herramientas como robocopy para sincronizar máquinas remotas. Incluso después de deshacer su pago, si guardó el archivo actualizando así el valor" Date Modified", ese valor actualizado se mantendrá incluso después de deshacer el pago.

 4
Author: evermeire,
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
2012-01-04 22:51:42

Hay un par de puntos con respecto a la opción uu para tfpt (recomendado en la mayoría de las otras respuestas) que no estaban claros para mí al principio. En primer lugar, esta es la ayuda de la línea de comandos a la que se puede acceder con el comando tfpt uu /?

Deshace los cambios redundantes pendientes. Si el estado de un elemento con una pendiente de cambio es el mismo que en el servidor, entonces el cambio es deshacer.

Uso: tfpt uu [/changeset: changesetnum] [/recursive] [/noget] [filespec...]

  • / conjunto de cambios Compare el espacio de trabajo con los estados del elemento en la versión del conjunto de cambios especificada en lugar de la última versión
  • filespec... Solo compruebe los filespecs listados para cambios redundantes
  • / recursive Compruebe los filespecs especificados con recursión completa
  • /noget No ejecutar get antes de comprobar

La opción /changeset no se puede usar con filespecs o /recursive.

Ahora permítanme desglosar el comando que se recomienda en las otras respuestas.

tfpt uu . /noget /recursive
  • tfpt uu especifica que queremos usar el comando 'Undo Unchanged'.
  • . indica (supongo) que el directorio de trabajo actual debe usarse como filespec.
  • /noget asegura que no se llame a 'get latest version' antes de deshacer los archivos sin cambios.
  • /recursive asegura que no solo el filespec será considerado sino todas las carpetas y archivos recursivos secundarios. Esto parece depender del filespec - si no hay ninguno siempre y cuando se procese todo el espacio de trabajo.

Así que hay un par de cosas a tener en cuenta aquí con respecto a la orden de arriba...

  • Depende del directorio de trabajo.
  • No procesa todo el espacio de trabajo.

He encontrado que el siguiente comando funciona mejor para mí: procesará todo el espacio de trabajo.

tfpt uu /noget

Tenga en cuenta que todavía depende del directorio de trabajo en que tfpt lo usa para determinar qué espacio de trabajo debe procesarse. Pero siempre y cuando proporcione una ruta a un archivo o carpeta dentro del espacio de trabajo, estará listo.

 3
Author: Scott Munro,
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
2015-12-11 07:47:32

Puedo ver el enfoque de Ray LionFang arriba. No puedo comentar allí ya que no tengo el rep. Mientras que me gusta este enfoque ya que no hay cambios necesarios para las Herramientas, etc........

  1. Haga clic derecho en su proyecto
  2. seleccione deshacer pago, luego simplemente haga clic en Aceptar, o lo que quede de confirmación...
  3. entonces, mientras deshace checkout, para cada archivo que tiene cambios REALES en él, un prompt pedirle que confirme la salida de ese archivo... simplemente haga clic en " No a Todos "
  4. Visual studio sabrá si el archivo extraído tiene cambios o ninguno. Tenga en cuenta que este método también elimina los archivos agregados que no son sin embargo, se registró en TFS...

.......hay un problema con ese enfoque en que golpear "No A Todos" conserva algunos archivos que no se modifican. Parece hacer algo como Deshacer archivos no modificados hasta que llega al primer archivo que realmente está modificado y luego ignora el resto de los archivos no modificados, si eso tiene sentido. Sólo he visto este efecto de vez en cuando.

Una posible solución es seguir el proceso anterior, pero en lugar de presionar "No A Todos", presione "No" para cada archivo. Dado que esto puede tomar un tiempo dependiendo del número de archivos con los que esté trabajando, lo que normalmente hago es mantener pulsado "ALT + N", y solo acelera a través de todos los archivos mientras deshace TODOS los archivos no modificados.

 2
Author: Ash,
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
2016-03-04 01:21:01

Por lo que he entendido, en TFS si realiza un proyecto de equipo, todo el proyecto se revisa y no tiene control de qué archivos se bajan. Si desea evitar checks a ciertos archivos, puede bloquearlos.

En el trabajo, todos odiamos TFS.

 -19
Author: achinda99,
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-02-13 00:48:52