Comando Reversión (Control de versiones de Team Foundation)
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Visual Studio 2019 | 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 anulan los efectos de los conjuntos de cambios que especifique.
Requisitos previos
Para usar este comando, debe tener los permisos de Lectura, Extraer del repositorio y Insertar en el repositorio establecidos en Permitir. Para más información, vea 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
Argument
Descripción
<ChangesetFrom>~<ChangesetTo>
Use este argumento con la opción /changeset
para especificar los conjuntos de cambios que quiere 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
- El conjunto de cambios más reciente,
/changeset:Tip
o/changeset:T
<ItemSpec>
Use este argumento para especificar uno o varios elementos que quiere 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 Uso de 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
Opción
Descripción
/changeset
Use esta opción para especificar uno o varios conjuntos de cambios específicos que quiere anular.
/keepmergehistory
Esta opción solo tiene un efecto si uno o varios de los conjuntos de cambios que va a revertir incluyen un cambio de rama o combinación. Especifique esta opción si quiere 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 evitar que otros usuarios inserten en el repositorio o extraigan del repositorio elementos hasta que termine de revertir todos los cambios asociados. Para más información, vea Descripción de los tipos de bloqueo.
Opciones de bloqueo:
None
. Predeterminada. 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 libere el bloqueo realizando una comprobación. Otros usuarios pueden consultar el elemento especificado, pero los usuarios no pueden insertar en el repositorio las revisiones hasta que se quite el bloqueo. No se puede bloquear un archivo que ya está bloqueado.Checkout
. Impide que los usuarios inserten o extraigan del repositorio un elemento bloqueado hasta que quite el bloqueo realizando una comprobación.
/login
Para obtener información sobre esta opción, consulte 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 quiere 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 anula el efecto de todos los conjuntos de cambios que se han aplicado desde la versión especificada.
/version
Especifica la versión actual de los archivos y carpetas que quiere revertir.
Observaciones
El comando tf rollback
anula 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 anula cada tipo de cambio.
Tipo de cambio revertdo | Tipo de cambio de reversión |
---|---|
agregar, rama o recuperar eliminados | delete |
edit | edit |
encoding | encoding |
cambiar de nombre/mover | cambiar de nombre/mover |
delete | undelete |
merge | Cambio que anula cualquier cambio combinado en la rama actual. |
En la lista siguiente se proporcionan algunos ejemplos de cambios resultantes del comando rollback
:
Revierte un conjunto de cambios en el que se produjo un cambio de agregar. La operación de reversión provoca un cambio de reversión y un cambio de eliminación.
Revierte el conjunto de cambios 521 en el que se produjo un cambio de edición. La operación de reversión provoca un cambio de reversión y un cambio de edición que anula el cambio de edición en el conjunto de cambios 521.
En el conjunto de cambios 132, fusionó $/BranchA/File1.txt a $/BranchB/File1.txt. Los cambios de esa combinación incluían cambios de edición 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 de reversión y un cambio de edición a $/BranchB/File1.txt que anula los cambios de edición 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 anula 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 anula 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 protegió 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ó el 31 de agosto de 2009 o antes de medianoche:
c:\workspace> tf rollback /toversion:D08/31/2009 /recursive $/OurTeamProject/
Ejemplo de la opción /keepmergehistory
Al revertir un conjunto de cambios que incluía una rama o un cambio de combinación, normalmente quiere que las combinaciones futuras entre el mismo origen y el mismo destino incluyan esos cambios. Sin embargo, puede usar la opción /keepmergehistory
si quiere futuras combinaciones entre el mismo origen y el mismo destino para excluir los conjuntos de cambios que se abarcaron en una operación de combinación anterior. Por ejemplo:
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 fusión mediante combinación se protegerá como parte del conjunto de cambios 292.
En julio, realiza varios cambios $/BranchA/Util.cs. Estos cambios se engloban en los conjuntos de cambios 297, 301 y 305.
El 1 de agosto de 2009, combinó $/BranchA/Util.cs a $/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 a $/BranchA/Util.cs ahora también se aplican a $/BranchB/Util.cs.
Una semana después, se da cuenta de que las modificaciones realizadas en $/BranchA/Util.cs en julio no son adecuadas para $/BranchB/Util.cs. Puede usar el comando
rollback
para anular estos cambios. Al usar el comandorollback
para revertir un cambio de combinación o un cambio de rama, tendrá que tomar una decisión.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 futuras combinaciones, escriba el siguiente comando:
c:\workspace> tf rollback /changeset:314 /keepmergehistory
Unas semanas después, se combina $/BranchA/ en $/BranchB/.
c:\workspace> tf merge $/BranchA $/BranchB
Si omite la opción
/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 aplica a $/BranchB/Util.cs todos los conjuntos de cambios que se aplicaron a $/BranchA/Util.cs desde el conjunto de cambios 292, excluyendo los conjuntos 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.