2010-02-10 14 views
61

Estoy usando Mercurial. Hice un clon de un repositorio. Para la depuración, cambié algunas líneas de código en un archivo java. Sin embargo, no cometí esos cambios. Solo quiero devolverlos a su estado original, como se encuentra en el repositorio. Probé hg revert filename.java, que no revierte, pero ahora cuando hago hg status, veo archivos adicionales añadidos en mi carpeta Ahora, como:Usando hg revertir en Mercurial

? filename.java.orig 

¿Puedo eliminar estos archivos, y por qué Mercurial hacen cuando uso ¿revertir?

Respuesta

47

Sí, puede eliminarlos. Es una característica de seguridad en caso de que hayas revertido algo que no quisiste revertir.

5

Estos archivos de copia de seguridad se pueden crear para fusión y revierten las operaciones (cf. man page). Puede agregar una regla de ignorar si lo desea, o simplemente eliminarlos si ya no los necesita.

0

Estos son bastante comunes, como resultado de diversas operaciones. Una mirada a uno de los repositorios de tamaño moderado en el que trabajo encuentra 237 de ellos. No me gusta la supresión de las cosas que pueden llegar a ser útil, y no tengo ninguna razón para nombrar archivos legítimos con el mismo sufijo, por lo que añadir lo siguiente a .hgignore lugar:

.\.orig$ 
6

Esos son copias de la archivos de antes de revertirlos. Si usted no necesita esos, puede eliminarlos, ya sea a mano o utilizando el Purge extension:

hg clean 
+1

Hay un comando "limpio" en Mercurial estándar. ¿Quizás piense en la extensión de purga y en 'hg purge'? –

+1

@Martin: escribiendo 'hg clean' dice que' clean' es proporcionado por la extensión de purga – Casebash

+2

Casebash: ah, a la derecha - la extensión de purga proporciona el comando bajo los dos nombres: 'hg purge' y' hg clean'. –

8

Como otros de han señalado, puede eliminar estos archivos.

Puede eliminarlos mediante la ejecución de este comando desde la raíz de tu repositorio:

rm `hg st -un | grep orig` 

Si desea revertir, y no se preocupan en absoluto de copias de seguridad de los archivos originales, el comando que desea es decir:

hg update -C 
85

también puede utilizar la bandera --no-copia de seguridad y los archivos .orig no se creará

hg revert --no-backup filename.java 

A partir de Mercurial 2.0, en su lugar puede utilizar la -C bandera para suprimir los archivos que se creen .orig

hg revert -C filename.java 
+0

Guarde un tipeo con: 'hg revert -C filename.java' – jbranchaud

+0

El atajo -C se introdujo con mercurial 2.0 vea http://mercurial.selenic.com/wiki/WhatsNew – Fooman

+7

No estoy seguro de entender cómo' - C' es la abreviatura de '--no-backup' ... ¿es un' C'ouvero revertir? – dreamlax

23

encuentro la purge extension práctico. Uso:

hg purge 

"Esta extensión purga todos los archivos y directorios no ser rastreados por Mercurial" - incluyendo los archivos .orig pero excluyendo los ficheros ignorados (a menos que utilice --all).

0

hice presentar este lote a mí mismo.

IF "%1%" == "d" (
    del /s *.orig 
    del /s *.rej 
) ELSE ( 
    del /s /p *.rej 
    del /s /p *.orig 
) 

Ayuda: Guardar este contenido como orig.bate de

  1. Run orig d para borrar todos los rechazos y los archivos orig a la vez sin confirmación
  2. Run orig para eliminar los archivos con la confirmación [Mecanismo de seguridad]

Esperamos que esto sea útil.

Cuestiones relacionadas