repositorio remota rama eliminar cambiar actualizar version-control mercurial dvcs amend

version control - cambiar - Mercurial: eliminar el conjunto de cambios de la rama remota



git fetch (4)

Bitbucket le ofrece un paquete (copia de seguridad) al eliminar, y esto no cuenta para su cuota. La razón por la que parece que lo hace, es solo porque no hemos invalidado la clave de caché que especifica la cantidad de espacio que utiliza.

Este es un error en nuestro sistema, y ​​será remediado. Hasta entonces, puede estar seguro de que el conjunto de cambios se ha eliminado y la copia de seguridad es gratuita :-)

¿Hay alguna forma de eliminar un conjunto de cambios remoto o eliminar un conjunto de cambios completo? Accidentalmente empujé un archivo .war a un repositorio remoto y quiero eliminarlo.


Mercurial se esfuerza por mantener sus datos seguros, por lo que generalmente no puede cambiar el historial.

Dicho esto, existen numerosas extensiones para Mercurial que le permiten cambiar la historia de forma bastante sencilla de todos modos. Hay una página en el wiki sobre la edición del historial . Esa página también explica las consecuencias.

En su caso específico, ¿debe preguntarse si otros ya habrán retirado su conjunto de cambios? Si es así, incluso si lo elimina, seguirá existiendo en sus clones y es posible que sea mejor que acepte el error.

Si decide eliminarlo, le sugiero que utilice el hg clone para obtener una copia sin él. Esta es la forma segura ya que siempre dejará una copia de seguridad. Si presionaste [z] en el repositorio remoto:

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

y ahora quiere eliminarlo, luego inicie sesión en el servidor y haga

hg clone -r y repo repo-without-z

Entonces repo-without-z contendrá todos los cambios hasta [y] , es decir, [z] se habrá eliminado:

[x] --- [y]

Luego puede continuar trabajando y empujar un nuevo conjunto de cambios:

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

Si ya había jalado el conjunto de cambios [z] y ahora jalo [w] veré dos cabezas en el repositorio:

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

Esto no es peligroso en sí mismo, pero la gente podría sorprenderse. Si elimino [z] de mi clon, terminaré con el mismo repositorio que tú. Pero, como se escribió anteriormente, esto podría ser poco práctico si tiene muchos usuarios.

También puede usar la extensión MQ para quitar el conjunto de cambios en el lugar. De esa manera no harás un nuevo clon.

Finalmente, si está seguro de que la inserción fue la última operación realizada en el servidor, se puede utilizar la hg rollback para eliminar la última transacción. Pero no hagas esto si eres el único que puede ingresar al repositorio, de lo contrario, podrías terminar con una transacción diferente.

Si el repositorio está en Bitbucket , entonces no puede iniciar sesión en el servidor. Pero Bitbucket ha agregado recientemente una funcionalidad de tira a su interfaz web. Busque "Administración del repositorio" en la sección "Admin".


Tuve un caso similar en el que quiero eliminar un conjunto de cambios "A" de una rama fusionada de la rama "Dev" de forma remota utilizando TortoiseHg:

  1. Cree la rama AA de la rama principal de la rama A; su origen.
  2. Combine A en AA (directorio de trabajo) y asegúrese de que la opción: "Descartar todos los cambios de la otra revisión" esté marcada.
  3. Combine AA en la rama Dev (con un mensaje de confirmación que indica que se eliminaron los cambios de la rama A).

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


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