¿Cómo revierto un registro de TFS?

92

Me gustaría revertir un cambio que hice recientemente en TFS. En Subversion, esto fue bastante sencillo. Sin embargo, parece ser un dolor de cabeza increíble en TFS:

Opción 1: Obtenga una versión anterior

  1. Obtenga manualmente la versión anterior de cada archivo
  2. Echa un vistazo para editar
  3. Error: el pago (en VS2008) me obliga a obtener la última versión

Opción 2: Obtenga TFS Power Tools

  1. Descarga Team Foundation Power Tools
  2. Emitir comando de reversión desde la línea cmd
  3. Fallo: no funcionará si hay otros cambios pendientes

Opción 3: Deshacer cambios manualmente

  1. deshacer manualmente mis cambios, luego confirmar un nuevo conjunto de cambios

Pregunta

¿Cómo retrocedo a un conjunto de cambios anterior en TFS?

Jason
fuente
2
VSS no tiene reversión. Tienen otra característica que se llama "reversión", pero en términos de TFS es realmente una destrucción. (a) solo puedes hacerlo desde la punta; no funcionará si se han verificado cambios adicionales después del que desea revertir (b) ELIMINA PERMANENTEMENTE los cambios de la base de datos
Richard Berg
1
Oh, cuánto anhelo la facilidad de la reversión de VSS.
Greg
2
Me encontré con este problema recientemente: ¿por qué diablos es tan difícil retroceder en TFS? Revertir es una de las funciones básicas del control de fuente
JohnIdol
2
¡Esto es demasiado doloroso en TFS!
Jon Kragh
1
¡Cambia a Mercurial! Cambié de trabajo y me metí en TFS. He estado escribiendo scripts de PowerShell para que parezca Hg desde la línea de comandos desde entonces.
Sumo

Respuestas:

63
  1. Descargue e instale Team Foundation Power Tools .
  2. Abra el símbolo del sistema de Visual Studio
  3. Navegue hasta el directorio del sistema de archivos al que está asignado TFS. Si no lo hace, obtendrá un error "No se puede determinar el espacio de trabajo" cuando intente retroceder
  4. Asegúrese de que todo lo demás esté registrado o archivado
  5. ejecute tfpt rollback para abrir la interfaz.
  6. Elija los conjuntos de cambios que desea revertir
  7. Verifique las nuevas versiones de los archivos que revirtió

La gran desventaja de la herramienta es que querrá actualizar todo en su espacio de trabajo antes de que pueda fusionar. Solucioné este problema creando un nuevo espacio de trabajo solo para la reversión que se asignó directamente al lugar en el árbol de origen donde estaban los archivos afectados.

Si necesita ayuda para averiguar qué conjuntos de cambios debe revertir, encuentro muy útil la herramienta de revisión de código en el complemento gratuito Team Foundation Side Kicks .

Elefante
fuente
Puede intentarlo de esta manera, pero tenga cuidado, las herramientas no están bien documentadas, e incluso si puede superar todos los errores, es posible que realmente pueda o no retroceder. (Lo intenté durante 2 horas)
alquímico
1
Esta técnica funcionó para mí. La sugerencia del espacio de trabajo fue muy buena (y es importante si se trata de una base de código grande).
cloggins
1
Advertencia ... hay un problema 22 si está utilizando versiones no coincidentes de TFS y Visual Studio. Estoy usando VS2010 con TFS2008 (un caso clásico de TI que no se pone al día con dev) y TF.EXE con VS2010 ahora tiene reversión ... pero no funciona contra TFS2008. Y tfpt 2010 ha eliminado la reversión, por lo que no puedo hacerlo de la manera anterior.
Simon Gillbee
7
el comando 'rollback' se movió fuera de Power Tools para VS2010, por lo que ahora solo necesita escribir 'tf rollback': social.msdn.microsoft.com/Forums/en/tfspowertools/thread/…
Dan
A partir de la versión de agosto de 2011 de TFS Power Tools, para revertir, ya no es necesario utilizar la línea de comandos.
joerage
24

Su solución n. ° 1 funcionará: 1. obtenga manualmente la versión anterior de cada archivo

  1. echa un vistazo para editar

  2. Registre el archivo e ignore los cambios del servidor cuando se le solicite.

La razón por la que falló es porque debe tener activada la opción "Obtener la última versión del artículo al retirar". Desactive esta opción yendo a Herramientas ... Opciones ... Control de código fuente ... Visual Studio Tema Foundation Server y desmarcando "Obtener la última versión del elemento al retirar"

Salud

Happer
fuente
2
Simplemente lo hice de esta manera después de luchar 2 horas con herramientas eléctricas y no llegar a ninguna parte ... wtf es que TFS no admite esta funcionalidad básica ...
alquímico
La funcionalidad se agrega a TFS 2010 / Visual Studio 2010.
Robaticus
2
Para ser claros, esto no es un verdadero retroceso. Obtendrá una versión anterior. No es lo mismo.
Ryan Cromwell
+1 por señalar el problema con la configuración Obtener la última versión del artículo al pagar.
Sir Crispalot
18

La reversión se ha movido de tfpt.exe a tf.exe, la herramienta de control de versiones de Team Foundation.

TF - Team Foundation Version Control Tool, Version 10.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Rolls back the changes in a single or a range of changesets:
tf rollback /changeset:changesetfrom~changesetto [itemspec] [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]

tf rollback /toversion:versionspec itemspec [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]
Kevin Lo
fuente
1
¿Hay alguna forma de hacer esto directamente desde Visual Studio?
Kyle Delaney
14

Tiene dos opciones para revertir (revertir) un conjunto de cambios en TFS 2010 Version Control. La primera opción es usar la interfaz de usuario (si tiene instalada la última versión de TFS 2010 Power Tools ).

