Mercurial: eliminar el conjunto de cambios de la rama remota

¿Hay alguna forma de eliminar un conjunto de cambios eliminado o eliminar todo el conjunto de cambios? Accidentalmente hice clic en un archivo .war en un repositorio remoto y quiero borrarlo.

20
25 мая '09 в 18:21 2009-05-25 18:21 Miguel Ping preguntó el 25 de mayo de 2009 a las 18:21, 2009-05-25 18:21.
@ 4 respuestas

Usé la extensión hg mqueue para editar la historia. Parece que funcionó. Gracias a todos

4
26 мая '09 в 12:44 2009-05-26 12:44 Respondió a Miguel Ping el 26 de mayo de 2009 a las 12:44 2009-05-26 12:44

Mercurial mantiene sus datos de manera muy diligente, para que nunca pueda cambiar la historia.

Por lo tanto, hay muchas extensiones para Mercurial, que le permiten cambiar fácilmente la historia de todos modos. Hay una página en el wiki de historial de edición . Esta página también explica las consecuencias.

En su caso particular, debe preguntarse si otras personas ya sacarán su conjunto de cambios. Si es así, incluso si lo elimina, seguirá existiendo en sus clones y es mejor que acepte un error.

Si decides eliminarlo, te sugiero que hg clone para obtener una copia sin él. Este es un camino seguro ya que siempre mantendrá una copia de seguridad. Si presionó [z] en el repositorio remoto:

 [x] --- [y] --- [z] 

y ahora desea eliminarlo, luego inicie sesión en el servidor y ejecute

 hg clone -ry repo repo-without-z 

Luego, repo-without-z contendrá todas las variables hasta [y] , es decir, [z] se eliminará:

 [x] --- [y] 
border=0

Luego puede continuar trabajando y hacer clic en el nuevo conjunto de cambios:

 [x] --- [y] --- [w] 

Si ya saqué el conjunto de cambios [z] y ahora extraigo [w] , veré dos capítulos en el repositorio:

  [w] / [x] --- [y] --- [z] 

Esto no es peligroso como tal, pero la gente puede sorprenderse. Si elimino [z] de mi clon, volveré al mismo repositorio que tú. Pero, como se describió anteriormente, esto puede ser poco práctico si tiene muchos usuarios.

También puede usar la extensión MQ para eliminar conjuntos de cambios en el lugar. Por lo tanto, no va a crear un nuevo clon.

Finalmente, si está seguro de que el clic fue la última operación realizada en el servidor, se puede utilizar la hg rollback para eliminar la última transacción. Pero no haga esto si usted es el único que puede hacer clic en el repositorio, de lo contrario puede revertir otra transacción.

Si el repositorio está en Bitbucket , no puede iniciar sesión en el servidor. Pero Bitbucket ha agregado recientemente la funcionalidad de ancho de banda a su interfaz web. Encuentre "Administrar repositorios" en la sección "Admin".

34
25 мая '09 в 19:27 2009-05-25 19:27 respuesta dada por Martin Geisler 25 de mayo de 2009 a las 19:27 2009-05-25 19:27

Bitbucket le ofrece un paquete (copia de seguridad) cuando lo elimina, y eso significa que no está en contra de su cuota. La razón por la que se hace esto es solo que no invalidamos la clave de caché al especificar cuánto espacio está utilizando.

Este es un error en nuestro sistema y será arreglado. Hasta entonces, asegúrese de que el conjunto de cambios se elimine y que la copia de seguridad sea gratuita: -)

13
26 мая '09 в 10:04 2009-05-26 10:04 La respuesta es dada por jespern el 26 de mayo de 2009 a las 10:04 2009-05-26 10:04

Tuve un caso similar cuando quiero eliminar remotamente una rama con una rama modificada "A" de la rama "Dev" usando TortoiseHg:

  • Cree una rama AA desde la rama de la rama principal; su origen.
  • Combine A a AA (directorio de trabajo) y asegúrese de que la opción "Descartar todos los cambios de otra versión" esté marcada.
  • Combine AA en una rama Dev (con un mensaje de confirmación que indica que se han eliminado los cambios a la rama A).

Verás que los cambios en la rama A ya no existen en Dev.

1
14 февр. La respuesta la da MarwaAhmad el 14 de febrero. 2017-02-14 07:01 '17 a las 7:01 2017-02-14 07:01

Otras preguntas acerca de las etiquetas o Haz una pregunta