2010-05-05 10 views
188

Quiero revertir los cambios desde uno de mis registros. En el menú contextual del botón derecho de la lista de cambios particular, existen estas dos opciones:¿Cuál es la diferencia entre "Retroceder ..." y "Volver a enviar Changelist enviado #####" en Perforce P4V

  • Rollback ...
  • de vuelta Enviado Lista de cambios

¿Cuál es la diferencia entre estos dos? ¿En qué situaciones debería usar cualquiera de los dos?

+3

En este caso, 'Back Back enviado Changelist' era la opción correcta para mi situación (solo quería revertir los cambios desde el registro). Gracias por las buenas respuestas. –

Respuesta

210

Ambas operaciones restauran un conjunto de archivos a un estado anterior y son esencialmente formas más rápidas y seguras de deshacer errores que utilizando el comando p4 obliterate (y no necesita acceso de administrador para usarlos).

En el caso de "Rollback ...", esto podría ser cualquier número de archivos, incluso un depósito completo. Puede indicarle que retroceda a una revisión, lista de cambios o etiqueta específica. Los archivos se restauran al estado en el que se encontraban en el momento de la creación de esa revisión, lista de cambios o etiqueta.

En el caso de "Volver a enviar Changelist enviado #####", la operación de restauración está restringida a los archivos que se enviaron en la lista de cambios #####. Esos archivos se restauran al estado en el que se encontraban antes de enviar esa lista de cambios, siempre que no se hayan realizado cambios en esos archivos desde entonces. Si se han realizado cambios posteriores a cualquiera de esos archivos, Perforce le dirá que esos archivos no están actualizados. Tendrá que sincronizar con la revisión principal y luego resolver las diferencias. De esta manera, no inadvertidamente golpea los cambios que realmente desea mantener.

Ambas operaciones funcionan esencialmente enviando revisiones antiguas como nuevas revisiones. Cuando realiza un "Rollback ...", está restaurando los archivos al estado en el que estaban en un momento específico, independientemente de lo que les haya sucedido desde entonces. Cuando realiza un "Retroceso ...", está tratando de deshacer los cambios que realizó en un momento específico, manteniendo los cambios que se han producido desde entonces.

+17

Creo ** ** "Volver atrás enviado Changelist #####" ** intentará ** mantener los cambios realizados en los mismos archivos después de la lista de cambios especificada. –

+0

@Ian: Buena observación. Cuando escribí esto, estaba pensando en la forma de corregir de inmediato un error. Como suele ser el caso, si se da cuenta de que desea deshacer algo _mucho más tarde_, se vuelve más complicado. He refinado mi respuesta. – raven

+0

@IanRingrose Acabo de hacer una operación de "retroceso", y parece que * no * intenta mantener los cambios que se realizaron después. Tuve que hacer una sincronización y luego resolver para volver a recibir los cambios que se enviaron después del retroceso. – gdw2

4

Rollback ... le pedirá que seleccione una carpeta para deshacer, es decir, que funcionará en carpetas específicas, y puede retroceder a etiquetas o cambios de fecha. Back out funciona en los archivos en listas de cambios específicas.

17

revertir una presentación de lista de cambios

No se puede deshacer una presentación de lista de cambios con éxito, pero se puede revertir los cambios presentados anteriormente de dos maneras:

Rollback restaura un archivo o conjunto de archivos de nuevo a una lista de cambios especificado , fecha o revisión. Cualquier cambio realizado después de ese punto en el tiempo no se conserva. Atrás elimina los cambios específicos realizados en una lista de cambios, fecha o revisión determinada, pero permite que el usuario mantenga los cambios realizados en las revisiones posteriores.

Para más detalles, se refieren a http://www.perforce.com/perforce/doc.current/manuals/p4v/Working_with_changelists.html

8

Backout restaura o deshace nuestros cambios. La forma en que lo hace es que, P4 deshace los cambios en una lista de cambios (predeterminada o nueva) en nuestro espacio de trabajo local. Luego tenemos que enviar/comprometer esta lista de cambios retransmitida como hacemos con otras listas de cambios.La segunda parte es importante aquí, ya que no retrotrae automáticamente la lista de cambios en el servidor, tenemos que enviar la lista de cambios retransmitida (lo cual tiene sentido después de hacerlo, pero inicialmente estaba asumiendo que lo hace automáticamente).

Como se ha señalado por otros, Rollback tiene mayores poderes - Puede restaurar los cambios en una fecha específica, lista de cambios o una revisión #

+1

este fue un punto extremadamente vital, gracias –

+0

Este comentario realmente me hizo entender la diferencia, de cómo funciona realmente la reversión. ¡Gracias! –

2

explico esto a los usuarios mediante la comparación de listas de cambios Perforce a una pila (de estructuras de datos).

El retroceso elimina un elemento de cualquier parte de la pila.

Al retroceder, se eliminan n elementos de la parte superior de la pila.

0

En su más simple, la diferencia es uno de la pluralidad:

  • Backout se retira de una única lista de cambios (si el más reciente o no). es decir, deshace una sola lista de cambios.
  • Rollback revierte los cambios todo lo que necesita para llegar a una lista de cambios anterior. es decir, deshace múltiples listas de cambios.

Solía ​​olvidar cuál es el que y tengo que buscarlo muchas veces. Para solucionar este problema, imagina retroceder varias rotaciones y, con suerte, el hecho de que retrotracción sea plural te ayudará (¡y a mí!) A recordar cuál es cuál. Backout suena 'menos plural' que rollback para mí. Imagínese retroceder desde un espacio de estacionamiento solo.

Así, la tecla de acceso es:

  • Revertir → múltiples rotaciones
  • Backout → de nuevo fuera de una sola plaza de aparcamiento coche

espero que esto ayude!

Cuestiones relacionadas