Compartir a través de


Comando Rollback (Control de versiones de Team Foundation)

Azure DevOps Services | Azure DevOps Server 2022: Azure DevOps Server 2019

Visual Studio 2019 | de Visual Studio 2022

Puede usar el comando Control de versiones de Team Foundation (TFVC) tf rollback para revertir los efectos de uno o varios conjuntos de cambios en uno o varios elementos controlados por versiones. Este comando no quita los conjuntos de cambios del historial de versiones de un elemento. En su lugar, este comando crea un conjunto de cambios pendientes en el área de trabajo que niega los efectos de los conjuntos de cambios que especifique.

Prerrequisitos

Para usar este comando, tenga los permisos Read, Check Outy Check In permisos establecidos en Permitir. Para obtener más información, consulte permisos predeterminados de TFVC.

Sintaxis

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

Argumentos

de argumentos de

descripción

<ChangesetFrom>~<ChangesetTo>

Use este argumento con la opción /changeset para especificar los conjuntos de cambios que desea revertir. Puede especificar los conjuntos de cambios de las maneras siguientes:

  • Un único conjunto de cambios, por ejemplo, /changeset:C11
  • Un intervalo de conjuntos de cambios, por ejemplo, /changeset:C7~C20
  • Una fecha, por ejemplo, /changeset:D09/30/09
  • Intervalo de fechas, por ejemplo, /changeset:D09/23/09~D10/07/09
  • Conjunto de cambios, /changeset:Tip o /changeset:T más recientes

<ItemSpec>

Use este argumento para especificar uno o varios elementos que desea revertir. Si usa la opción /toversion, debe especificar este argumento.

Para obtener más información sobre cómo TFVC analiza las especificaciones de elementos, consulte Usar comandos de control de versiones de Team Foundation.

Nota

Puede especificar más de un argumento itemspec.

<VersionSpec>

Valor proporcionado por el 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 específico. Puede especificar la versión de las maneras siguientes:

  • Un único conjunto de cambios, por ejemplo, /toversion:C32
  • Una fecha a medianoche, por ejemplo, /toversion:D06/19/09
  • Una fecha y una hora, por ejemplo, /toversion:D06/19/09T14:32
  • Una etiqueta, por ejemplo, /toversion:LTestLabel
  • La versión del área de trabajo que se asigna al directorio actual, /toversion:W
  • La versión de un área de trabajo específica, por ejemplo, /toversion:WResolveRIConflicts;AKerry

Para obtener más información sobre cómo TFVC analiza el versionspec, vea Usar comandos de control de versiones de Team Foundation.

Opciones

de opción de

descripción

/changeset

Use esta opción para especificar uno o varios conjuntos de cambios específicos que desea negar.

/keepmergehistory

Esta opción solo tiene un efecto si uno o varios de los conjuntos de cambios que va a revertir incluyen un de rama de o cambio de combinación. Especifique esta opción si desea que las combinaciones futuras entre el mismo origen y el mismo destino excluyan los cambios que va a revertir.

/lock

Especifique esta opción para impedir que otros usuarios inicien o desprotegan elementos hasta que termine de revertir todos los cambios asociados. Para obtener más información, consulte Descripción de los tipos de bloqueo.

Opciones de bloqueo:

  • None. Predeterminado. No se aplica ningún bloqueo. Si el archivo que va a revertir se ha bloqueado, esta opción quita el bloqueo.
  • Checkin. Bloquea un elemento hasta que se libera el bloqueo realizando una comprobación. Otros usuarios pueden consultar el elemento especificado, pero los usuarios no pueden proteger las revisiones hasta que se quite el bloqueo. No se puede bloquear un archivo que ya está bloqueado.
  • Checkout. Impide que los usuarios desproteger o desproteger un elemento bloqueado hasta que quite el bloqueo realizando una comprobación.

/login

Para obtener información sobre esta opción, vea Usar opciones para modificar cómo funciona un comando.

/noprompt

Use esta opción para suprimir los cuadros de diálogo que, de lo contrario, aparecerían durante esta operación.

/recursive

Especifique esta opción si desea que la operación incluya elementos en subcarpetas.

/toversion

Especifique esta opción para revertir un archivo a su estado en un conjunto de cambios específico. Cuando se usa esta opción, se niega el efecto de todos los conjuntos de cambios que se han aplicado desde la versión que especifique.

/version

Especifica la versión actual de los archivos y carpetas que desea revertir.

Observaciones

El comando tf rollback niega el efecto de cada conjunto de cambios que especifique para cada elemento que especifique. En la tabla siguiente se muestra cómo la operación niega cada tipo de cambio.

