2010-10-13 14 views
7

Lorsque j'importe un correctif à l'aide de hg import, la commande crée parfois des fichiers .rej.Quel est le moyen le plus efficace de gérer les rejets "hg import"?

En cas de conflit, existe-t-il un moyen de lancer automatiquement l'outil de fusion visuelle au lieu de créer les fichiers .rej? Dans la négative, quel est le flux de travail le plus efficace pour traiter les fichiers .rej?

Répondre

4

Ce n'est pas tout à fait la réponse que vous cherchez, mais idéalement, vous évitez les fichiers .rej en améliorant votre flux de travail pour éviter la nécessité d'utiliser import.

Voici quelques utilisations courantes pour import et de meilleures alternatives pour chaque cas:

  • picorage - lorsque vous utilisez import (ou transplant qui est Exportez suivie import) pour déplacer les changements de d'une branche à l'autre sans déplacer tout le reste sur cette branche, vous pouvez plutôt utiliser merge si vous aviez été plus prudent sur ce que le parent de cet ensemble de modifications était. Hindsight est 20/20, bien sûr, mais si possible faire un hg update au le plus tôt possible parent de la modification que vous faites (ex: corriger les bugs dans un changeset enfant du changeset qui a introduit le bogue) puis seulement les ancêtres de la correction est un changeset qui existe partout où le bogue existe, et vous enregistrez pull et merge en toute sécurité là où le bogue existe sans apporter quoi que ce soit - ou besoin import.
  • correctifs soumis - si possible, faites appel à des personnes travaillant dans des clones mercuriels à partir desquels vous pouvez pull. Ensuite, vous aurez seulement besoin de merge dans leur travail.

Il n'y a rien de mal à import mais si possible préfèrent un pull et merge et avec un peu de prévoyance, vous pouvez habituellement rendre cela possible.

+0

Je suis d'accord. Vous ne pouvez pas lancer correctement un outil de comparaison avec un fichier .rej seul ou avec un correctif. Il n'y a pas assez d'informations là-bas. Ce que vous devez vraiment savoir, c'est à quel changement particulier le patch est censé être appliqué. Ensuite, vous pourriez théoriquement écrire un script pour présenter une fusion. – user37078