Résoudre les conflits: comment accepter automatiquement «leurs» modifications?


97

Lors de la fusion de modifications conflictuelles à l'aide de hg merge, Mercurial insère un ensemble de marqueurs dans les fichiers à fusionner dans ma copie de travail comme ceci:

<<<<<<< local
  version = 0.2
=======
  version = 0.1
>>>>>>> other

Ensuite, je modifie manuellement tous les fichiers marqués comme U à partir d'une liste produite par hg resolve --all -lpuis je dis à mercurial que je les ai résolus parhg resolve -m file1 file2 file3 ...

Dans de nombreuses situations, je voudrais cependant accepter mes modifications uniquement ou leurs seules modifications sur certains fichiers en conflit. Je pense créer deux simples scripts sed / awk / quel que soit le nom accept-theirs.shet accept-my.shou y a-t-il une manière "appropriée" de le faire?

Réponses:


166

Utilisation

hg resolve -t internal:other --all

accepter theirset

hg resolve -t internal:local --all

accepter yours


Merci beaucoup! Je ne comprends pas ce que signifie @djc, mais votre solution fonctionne comme un charme.
psihodelia

@psihodelia djc a dit à peu près la même chose, essayez hg help merge-tools(mergetools est un alias dans les dernières versions)
MGP

6
En remarque, j'ai aliasé ceci:[alias] mine = resolve -t internal:local theirs = resolve -t internal:other
Melvyn

1
Ce sont trois lignes à ajouter à la sienne .hgrc, pour les débutants:, [alias]alors mine = resolve -t internal:local, alors theirs = resolve -t internal:other. Après cela, vous pouvez utiliser hg mine some_file.pyou hg theirs -a(pour tous)
Tobia

1
À partir de phab.mercurial-scm.org/D4379 , vous devrez peut-être également inclure le --re-mergedrapeau (par exemple hg resolve -t internal:other --re-merge --all)
Ethan Koenig

23

Essaye ça:

hg merge --tool 'internal:other'

Voir aussi hg help merge-toolspour plus d'informations.


1
Ou resolvepour des fichiers uniques / le refaire. (De plus, les citations ne internal:othersont pas nécessaires.)
Chris Morgan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.