temporales recuperar que puede los guardan guardado fue donde descomprimir cómo comprimido como borrados archivos archivo abrir tfs version-control tfvc

recuperar - TFS: ¿Cómo se puede deshacer la extracción de archivos sin modificar en un archivo por lotes?



recuperar archivos zip borrados (9)

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

El comando "tfs undo" deshace el pago, pero solicita si algunos han sido modificados (lo que no queremos hacer). Tampoco queremos verificar los archivos generados de inmediato.

¿Existe un comando (o una serie de comandos) para deshacer la extracción de todos los archivos sin modificar sin preguntar al usuario?


  1. Haz clic derecho en tu proyecto
  2. Seleccione deshacer pago y envío, simplemente haga clic en Aceptar, o en la confirmación que quede ...
  3. Luego, al deshacer el proceso de pago, por cada archivo que tenga cambios REALES en él, un mensaje le pedirá que confirme el pago de ese archivo ... simplemente haga clic en "No a todos".

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 han registrado en TFS. Si desea conservar estos archivos, simplemente elimínelos del conjunto de archivos que "deshaga".



Gracias @mike y @ray,

Deseo hacerlo más fácil.

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

Haga clic en Agregar.

Ingresa el título.

Comando: tfpt.exe

Argumentos: uu. / noget / recursivo

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

Dos nuevos comandos se agregan al menú Herramientas.

Úselos cuando sea necesario.

Disfrutar,

Ofir


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

Deshace los cambios pendientes redundantes. Si el estado de un artículo con un cambio pendiente es el mismo que en el servidor, entonces el cambio se deshace.

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

  • / changeset Compare el espacio de trabajo con los estados de los elementos en la versión del conjunto de cambios especificada en lugar de la última versión
  • especificación de archivos ... Solo verifique las listas de archivos para ver los cambios redundantes
  • / recursivo Comprueba las especificaciones de archivo especificadas con recursión completa
  • / noget No ejecute get antes de verificar

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

Ahora déjame desglosar el comando que se recomienda en las otras respuestas.

tfpt uu . /noget /recursive

  • tfpt uu especifica que deseamos utilizar el comando ''Deshacer sin cambios''.
  • . indica (supongo) que el directorio de trabajo actual se debe usar como la especificación de archivos.
  • /noget asegura que no se llama a ''obtener la última versión'' antes de deshacer los archivos sin cambios.
  • /recursive garantiza que no solo se considerarán las especificaciones de archivos, sino también todas las carpetas y archivos secundarios recursivos. Esto parece depender de la especificación de archivos; si no se proporciona ninguno, se procesa todo el espacio de trabajo.

Entonces, hay un par de cosas para notar aquí con respecto al comando de arriba ...

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

Descubrí 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 el que tfpt lo usa para determinar qué área de trabajo debe procesarse. Pero siempre que proporcione una ruta a un archivo o carpeta dentro del área de trabajo, está listo para continuar.


Instale las herramientas de poder de Team Foundation Server y ejecute lo siguiente desde la línea de comando usando tfpt.exe en la raíz del directorio del espacio de trabajo de su proyecto:

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

Incluir /noget es muy recomendable ya que evita un ''obtener más reciente'' forzado de todos los archivos de su proyecto que, según el número total, puede llevar un tiempo extremadamente largo.


Por lo que yo entiendo, en TFS si realiza un proyecto de equipo, todo el proyecto está desprotegido y usted no tiene control sobre qué archivos se eliminan. Si desea evitar que se registren determinados archivos, puede bloquearlos.

En el trabajo, todos odiamos TFS.


Puedo ver el enfoque de Ray LionFang arriba. No puedo comentar allí ya que no tengo el representante. Aunque me gusta este enfoque, ya que no se requieren cambios en Herramientas, etc. ........

  1. Haz clic derecho en tu proyecto
  2. Seleccione Deshacer pago, luego simplemente haga clic en Aceptar, o en la confirmación que quede ...
  3. luego, mientras deshace el pago, para cada archivo que tenga cambios REALES en él, un mensaje le pedirá que confirme el pago de ese archivo ... simplemente haga clic en "No a todos".
  4. Visual Studio sabrá si el archivo desprotegido tiene cambios o ninguno. Tenga en cuenta que este método también elimina los archivos agregados que aún no se han registrado desde TFS ...

....... hay un problema con ese enfoque en que al presionar "No a todos" se conservan algunos archivos que no se modifican. Parece hacer algo así como deshacer archivos no modificados hasta que llegue al primer archivo que realmente se modificó y luego ignora el resto de los archivos no modificados, si eso tiene sentido. Solo he visto este efecto de vez en cuando.

Una solución potencial es seguir el proceso anterior, pero en lugar de presionar "No a todos", marque "No" para cada archivo. Como esto puede demorar un tiempo dependiendo de la cantidad de archivos con los que está trabajando, lo que normalmente hago es mantener presionada "ALT + N", y solo acelera en todos los archivos mientras deshace TODOS los archivos sin modificar.


Si simplemente vuelve a comprobar todos los archivos que ha desprotegido, TFS es lo suficientemente inteligente como para descubrir cuáles cambian y solo incluirlos en el conjunto de cambios que está registrado en el servidor.

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

Todo esto supone que su proceso de generación simplemente 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 sea necesario en la próxima generación (es decir, desea suspender una eliminación). para ese archivo) o que los archivos cambian de nombre.

Si su proceso podría necesitar la eliminación de archivos, la mejor opción podría ser mirar el comando Team Foundation Power Tools ( tfpt ) y usar el comando en línea tfpt que solo revisará los archivos que han cambiado y será lo suficientemente inteligente como para pend borra los archivos que ya no se necesitan o cambia el nombre y agrega pend.

Buena suerte,

Martín.


Tenga en cuenta que TFS deshacer 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 salida, si guardó el archivo actualizando así el valor de "Fecha de modificación", ese valor actualizado se mantendrá incluso después de deshacer la compra.