Tipo de cambio revertdo Tipo de cambio de reversión
agregar, ramao de recuperación eliminar
editar editar
de codificación de codificación
cambiar el nombre o mover cambiar el nombre o mover
eliminar de recuperación
de combinación Cambie que niega los cambios que se combinen en la rama actual.

En la lista siguiente se proporcionan algunos ejemplos de cambios resultantes del comando rollback:

  • Revertirá un conjunto de cambios en el que se produjo un agregar cambio. La operación de reversión provoca un cambio de reversión y un cambio de eliminar.

  • Revierte el conjunto de cambios 521 en el que se produjo un edición cambio. La operación de reversión provoca un cambio de reversión y un cambio editar que niega el editar cambio en el conjunto de cambios 521.

  • En el conjunto de cambios 132, ha combinado de $/BranchA/File1.txt a $/BranchB/File1.txt. Los cambios de esa combinación incluían editar cambios en los conjuntos de cambios 92 y 104. En el conjunto de cambios 162, revierte el conjunto de cambios 132, lo que da como resultado un cambio de reversión y un cambio de editar a $/BranchB/File1.txt que niega el editar cambios en los conjuntos de cambios 92 y 104.

Códigos de salida

Aparece un código de salida de la tabla siguiente después de ejecutar el comando tf rollback.

Código de salida Descripción
0 La operación revierte todos los elementos correctamente.
1 La operación revierte al menos un elemento correctamente, pero no pudo revertir uno o varios elementos.
100 La operación no pudo revertir ningún elemento.

Ejemplos

En el ejemplo siguiente 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 ejemplo siguiente se niega el efecto del conjunto de cambios 23 en el archivo a.txt:

c:\workspace> tf rollback /changeset:C23 a.txt

En el ejemplo siguiente se cambia el contenido de a.txt para que coincida con la versión que se ha protegido con el conjunto de cambios 23:

c:\workspace> tf rollback /toversion:C23 a.txt

En el ejemplo siguiente se cambia el contenido de OurTeamProject para que coincida con el último conjunto de cambios que se aplicó a medianoche el 31 de agosto de 2009:

c:\workspace> tf rollback /toversion:D08/31/2009 /recursive $/OurTeamProject/

Ejemplo de la opción /keepmergehistory

Cuando revierte un conjunto de cambios que incluía una rama 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 usar la opción /keepmergehistory si desea que las combinaciones futuras entre el mismo origen y el mismo destino excluyan los conjuntos de cambios que se abarcaron en una operación de combinación anterior. Por ejemplo:

  1. El 30 de junio de 2009, realiza una combinación completa de todos los elementos de $/BranchA/ a $/BranchB/.

    c:\workspace> tf merge $/BranchA $/BranchB
    

    Esta combinación se comprueba como parte del conjunto de cambios 292.

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

  3. El 1 de agosto de 2009, combinará $/BranchA/Util.cs en $/BranchB/Util.cs.

    c:\workspace> tf merge $/BranchA/Util.cs $/BranchB/Util.cs
    

    El cambio se comprueba como parte del conjunto de cambios 314. El resultado de esta operación es que las modificaciones realizadas en los conjuntos de cambios 297, 301 y 305 para $/BranchA/Util.cs ahora también se aplican a $/BranchB/Util.cs.

  4. Una semana después, se da cuenta de que las modificaciones realizadas para $/BranchA/Util.cs en julio no son adecuadas para $/BranchB/Util.cs. Puede usar el comando rollback para negar estos cambios. Al usar el comando rollback para revertir un combinar cambiar o cambiar una rama de , tiene la decisión de tomar.

    • Si quiere que los cambios realizados en $/BranchA/Util.cs en julio se vuelvan a aplicar a $/BranchB/Util.cs en futuras combinaciones, escriba el siguiente comando:

      c:\workspace> tf rollback /changeset:314
      
    • Si quiere que los cambios realizados en $/BranchA/Util.cs en julio nunca se vuelvan a aplicar a $/BranchB/Util.cs en combinaciones futuras, escriba el siguiente comando:

      c:\workspace> tf rollback /changeset:314 /keepmergehistory
      
  5. Unas semanas después, se combina $/BranchA/ en $/BranchB/.

    c:\workspace> tf merge $/BranchA $/BranchB
    
    • Si omitió la opción de /keepmergehistory al revertir, el cambio de combinación se aplica 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, la combinación deshace el cambio de reversión.

    • Si incluyó la opción /keepmergehistory al revertir, la operación de combinación se aplica 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, la combinación no deshace el cambio de reversión. Por lo tanto, es posible que el contenido de BranchA no coincida con el contenido de BranchB.