2010-10-12 12 views
17

Me gustaría eliminar un directorio y todos los archivos en él de un repositorio.hg ¿eliminar el directorio del repositorio?

He eliminado todos los archivos con 'hg remove', pero ¿cómo puedo eliminar el directorio?

¿Se desvanecerá automáticamente una vez que confirme todos los archivos eliminados?

gracias!

Respuesta

21

Sí. Debido a que mercurial no rastrea en absoluto los directorios, solo los archivos, solo crea directorios que tienen archivos en ellos, y si alguien hg updates revisa los directorios que se vuelven vacíos se eliminan automáticamente. Entonces, si lo hace:

hg remove directory/* 
hg commit -m 'removed all files in directory' 
hg update -r 0 # updates to a different revision 
hg update tip # jump back to the tip 

Esa última actualización eliminaría el directorio. Para todos los demás, es incluso más fácil. Cuando ellos hg update a sus nuevos cambios, su directorio desaparecerá (siempre que no tengan ningún archivo no comprometido).

+0

Advertencia: si ha ignorado los archivos en el directorio, hg los mantendrá allí. –

+2

nota, para mí, ejecutar Windows XP, las comillas simples no funcionan para el mensaje de confirmación. debes usar comillas dobles –

2

Para eliminar un directorio, sólo que

hg remove <dir> 
hg commit -m "..." 

Esto eliminará el directorio y todos los archivos bajo él.

9
hg remove dir 

Si termina con los directorios vacíos y desea deshacerse de ellos, una forma fácil es la extensión de purga. (agregue purge = en el grupo [extensiones] en su archivo .hrgc para desbloquear).

A continuación, puede utilizar

hg purge 

para limpiar los directorios vacíos ... Hay que tener cuidado con el comando de purga, ya que elimina todo lo que es sin seguimiento en sus repositorios. Le recomiendo encarecidamente que ejecuta un

hg purge -p 

de antemano para ver qué hará el comando (-p, se imprimirá una "prueba de funcionamiento" sin hacer nada.) Nunca olvide la opción --help ! ;)

editar: Prefiero utilizar purge a hg actualizar en sucesión como la actualización de disparadores reconstruye en mi IDE si está abierto (y es una buena apuesta cuando lo hago). hg purge probablemente será más suave. Y puede usar --all para incluir archivos ignorados también (sin embargo, debe tener cuidado).

Cuestiones relacionadas