2011-04-28 14 views
5

He creado y usado un repositorio de Mercurial en someFolder. Ahora descubrí la necesidad de realizar un seguimiento de los archivos de un nivel. Entonces, lo que necesitaría es crear someOtherFolder y mover someFolder en él. Esto no debería ser un problema.Mover el repositorio de Mercurial

En este punto voy a tener

someOtherFolder 
    someFolder 
     .hg 
     many other files 

¿Hay una manera de indicarle a Mercurial para ampliar su alcance y empezar a hacer el seguimiento de archivos dentro someOtherFolder en su lugar?

Respuesta

6

Probablemente hay una manera más agradable de hacer esto, pero una cosa que podría hacer es hg mv todos los archivos a un nuevo subdirectorio someFolder y luego cambiar el nombre de los padres someFolder a someOtherFolder, por ejemplo:

someFolder$ mkdir someFolder 

someFolder$ hg locate | xargs --replace=FILE hg mv FILE someFolder/FILE 

someFolder$ hg status 
A someFolder/a.txt 
A someFolder/foo/b.txt 
R a.txt 
R foo/b.txt 

someFolder$ hg commit -m "moved files to subfolder" 
someFolder$ cd .. 
$ mv someFolder someOtherFolder 
+0

+1 fantástico. Tuve que usar '-I FILE' en lugar de' --replace FILE' – Dori

2

usted debe estar capaz de usar hg convert extension para hacer esto.

no he probado esto, pero algo como esto puede trabajar:

$ echo include someFolder > /tmp/myfilemap 
$ echo rename someFolder someOtherFolder/someFolder >> /tmp/myfilemap 
$ hg convert --filemap /tmp/myfilemap /path/to/repo/foo /tmp/mysubfoo-repo 
Cuestiones relacionadas