Visual Studio TFS muestra archivos sin cambios en la lista de cambios pendientes

94

Veo un archivo en la ventana de cambios pendientes. Intento compararlo con la última versión y aparece el mensaje "Los archivos son idénticos". Si los archivos son idénticos, ¿por qué aparece este archivo en la ventana de cambios pendientes? ¿Qué cambió en este archivo? ¿Puedo configurar TFS para que no enumere archivos idénticos?

desarrollador
fuente
¿Acaso su antivirus está actualizando la última fecha de modificación de los archivos? ¿O está trabajando en una computadora portátil encriptada?
DOK
ScottGu explica cómo el antivirus puede cambiar estas fechas en este artículo (busque "virus") weblogs.asp.net/scottgu/archive/2006/09/22/…
DOK
58
Esta tiene que ser una de las "características" de TFS más molestas
Brad Thomas
También tengo este problema - TF funciona, pero TFPT no - Creo que es porque estoy usando "TFPT - Team Foundation Power Tools 2012" con el espacio de trabajo de Visual Studio 2010 ...: - /
BrainSlugs83
Parece que todo lo que tuve que hacer fue conectarme a la misma colección en Visual Studio 2012. Vea esta publicación para obtener más detalles: stackoverflow.com/questions/1758606/…
BrainSlugs83

Respuestas:

49

Esto es normal si un archivo se desprotege automáticamente debido a un cambio, y si finalmente el contenido del archivo vuelve a su estado original. En ese punto, verá el mensaje sobre contenidos idénticos al compararlos.

Esta entrada de blog describe una forma no tan intuitiva de lidiar con esto; y en los comentarios hay una sugerencia aún mejor sobre cómo manejarlo a través de la línea de comando a través de herramientas eléctricas TFS.

Cambios pendientes de TFS ignorando archivos idénticos ...

enablor
fuente
12
Recomiendo encarecidamente que utilice la tfpt uuherramienta eléctrica y no la solución hacky "No To All". Solo los agregados y las ediciones modificadas reciben este mensaje. Por ejemplo: la interfaz de usuario deshará los cambios de nombre (que solo están pendientes de cambio de nombre, no de cambio de nombre + edición) sin preguntar.
Edward Thomson
8
En caso de que la publicación original del blog desaparezca, el comando es tfpt uu /noget /r *, que debe ejecutarse desde la raíz de la rama. Al decir esto, aunque detecta correctamente los cambios redundantes, luego afirma deshacerlos, todavía los veo como comprobados en VS y en el cuadro de diálogo Registrar, por lo que me parece roto: /
Mike Chamberlain
2
Otra posibilidad de que esto suceda es si cambia el bit de "solo lectura" de un archivo sin cambiar realmente su contenido. TFS puede ser molesto a veces.
arviman
1
Como referencia, la solución "No a todos" se copia aquí desde el enlace: "Otra opción es" Deshacer el pago "todos los cambios y hacer clic en" No a todos "cuando se le solicite que confirme para deshacer el pago. De esta manera, Visual Studio "Deshacer el checkout" todos los archivos que no se modifican, y todos los archivos modificados permanecerán desprotegidos. Yo siempre uso este método ".
PJSimon
Ese truco de "No a todos" es bueno, pero tiene algunos inconvenientes. Por ejemplo, uso mi herramienta para generar clases DB EntityFramework. Los genero en un directorio externo y luego los arrastro a mi solución. A veces, cuando no hay cambios, todavía muestra cambios. Este truco de "No a todos" los elimina. Pero si se agregan nuevas clases, que no estaban allí antes, las elimina del control de fuente; tengo que agregarlas nuevamente con la mano.
Deseo
17

Recientemente, acabo de actualizar VS2010 a VS 2013, y este problema es aún peor. Cuando usa comparar, los archivos que son idénticos no aparecen en absoluto. Odio esto porque no podría averiguar qué archivos se han cambiado realmente hasta que compruebe los archivos de comparación con cuidado.

Finalmente descubrí una solución para esto:
agregue "Deshacer pagos sin cambios" en las herramientas externas:

  • Mando: tfpt.exe
  • Argumentos: uu . /noget /recursive
  • Directorio inicial: $(SolutionDir)

