2010-03-19 5 views
3

J'ai un patch, fait avec hg export 42 dans un autre référentiel, qui modifie les fichiersComment puis-je importer un patch Mercurial qui a une structure de répertoire différent

asd/fgh/foo/bar.c 
asd/fgh/foo/fish.h 
boo/hoo.txt 

Je dois importer ce patch à un référentiel qui a la structure comme:

src/foo/bar.c 
src/foo/fish.h 
boo/hoo.txt 

y at-il une commande qui peut arriver - je peux relancer le hg export sur l'ancien repo si nécessaire, et je suis prêt à ignorer les fichiers qui ont même chemin (par exemple . boo/hoo.txt)

Je pensais au départ que dans hg import -p3 patch.diffrepository/src aurait fait cela, mais apparemment, il veut toujours créer la hiérarchie asd/fgh/ dans le niveau supérieur (et placer les fichiers .rej là)

Répondre

2

Une option est d'aller dans le fichier patch et juste changer les noms. Quelques recherches et remplace et vous êtes probablement bon à faire.

La seule commande Mercurial Je sais qui accepte une carte de traduction de nom de fichier est le « convertir » commande, donc il y a probablement une solution à trouver en exécutant l'ancien repo par quelque chose comme hg convert --filemap thefilemap exportingrepo newexportingrepo, où thefilemap a en elle:

rename asd/fgh src 

puis exportez-le à partir de newexportingrepo et importez-le dans le rapport de réception. Moi, je serais probablement à la main d'éditer le patch. :)

+0

J'ai fini par éditer le patch à la main moi aussi – Kimvais

0

vous pouvez toujours le faire en deux changements. renommer les répertoires puis appliquer le patch.

Questions connexes