Empecé a usar Subversion con TortoiseSVN. Si abro el registro y hago clic derecho en una revisión anterior, veo dos opciones que parecen retroceder a una versión anterior: "Actualizar elemento a revisión" y "Volver a esta revisión".
Entiendo que la actualización a una revisión anterior se usa cuando solo desea mirar hacia atrás a una versión anterior pero no cambiar realmente el repositorio. Revertir es cuando realmente arruinaste y quieres que la última revisión en el repositorio sea la misma que una versión anterior.
Entonces, supongamos que la revisión HEAD es 100 y vuelvo a 95. Invertirá la fusión de mi copia de trabajo a 95. Entonces, ¿puedo confirmar ese cambio en el repositorio que crearía la revisión 101 correcta? ¿Cómo es eso diferente si tuviera que actualizar a la revisión 95? ¿Todavía no revierte los cambios de las últimas revisiones? Estoy confundido acerca de cómo difiere el estado de mi copia de trabajo después de Revertir o Actualizar a una revisión anterior.
fuente
update to
yrevert to/from
tratar los cambios locales (cambios no comprometidos)?Para comprender cómo el estado de su copia de trabajo es diferente en ambos escenarios, debe comprender el concepto de la revisión BASE :
Su copia de trabajo contiene una instantánea de cada archivo (oculto en una carpeta .svn) en esta revisión BASE, lo que significa que era la última vez que se recuperó del repositorio . Esto explica por qué las copias de trabajo ocupan el doble de espacio y cómo es posible que pueda examinar e incluso revertir las modificaciones locales sin una conexión de red.
Actualizar elemento a Revisión cambia esta revisión base, haciendo que BASE esté desactualizado. Cuando intente confirmar modificaciones locales, SVN notará que su BASE no coincide con el HEAD del repositorio. La confirmación se rechazará hasta que realice una actualización (y posiblemente una combinación) para solucionar esto.
Volver a la revisión no cambia BASE. Conceptualmente es casi lo mismo que editar manualmente el archivo para que coincida con una revisión anterior.
fuente
update to
yrevert to/from
tratar los cambios locales (cambios no comprometidos)?Los archivos en su copia de trabajo pueden verse exactamente igual después, pero siguen siendo acciones muy diferentes: el repositorio está en un estado completamente diferente y tendrá diferentes opciones disponibles después de revertir que "actualizar" a una revisión anterior .
Brevemente, "actualizar a" solo afecta su copia de trabajo, pero "fusionar y confirmar inversamente" afectará el repositorio.
Si "actualiza" a una revisión anterior, el repositorio no ha cambiado: en su ejemplo, la revisión HEAD sigue siendo 100. No tiene que confirmar nada, ya que solo está jugando con su copia de trabajo. Si realiza modificaciones en su copia de trabajo e intenta confirmar, se le informará que su copia de trabajo está desactualizada y deberá actualizar antes de poder confirmar. Si alguien más que trabaja en el mismo repositorio realiza una "actualización", o si extrae una segunda copia de trabajo, será r100.
Sin embargo, si "invierte la fusión" en una revisión anterior, su copia de trabajo todavía se basa en el HEAD (suponiendo que esté actualizado), pero está creando una nueva revisión para reemplazar los cambios no deseados. Debe confirmar estos cambios, ya que está cambiando el repositorio. Una vez hecho esto, cualquier actualización o nueva copia de trabajo basada en HEAD mostrará r101, con los contenidos que acaba de confirmar.
fuente
Actualice su copia de trabajo a la revisión seleccionada. Es útil si desea que su copia de trabajo refleje un momento en el pasado, o si ha habido más confirmaciones en el repositorio y desea actualizar su copia de trabajo paso a paso. Es mejor actualizar un directorio completo en su copia de trabajo, no solo un archivo, de lo contrario su copia de trabajo podría ser inconsistente. Esto se utiliza para probar un propósito específico de revoluciones, si la prueba se ha hecho, se puede utilizar este comando para probar otra vuelta o usar SVN actualización para obtener CABEZA
Si desea deshacer un cambio anterior de forma permanente, use Revertir a esta revisión en su lugar.
- del documento de ayuda de TSVN
Si actualiza su copia de trabajo a una versión anterior, esto solo afectará su propia copia de trabajo, después de hacer algún cambio y desea confirmar, fallará, TSVN lo alertará para actualizar su WC a la última revisión primero Si revierte a una rev, puede comprometerse con el repositorio. Todos volverán a la rev después de hacer una actualización.
fuente
El texto de la referencia de Tortuga:
Actualizar elemento a revisión Actualice su copia de trabajo a la revisión seleccionada. Es útil si desea que su copia de trabajo refleje un momento en el pasado, o si ha habido más confirmaciones en el repositorio y desea actualizar su copia de trabajo paso a paso. Es mejor actualizar un directorio completo en su copia de trabajo, no solo un archivo, de lo contrario su copia de trabajo podría ser inconsistente.
Si desea deshacer un cambio anterior de forma permanente, use Revertir a esta revisión en su lugar.
Volver a esta revisión Volver a una revisión anterior. Si ha realizado varios cambios y luego decide que realmente desea volver a cómo estaban las cosas en la revisión N, este es el comando que necesita. Los cambios se deshacen en su copia de trabajo para que esta operación no afecte al repositorio hasta que los confirme. Tenga en cuenta que esto deshacerá todos los cambios realizados después de la revisión seleccionada, reemplazando el archivo / carpeta con la versión anterior.
Si su copia de trabajo está en un estado no modificado, después de realizar esta acción, su copia de trabajo se mostrará como modificada. Si ya tiene cambios locales, este comando combinará los cambios de deshacer en su copia de trabajo.
Lo que sucede internamente es que Subversion realiza una fusión inversa de todos los cambios realizados después de la revisión seleccionada, deshaciendo el efecto de esas confirmaciones anteriores.
Si después de realizar esta acción decide que desea deshacer la operación de deshacer y recuperar su copia de trabajo a su estado no modificado anterior, debe usar TortoiseSVN → Revertir desde el Explorador de Windows, que descartará las modificaciones locales realizadas por esta acción de fusión inversa.
Si simplemente desea ver cómo se veía un archivo o carpeta en una revisión anterior, use Actualizar a revisión o Guardar revisión como ... en su lugar.
fuente
Actualización de @BaltoStar a la sintaxis de revisión:
http://svnbook.red-bean.com/en/1.6/svn.ref.svn.c.update.html
Donde 30 es el número de revisión. ¡Espero que esto ayude!
fuente