Después de ejecutar este comando, TFS deshará automáticamente todos los cambios redundantes en los archivos.
Pero estos archivos aún mantienen el estado de desprotección, en realidad ya están deshacidos y son los mismos que en la última versión. Creo que es un error en TFS. Solo necesita hacer clic en el ícono Actualizar en la barra de herramientas debajo del Explorador de soluciones, estos archivos se actualizarán y mostrarán el estado correcto.

zmaggie
fuente
2
He ejecutado "tfpt uu. / Noget / recursive" y afirma que no hay cambios pendientes redundantes en el espacio de trabajo. VS2015, TFPT 2015. Todos mis cambios son cambios vacíos [fusionar].
fastmultiplication
Lo había intentado sin éxito. Eliminar el punto del argumento parece hacer que funcione correctamente: uu / noget / recursive
dperez
10

Para aclarar la explicación anterior:

  1. Instale TFS Power Tools usando el administrador de paquetes NuGet en VS.
  2. Abra el símbolo del sistema de Visual Studio (también llamado símbolo del sistema para desarrolladores para VS 2013/2015) desde el Inicio de Windows.
  3. Navegue hasta la ubicación raíz de su espacio de trabajo local a través del símbolo del sistema.
  4. Ejecute este comando: tfpt uu. / recursive / noget
  5. Elija descartar los cambios redundantes si se le solicita.

Trabajó para mi.

Más lejos:

A veces me he dado cuenta de que necesito ejecutar el comando en el indicador de apertura del símbolo del sistema del desarrollador (y obteniendo un error de espacio de trabajo no encontrado), antes de navegar a la carpeta del espacio de trabajo y ejecutar allí. Si voy directamente a la carpeta correcta, no se encuentra el comando. (No me importaría una solución a ese problema en sí mismo).

Phil
fuente
Gracias desde el 30 de noviembre de 2015. Sigo recibiendo el mismo problema una y otra vez y tu respuesta fue perfecta. Intenté votarte a favor, pero obtuve algún tipo de error de "espacio-tiempo continuo". Algo que ver con el 30 de noviembre de 1955 y "requirió 1,21 gigavatios no encontrados".
Phil
Desafortunadamente, no me funciona. Unable to determine the workspace. Ya intenté actualizar la memoria caché del espacio de trabajo, sin éxito. Después de 2 horas, me rendiré y comprobaré los archivos no modificados para deshacerme de ellos.
C4d
@ C4u Es posible que haya empezado a experimentar eso yo mismo, desde que me mudé a VS 2015. Sin embargo, el problema con los archivos extraídos ha desaparecido. Veré qué puedo averiguar.
Phil
1
No pude encontrar PowerTools usando NuGet, pero pude encontrarlo e instalarlo a través de una búsqueda en Google "Microsoft Visual Studio Team Foundation Server 2013 Power Tools"
Colin
@Versatile Mirando Visual Studio 2017, necesitaría ir a 'Herramientas'> 'Extensiones y actualizaciones ...' No recuerdo la estructura del menú en 2013/15. Quizás mi respuesta requiera corrección. Si tiene VS 2013/15 y puede verificar la estructura del menú, no dude en editar mi respuesta. :)
Phil
1

Stage AllResolví esto haciendo clic en el botón en Cambios y luego desactivándolos conUnstage All .

Resolvió el archivo sin cambios que tenía en mi Changessección. Agradable y sencillo.

Tom 'Blue' Piddock
fuente
0

Visual Studio 2012 introdujo un nuevo concepto llamado Espacio de trabajo local .

Cuando la ubicación del espacio de trabajo está configurada para ser local, colocará una copia local del archivo original (como SVN / CVS).

Luego ocultará automáticamente los archivos sin cambios de los cambios pendientes.

Utilice el Explorador de control de código fuente de TFS para "Editar ..." el espacio de trabajo de TFS y cambie la configuración "Avanzado ..." - Ubicación del servidor a Local.

Rolf Kristensen
fuente
Mi espacio de trabajo es local, pero los archivos sin modificar todavía aparecen en cambios pendientes ... No deshace automáticamente el check-out ...
Ozkan
0

Para mí, reconciliar el espacio de trabajo resuelve estos cambios pendientes no válidos:

  1. Team Explorer -> Construcciones
  2. Haga clic derecho en la última compilación con sus cambios -> "Reconciliar el espacio de trabajo ..."
AnonyMouse
fuente