2010-03-03 9 views
34

J'ai un grand correctif MQ appliqué dans Mercurial. Ce qui est arrivé est que j'ai fait qrefresh et inclus des fichiers dans mon patch que je ne veux pas inclure. Est-il possible de supprimer les modifications apportées à ce fichier à partir de mon correctif sans le modifier manuellement? Dans ce cas, si je travaillais sans MQ, tout ce que je devrais faire est de revenir à hg.Suppression d'un fichier de Mercurial MQ Patch

Répondre

46

Avec le patch appliqué:

hg qrefresh -X [file1] -X [file2] ... -X [fileN] 

retirerons fichier1 fileN du patch. Après avoir terminé cela, tapez hg status pour vérifier que les fichiers sont maintenant marqués comme modifiés, et ne font donc plus partie du correctif.

+3

Le commutateur '-X' doit précéder chaque nom de fichier. Donc, pour enlever foo et bar, utilisez 'hg qrefresh -X foo -X bar'. – nmichaels

+0

Si vous souhaitez supprimer tous les fichiers du correctif, au lieu de supprimer chaque fichier, vous pouvez exécuter 'hg qrefresh -X '*''. Vous devez entourer le caractère '*' avec '' 'pour empêcher le shell d'interpréter avant le mercurial. –

2

Je pense que vous pouvez utiliser faire du patch le patch actuel (appliqué et en haut de la pile) puis hg forget et hg qrefresh.

Et bien sûr hg forget est juste hg remove sans nécessiter d'options supplémentaires pour éviter la suppression de fichiers.

0

La façon la plus simple de faire ceci est de faire hg qrefresh avec tous les fichiers sauf celui que vous voulez supprimer - cela enlèvera les changements du patch sans les rejeter.