Usamos un archivo por lotes para generar código, y desprotege automáticamente 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 con anticipación.
El comando "tfs deshacer" deshace el pago, pero pregunta si algunos han sido modificados (lo que no queremos hacer). Tampoco queremos registrar los archivos generados de inmediato.
¿Existe un comando (o una serie de comandos) para deshacer el pago de todos los archivos no modificados sin avisar al usuario?
tfs
version-control
tfvc
Robert Wagner
fuente
fuente
ADD
cambios sin preguntar (consulte la respuesta de Ray ).Respuestas:
Eche un vistazo al comando Deshacer sin cambios de Team Foundation Server Power Tools Agosto de 2011
Gracias Matt Florence por la actualización del enlace.
Gracias Ray Vega por la sintaxis real .
fuente
Instale Team Foundation Server Power Tools y ejecute lo siguiente desde la línea de comandos usando tfpt.exe en la raíz del directorio del espacio de trabajo de su proyecto:
c:\myProject> tfpt uu . /noget /recursive
Incluyendo
/noget
es muy recomendable ya que impide una forzados 'recibir las últimas' de todos los archivos de su proyecto, que dependiendo del número total puede tomar un tiempo extremadamente largo.fuente
cd
a donde está su directorio de espacio de trabajo (por ejemplo, el mío erac:\myProject
) o incluirlo explícitamente despuésuu
(reemplazar el período.
con él)Gracias @mike & @ray,
Deseo hacerlo más fácil.
En VS, en el menú Herramientas, haga clic en "Herramientas externas".
Haz clic en Agregar.
Ingrese el título.
Comando: tfpt.exe
Argumentos: uu. / noget / recursivo
Directorio inicial: [puede elegir desde el botón de flecha].
Se agregan dos nuevos comandos al menú Herramientas.
Úselos cuando sea necesario.
Disfrutar,
Ofir
fuente
Visual Studio sabrá si el archivo desprotegido tiene cambios o ninguno.
ADVERTENCIA: Este método también elimina archivos nuevos , es decir, archivos que aún no se registraron en TFS. Si desea conservar estos archivos, simplemente debe excluirlos del conjunto de archivos que "deshace".
fuente
Be aware that this method also removes added files that are not yet checked in from TFS.
... sí, eso es un descalificador bastante inmediato.Se actualizó esta pregunta con una respuesta cuando se trabaja solo con TFS2017 y VS2017 / VS2019 .
Las herramientas eléctricas no existen para TFS 2017 y las antiguas no pueden funcionar bien con ellas, pero aparentemente la mayor parte de la funcionalidad se ha trasladado a VS2017 o a los complementos (ver más abajo).
Extensión Visual Studio 2017/2019
Algunas acciones como deshacer archivos sin cambios se han movido a un
extensión para VS2017
extensión para VS2019
Ubicación del botón "Deshacer sin cambios":
Error conocido
Debe abrir el 'Explorador de control de código fuente' (y dejarlo abierto) para que se muestre 'Deshacer sin cambios' en el menú Acción de la vista Cambios pendientes. reportado aquí .
Extensión de integración de Windows Shell
Además, aún puede configurar la integración de shell de Windows a través de un instalador separado que ya no está vinculado a TFS Power Tools.
La integración de shell de Windows no funciona exactamente igual que las herramientas de herramientas anteriores, pero las acciones más importantes me funcionaron.
fuente
Si simplemente vuelve a verificar todos los archivos que retiró, TFS es lo suficientemente inteligente como para descubrir cuáles son los cambios y solo incluirlos en el conjunto de cambios que se registra en el servidor.
TFS hace esto comparando los hash MD5 del contenido de los archivos antes y después del check-in.
Todo esto supone que su proceso de generación solo está actualizando el mismo conjunto de archivos, es decir, nunca tendrá el caso en el que un archivo que se generó en una generación anterior no es necesario en la próxima generación (es decir, querría suspender una eliminación para ese archivo) o que los archivos cambien de nombre.
Si su proceso podría necesitar la eliminación de archivos, lo mejor sería mirar el comando Team Foundation Power Tools ( tfpt ) y usar el comando tfpt en línea que solo verificará los archivos que han cambiado y será lo suficientemente inteligente como para pend se elimina para cualquier archivo que ya no sea necesario o que se haya cambiado de nombre y pend agrega.
Buena suerte,
Martín.
fuente
Tenga en cuenta que deshacer TFS no revertirá el valor "Fecha de modificación" 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 desprotección, si guardó el archivo actualizando así el valor de "Fecha de modificación", ese valor actualizado se mantendrá incluso después de deshacer el pago.
fuente
Hay un par de puntos con respecto a la opción uu para tfpt (recomendado en la mayoría de las otras respuestas) que al principio no me quedaron claros. En primer lugar, esta es la ayuda de la línea de comandos a la que se puede acceder con el comando
tfpt uu /?
Ahora déjame desglosar el comando que se recomienda en las otras respuestas.
tfpt uu
especifica que deseamos utilizar el comando 'Deshacer sin cambios'..
indica (supongo) que el directorio de trabajo actual debe usarse como especificación de archivo./noget
asegura que no se llame a 'obtener la última versión' antes de deshacer los archivos sin cambios./recursive
garantiza que no solo se considerará la especificación de archivos, sino todas las carpetas y archivos secundarios recursivos. Esto parece depender de la especificación del archivo: si no se proporciona ninguno, se procesa todo el espacio de trabajo.Así que hay un par de cosas a tener en cuenta aquí con respecto al comando desde arriba ...
He descubierto 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 que proporcione una ruta a un archivo o carpeta dentro del espacio de trabajo, está listo para comenzar.
fuente
Puedo ver el enfoque de Ray LionFang arriba. No puedo comentar allí ya que no tengo el representante. Si bien me gusta este enfoque, ya que no se requieren cambios en las herramientas, etc.
....... hay un problema con ese enfoque en que presionar "No a todos" retiene algunos archivos que no se modifican. Parece hacer algo como Deshacer archivos no modificados hasta que llega al primer archivo que está realmente modificado y luego ignora el resto de los archivos no modificados, si eso tiene sentido. Solo 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 llevar un tiempo dependiendo de la cantidad de archivos con los que esté trabajando, lo que normalmente hago es mantener presionada la tecla "ALT + N", y simplemente acelera a través de todos los archivos mientras deshace TODOS los archivos no modificados.
fuente
Según tengo entendido, en TFS si desprotege un proyecto de equipo, se desprotege todo el proyecto y no tiene control de qué archivos se eliminan. Si desea evitar registros en ciertos archivos, puede bloquearlos.
En el trabajo, todos odiamos TFS.
fuente