2011-10-13 8 views
59

¿Cómo puedo averiguar qué conjunto de cambios que tengo actualmente en mi espacio de trabajo local?actual Identificación del conjunto de cambios en el espacio de trabajo para TFS

Claro, puedo elegir un archivo y ver su historia. Sin embargo, si ese archivo no se actualizó recientemente, es probable que su conjunto de cambios sea anterior a los archivos actualizados más recientemente en la misma solución.

Un posible error que podemos hacer es que vemos la historia en el archivo de solución, sin embargo, el archivo de solución no suele cambiar a menos que se va a añadir un nuevo proyecto/hacer cambios a nivel de solución.

Al final de averiguar el conjunto de cambios que necesito recordar lo que fueron los últimos archivos modificados y ver su historia.

¿Hay una mejor manera de hacerlo?

+0

¿Qué versión de TFS? –

+0

¿Por qué quiere saber su conjunto de cambios actual? –

+0

¿Qué sucede cuando su espacio de trabajo no es representativo de un conjunto de cambios? Considere que tiene asignado '$/A', y ha recuperado el conjunto de cambios A, y ha asignado' $/B', y ha recuperado el conjunto de cambios B. ¿En qué conjunto de cambios está su espacio de trabajo? –

Respuesta

0

Si desea utilizar PowerShell (see also; equivalente a responder de @kroonwijk):

  1. permiten TFS SnapIn (una vez, si no está ya)

    add-pssnapin Microsoft.TeamFoundation.PowerShell

  2. uso TFS cmdlet para obtener ID de conjunto de cambios actual

    Get-TfsItemHistory <PATH_TO_PROJECT> -Recurse -Stopafter 1 -Version W

0

La respuesta común, para usar tf.exe history . /r hace directamente el trabajo, pero puede ser terriblemente lento. En nuestro caso, tarda de 10 a 15 segundos. Ahora uso una verificación en dos etapas, primero comprobando la revisión de algunos archivos arbitrarios (estoy usando los archivos en la carpeta raíz).

Con PowerShell:

$tfexepath = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\tf.exe" 
$localpath = "C:\some\tfs\directory" 

$result = & $tfexepath history $localpath /noprompt /stopafter:1 /version:W 
"$result" -match "\d+" | out-null 
$id = $matches[0] 

Y luego, a continuación, utilizando el indicador/r, pero limitar la búsqueda para iniciar a partir de la revisión encontró arriba:

$result2 = & $tfexepath history $localpath /r /noprompt /stopafter:1 /version:$id~W   
"$result2" -match "\d+" | out-null 
$id2 = $matches[0] 

#result: 
Write-Host $id2 

Cuatro nuestra base de código, esto reduce el tiempo total de 10-15 a 1.4-1.5 segundos.

Por lo que yo entiendo no hay inconvenientes o limitaciones, pero supongo que podría ser más lento en un pequeño repositorio. - Me gustaría saberlo.

Cuestiones relacionadas