37 votes

Comment utiliser p4merge comme outil de fusion/diffusion pour Mercurial ?

Quelqu'un sait-il comment configurer Mercurial à utiliser p4merge comme outil de fusion/diffusion sous OS X 10.5 ?

40voto

Ry4an Points 56453

Cela fonctionnera pour la fusion :

Placez ceci dans votre ~/.hgrc (ou, en option, votre Mercurial.ini sur Windows) :

[merge-tools]
p4.priority = 100
p4.premerge = True  # change this to False if you're don't trust hg's internal merge
p4.executable = /Applications/p4merge.app/Contents/MacOS/p4merge
p4.gui = True
p4.args = $base $local $other $output

Nécessite Mercurial 1.0 ou plus récent. Il est clair que vous devrez mettre à jour le chemin de cet exécutable pour refléter l'endroit où vous avez installé p4merge.


Vous ne pouvez pas changer ce que hg diff utilise ; mais vous puede utiliser le extdiff pour créer de nouvelles commandes diff qui utilisent l'affichage que vous souhaitez.

Alors hg pdiff pourrait exécuter p4 merge, etc.

3 votes

Vous devez utiliser l'exécutable 'launchp4merge' au lieu de 'p4merge'. De cette façon, si vous différez plusieurs paires de fichiers simultanément, ils apparaissent tous dans un seul processus p4merge au lieu de processus séparés.

1 votes

Si vous souhaitez utiliser la suggestion d'Adam, qui fonctionne pour moi, utilisez cette ligne à la place de la ligne p4.executable ci-dessus : p4.executable = /Applications/p4merge.app/Contents/Resources/launchp4merge

1 votes

Cela ne fonctionne pas avec hg diff . Des suggestions sur la façon de faire de p4merge l'éditeur de différences par défaut ?

15voto

Ivan Points 4558

J'ai trouvé La réponse de Ry4an est une bonne solution, à l'exception d'un problème mineur, qui fait que p4merge (sous mac os) mélange les entrées de commande. Faites tout ce qui est décrit dans sa réponse et ajoutez la ligne suivante dans la section [merge-tools]. :

p4.args=$base $local $other $output

Cette ligne indique à mercurial dans quel ordre p4merge prend ses arguments.

15voto

macrobug Points 487

J'utilise la version 1.0.1 de TortoiseHg et p4merge fonctionne sans problème.

Il suffit d'aller sur Réglages globaux -> TortoiseHg et sélectionnez les options suivantes :

  • Outil de fusion à trois voies : p4merge
  • Outil de comparaison visuelle : p4merge

Screenshot

3voto

gnz Points 322

Peut-être parce que je travaille sous Windows, mais la solution proposée n'a pas fonctionné pour moi. En revanche, la solution suivante fonctionne.

Dans votre ~/.hgrc/ / Mercurial.ini J'ai appliqué les modifications suivantes :

Activation de l'extension "ExtDiff" :

[extensions]
hgext.extdiff =

Ajout de la commande P4 extdiff :

[extdiff]
cmd.p4diff = p4merge

Configuré comme l'outil de comparaison visuelle par défaut :

[tortoisehg]
vdiff = p4diff

2 votes

Si vous suivez cette voie, il vous suffit de taper "hg p4" pour faire une différence visuelle, car Mercurial ne vous demande que de taper le nombre minimum de caractères pour désambiguïser une commande.

0voto

Matthew Schinckel Points 15596

Je suppose qu'il existe un outil CLI pour p4merge (dont je ne connais rien).

J'ai écrit un article de blog sur l'utilisation de Changes.app, et d'autres outils GUI avec Mercurial : Utilisation de Mercurial avec des outils GUI.

En fait, vous devez connaître les attentes de l'outil CLI qui charge l'outil de comparaison. Par exemple, comment faire pour qu'il charge les données d'un fichier particulier, et comment faire pour qu'il attende la sortie. Il devrait y avoir suffisamment d'informations sur le post pour vous donner quelques idées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X