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:

  • Un conjunto de cambios único

    Ejemplo: /changeset:C11

  • Un intervalo de conjuntos de cambios

    Ejemplo: /changeset:C7~C20

  • Una fecha

    Ejemplo: /changeset:D09/30/09

  • Un intervalo de fechas

    Ejemplo:/changeset:D09/23/09~D10/07/09

  • El conjunto de cambios más reciente

    Ejemplo: /changeset:Tip o /changeset:T

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).

NotaNota
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:

  • Un conjunto de cambios único

    Ejemplo: /toversion:C32

  • Una fecha (en la medianoche)

    Ejemplo: /toversion:D06/19/09

  • Fecha y hora

    Ejemplo: /toversion:D06/19/09T14:32

  • Una etiqueta

    Ejemplo: /toversion:LTestLabel

  • La versión del área de trabajo que está asignada al directorio actual.

    Ejemplo: /toversion:W

  • La versión en una área de trabajo concreta

    Ejemplo: /toversion:WResolveRIConflicts;AKerry

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

  • Ninguno

    Valor predeterminado. No se aplica ningún bloqueo. Si el archivo que se está revirtiendo está bloqueado, esta opción quitará el bloqueo.

  • Checkin

    Bloquea un elemento hasta que se libere el bloqueo realizando una protección. Otros usuarios pueden desproteger los elementos especificados, pero no pueden proteger las revisiones hasta que se quite el bloqueo. No puede bloquear ningún archivo que ya esté bloqueado.

  • Checkout

    Evita que los usuarios puedan proteger o desproteger un elemento bloqueado hasta que se quite el bloqueo realizando una protección.

/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:

  1. 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.

  2. En julio, realiza varios cambios en $/BranchA/Util.cs. Estos cambios se engloban en los conjuntos de cambios 297, 301 y 305.

  3. 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.

  4. 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
      
  5. 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

Comando merge

Conceptos

Operaciones disponibles sólo desde la línea de comandos (Control de versiones de Team Foundation)

Otros recursos

Comandos de la utilidad Tf de la línea de comandos