Revertir el conjunto de cambios en la interfaz de usuario para TFS 2010

La otra opción es utilizar la aplicación de línea de comandos de control de versiones de TFS 2010:

tf.exe rollback

Tengo información sobre ambos enfoques en la publicación de mi blog disponible aquí: http://www.edsquared.com/2010/02/02/Rollback+Or+Undo+A+Changeset+In+TFS+2010+Version+Control.aspx

Ed Blankenship
fuente
14

Otra forma de hacer que su opción 1 funcione es invertir el orden de los pasos:

  1. Mira los artículos
  2. Obtenga una versión específica de la versión anterior
  3. Regístrese (ignorando el cuadro de diálogo "La versión del servidor de advertencia es más reciente") O en la sección de conflictos del cuadro de diálogo Cambios pendientes resuelva los conflictos manteniendo la versión local.

Esto funcionará incluso si tiene configurado Obtener lo más reciente al finalizar la compra.

Dave Roberts
fuente
1
No funcionó para mí. Pero eso debe ser porque algún cabeza de alfiler configuró el TFS con políticas tontas.
SHODAN
5

Como referencia, si está utilizando TFS 2010 , aquí está el enlace al manual Rollback Command (Team Foundation Version Control) .

Para revertir un conjunto de cambios en particular , vaya a Visual Studio Command Prompt (2010) , navegue hasta el directorio de su espacio de trabajo TFS y escriba el comando:

tf rollback /changeset:C12345

¿Dónde 12345está su número de conjunto de cambios? Después de esto, le mostrará el registro de lo que hizo y tendrá que resolver los conflictos de fusión.

Иван Грозный
fuente
4

No tener una opción de reversión es en realidad una característica de TFS;)

Para revertir cambios:

  1. Consulte la versión específica de los cambios que desee
  2. Editar-> Seleccionar todo-> Copiar el texto en el archivo
  3. Verifique la versión del archivo que esté en el servidor
  4. Pegue el archivo y regístrese.

¡Y ahora también se guardan todos sus conjuntos de cambios intermedios antes de la reversión! ¡Qué gran característica!

CamelBlues
fuente
Al principio pensé que esto era sarcástico, pero esta solución puede funcionar para aquellos de nosotros que no tenemos la suerte de haber obtenido el permiso de reversión.
EBarr
A menos que posteriormente se hayan realizado cambios en los mismos archivos que realmente desea conservar.
Robert Jeppesen
Crudo, pero esta ha sido la única forma en que puedo realizar esto en TFS. Si hago un pago y luego recupero la versión anterior, TFS se fusionará automáticamente con la última versión cada vez que intente volver a registrarla.
Steve
1

Si hizo 1 registro y solo desea deshacerlo, tiene un conjunto de cambios # asociado. Haga un historial en la carpeta en cuestión para ver el conjunto de cambios incorrecto. Ábralo para ver los detalles (todos los archivos cambiados, etc.).

Creo que puede restaurar o deshacer un conjunto de cambios desde esa pantalla, pero mi Visual Studio se bloqueó cuando intenté hacer esto. / suspiro - Definitivamente comparto tu dolor.

¿Dónde descargo TFS en este sitio?

Ben Scheirman
fuente
No, la reversión de la interfaz de usuario del historial solo se agregó en TFS 2010.
Richard Berg
1

Ben Scheirman: el cuadro de diálogo Detalles del conjunto de cambios no tiene función de reversión.

jlo
fuente
1

Otra opción es TFSPlus . Este complemento de Visual Studio agrega (entre otros) el comando Obtener esta versión a la ventana del historial. Si ha extraído el archivo, lo reemplazará con esa versión. Si realiza una verificación después, efectivamente hará una reversión a esa versión.

Sin embargo, funciona en archivos individuales en lugar de conjuntos de cambios completos.

Damir Arh
fuente
1

Obtener una versión específica

En el menú desplegable Tipo de versión , seleccione Tipo como conjunto de cambios

Utilice el botón Changeset ... para encontrar su Changeset o simplemente escriba, si conoce este número.

Después de tener el conjunto de cambios específico.

Revisa

Registrarse

Gurú
fuente
0

Ninguna de estas soluciones funcionó del todo para mí. La solución de Dave Roberts fue la más cercana a lo que realmente hice funcionar. No tengo habilitada la opción Obtener la última versión del elemento al retirar, sin embargo, parece ser una política del servidor.

Mi solución a esto es verificar el archivo para editarlo, obtener una versión específica, luego, cuando se detecte el conflicto, use la herramienta de combinación (y combine manualmente ninguno de los cambios) para que el archivo esté en la condición en que estaba.

Iba a comparar con la versión específica y copiar todo el archivo y luego pegarlo encima del anterior.

¡Aún así debería haber una manera más fácil de hacer esto!

PJUK
fuente
0

La solución anterior es para TFS2008. TFS2010 tiene una función de reversión incorporada. consulte este artículo para obtener más detalles.

StarCub
fuente
Excepto que VS2010 (tf) no funciona contra TFS2008 y dado que TFPT 2010 ya no tiene reversión, está perdido.
Simon Gillbee
0

Instale la última versión de TFS Power Tools (agosto de 2011), y simplemente haga clic con el botón derecho en un conjunto de cambios y seleccione "Revertir todo el conjunto de cambios". No hay nada más fácil que eso.

Está disponible aquí: http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

Está insinuado en Mejoras de Team Explorer en la página anterior:

Una novedad en esta versión es la capacidad de [..] revertir fácilmente los cambios en el control de versiones.

Evgeniy Berezovsky
fuente