Comando Rollback (Control de versiones de Team Foundation)
Puede utilizar este comando para deshacer los efectos de uno o más conjuntos de cambios en uno o más elementos sujetos a control de versiones. Este comando no quita los conjuntos de cambios del historial de versiones de un elemento. En su lugar, este comando crea en el área de trabajo un conjunto de cambios pendientes que niegan los efectos de los conjuntos de cambios especificados.
Permisos necesarios
Para utilizar este comando, debe tener los permisos Leer, Desproteger y Proteger establecidos en Permitir. Para obtener más información, vea Permisos de Team Foundation Server.
tf rollback /toversion:VersionSpec ItemSpec [/recursive] [/lock:none|checkin|checkout] [/version:versionspec] [/keepmergehistory] [/login:username,[password]] [/noprompt]
tf rollback /changeset:ChangesetFrom~ChangesetTo [ItemSpec] [/recursive] [/lock:none|checkin|checkout] [/version:VersionSpec]
[/keepmergehistory] [/noprompt] [/login:username,[password]]
Parámetros
Argumento |
Descripción |
---|---|
ChangesetFrom~ChangesetTo |
Utilice este argumento con la opción /changeset para especificar los conjuntos de cambios que desea deshacer. Puede especificar los conjuntos de cambios de cualquiera de las siguientes maneras:
|
ItemSpec |
Utilice este argumento para especificar uno o más elementos que desea deshacer. Si usa la opción /toversion, deberá especificar este argumento. Para obtener más información sobre cómo Team Foundation analiza las especificaciones de elementos, vea Sintaxis de la línea de comandos (Control de versiones).
Nota
Puede especificar más de un argumento Itemspec.
|
VersionSpec |
El valor proporcionado por usuario para la opción /version y la opción /toversion. Use este argumento con la opción /toversion para revertir un archivo a su estado en un conjunto de cambios concreto. Puede especificar la versión de cualquiera de las siguientes maneras:
Para obtener más información sobre cómo Team Foundation analiza las especificaciones de versión, vea Sintaxis de la línea de comandos (Control de versiones). |
Opción |
Descripción |
---|---|
/changeset |
Utilice esta opción para especificar uno o más conjuntos de cambios concretos que desea negar. |
/keepmergehistory |
Esta opción sólo tiene efecto si uno o más de los conjuntos de cambios que está deshaciendo incluye un cambio branch o merge. Especifique esta opción si desea que las combinaciones futuras entre el mismo origen y el mismo destino excluyan los cambios que está deshaciendo. Para obtener más información, vea Ejemplo: /keepmergehistory (opción). |
/lock |
Especifique esta opción para evitar que otros usuarios protejan o desprotejan elementos hasta que termine de deshacer todos los cambios asociados. Para obtener más información, vea Introducción a los tipos de bloqueo. Opciones de bloqueo
|
/login |
Para obtener más información sobre esta opción, vea Opciones de la línea de comandos. |
/noprompt |
Suprime los cuadros de diálogo que, de lo contrario, se mostrarían durante esta operación. |
/recursive |
Especifique esta opción si desea que la operación incluya elementos de subcarpetas. |
/toversion |
Especifique esta opción para revertir un archivo a su estado en un conjunto de cambios concreto. Al utilizar esta opción, niega el efecto de todos los conjuntos de cambios aplicados desde la versión que especifique. |
/version |
Especifica la versión actual de los archivos y carpetas que desea revertir. |
Comentarios
El comando tf rollback niega el efecto de cada conjunto de cambios que especifica para cada elemento que especifica. La siguiente tabla enumera cómo la operación niega cada tipo de cambio.
Si revierte este cambio... |
...una reversión y el cambio siguiente se llevan a cabo |
---|---|
add, branch o undelete |
delete |
edit |
edit |
encoding |
encoding |
rename/move |
rename/move |
delete |
undelete |
merge |
El cambio que niega los cambios que se combinaron con la bifurcación actual. |
La siguiente lista proporciona algunos ejemplos de cambios que son el resultado del comando de reversión:
Si revierte un conjunto de cambios donde se ha producido un cambio add , la operación de reversión producirá un cambio rollback y un cambio delete.
Si revierte un conjunto de cambios 521 donde se ha producido un cambio edit, la operación de reversión producirá un cambio rollback y un cambio edit que niega los cambios definidos por el cambio edit en el conjunto de cambios 521.
En el conjunto de cambios 132, se combinó $/BranchA/File1.txt con $/BranchB/File1.txt. Los cambios incluidos en esa combinación incluyeron los cambios de edit en los conjuntos de cambios 92 y 104. En el conjunto de cambios 162, se revierte el conjunto de cambios 132, lo que da lugar a un cambio rollback y un cambio edit en $/BranchB/File1.txt que niega los cambios de edición realizados en los conjuntos de cambios comprendidos entre 92 y 104.
Códigos de salida
Los códigos de salida de la siguiente tabla aparecen después de ejecutar el comando tf rollback.
Código de salida |
Descripción |
---|---|
0 |
La operación deshizo todos los elementos correctamente. |
1 |
La operación deshizo por lo menos un elemento correctamente pero no pudo deshacer uno o más elementos. |
100 |
La operación no pudo deshacer ningún elemento. |
Ejemplos
En el siguiente ejemplo se niega el efecto del conjunto de cambios 23 en todos los elementos que se cambiaron en ese conjunto de cambios.
c:\workspace> tf rollback /changeset:C23
En el siguiente ejemplo se niega el efecto del conjunto de cambios 23 en el archivo a.txt.
c:\workspace> tf rollback /changeset:C23 a.txt
En el siguiente ejemplo se cambia el contenido de a.txt para coincidir con la versión que se protegió con el conjunto de cambios 23.
c:\workspace> tf rollback /toversion:C23 a.txt
En el siguiente ejemplo se cambia el contenido de OurTeamProject para coincidir con el último conjunto de cambios que se aplicó en o antes de la medianoche del 31 de agosto de 2009.
c:\workspace> tf rollback /toversion:D08/31/2009 /recursive $/OurTeamProject/
Ejemplo: /Opción keepmergehistory
Al deshacer un conjunto de cambios que incluye una bifurcación o un cambio de combinación, normalmente desea que las combinaciones futuras entre el mismo origen y el mismo destino incluyan esos cambios. Sin embargo, puede utilizar la opción /keepmergehistory si desea que las futuras combinaciones entre el mismo origen y el mismo destino excluyan los conjuntos de cambios que formaban parte de una operación de combinación anterior.
Por ejemplo, puede utilizar este comando en la siguiente situación:
El 30 de junio de 2009, realiza una combinación completa de todos los elementos de $/BranchA/ con $/BranchB/:
c:\workspace> tf merge $/BranchA $/BranchB
Proteja esta combinación como parte del conjunto de cambios 292.
En julio, realiza varios cambios en $/BranchA/Util.cs. Estos cambios se engloban en los conjuntos de cambios 297, 301 y 305.
El 1 de agosto de 2009, combina $/BranchA/Util.cs con $/BranchB/Util.cs:
c:\workspace> tf merge $/BranchA/Util.cs $/BranchB/Util.cs
Proteja el cambio como parte del conjunto de cambios 314. El resultado de esta operación es que las ediciones realizadas en los conjuntos de cambios 297, 301 y 305 a $/BranchA/Util.cs se aplican ahora también a $/BranchB/Util.cs.
Una semana después, se da cuenta de que los cambios hechos en $/BranchA/Util.cs en julio no son adecuados para $/BranchB/Util.cs. Puede utilizar el comando de reversión para negar estos cambios. Al utilizar el comando de reversión para revertir un cambio merge o un cambio branch, tiene que tomar una decisión.
Si en combinaciones futuras desea volver a aplicar a $/BranchB/Util.cs los cambios realizados durante el mes de julio en $/BranchA/Util.cs, escriba el siguiente comando:
c:\workspace> tf rollback /changeset:314
Si en combinaciones futuras no desea volver a aplicar nunca a $/BranchB/Util.cs los cambios realizados durante el mes de julio en $/BranchA/Util.cs, escriba el siguiente comando:
c:\workspace> tf rollback /changeset:314 /keepmergehistory
Unas semanas después, combina $/ BranchA/ con $/ BranchB/:
c:\workspace> tf merge $/BranchA $/BranchB
Si omitió la opción /keepmergehistory, el cambio merge aplicará a $/BranchB/Util.cs todos los conjuntos de cambios que se aplicaron a $/BranchA/Util.cs desde el conjunto de cambios 292, incluidos los conjuntos de cambios 297, 301 y 305. En otras palabras, una combinación futura deshará el cambio rollback.
Si incluyó la opción /keepmergehistory, la operación de combinación aplicará a $/BranchB/Util.cs todos los conjuntos de cambios que se aplicaron a $/BranchA/Util.cs desde el conjunto de cambios 292, excepto los conjuntos de cambios 297, 301 y 305. En otras palabras, una combinación futura no deshará el cambio de reversión. Por consiguiente, el contenido de BranchA podría no coincidir con el contenido de BranchB.
Vea también
Referencia
Conceptos
Operaciones disponibles sólo desde la línea de comandos (Control de versiones de Team Foundation)