web-dev-qa-db-fra.com

Tortoise SVN: Résolvez les conflits en utilisant «le leur». Qu'est-ce que ça veut dire?

Quelqu'un peut-il expliquer la différence entre les deux options suivantes de Tortoise SVN sur les fichiers en conflit:

  • Résolvez les conflits en utilisant "les leurs".
  • Résolvez les conflits en utilisant le "mien".

Sur une note latérale. Pourquoi diable personne n'a jamais signalé cette utilisation déroutante de la terminologie comme bug?

72

Résoudre le conflit en utilisant "le leur" signifie que lorsque vous essayez d'archiver deux fichiers qui ont des modifications conflictuelles, SVN annulera vos modifications et utilisera les autres personnes à la place.

Résoudre les conflits en utilisant "le mien" signifie que vous annulerez leurs modifications et utiliserez votre version du fichier à la place.

54
Brandon

Je voulais ajouter toute la liste pour référence supplémentaire:

(e)  edit             - change merged file in an editor
(df) diff-full        - show all changes made to merged file
(r)  resolved         - accept merged version of file

(dc) display-conflict - show all conflicts (ignoring merged version)
(mc) mine-conflict    - accept my version for all conflicts (same)
(tc) theirs-conflict  - accept their version for all conflicts (same)

(mf) mine-full        - accept my version of entire file (even non-conflicts)
(tf) theirs-full      - accept their version of entire file (same)

(p)  postpone         - mark the conflict to be resolved later
(l)  launch           - launch external tool to resolve conflict
(s)  show all         - show this list
41
nerkn

Je suis d'accord.

Il me semble qu'il serait plus clair s'il disait:

  • Résoudre à l'aide du référentiel (le leur)
  • Résolution à l'aide d'une copie de travail (la mienne)
32
james2code

BuzzAnn est correct. le mien contre le leur est ambigu, car ce qui se trouve dans le référentiel peut également être le mien. La distinction sans ambiguïté est référentiel vs copie locale.

7
Dave Sieving

La fusion de la ligne de commande SVN est source de confusion, en particulier lors de la fusion d'une branche dans le tronc. "Mes modifications" sont celles que j'ai faites dans la branche, mais ce serait faux selon SVN . Pour compliquer vraiment les choses, SVN fait référence aux chemins comme SOURCE, TARGET et HEAD dans l'aide en ligne de commande.

Voici le réponse simple, si vous exécutez cette instruction de fusion à partir du répertoire C:\Project1\Trunk

svn merge -r 60:68 C:\Project1\branches\UpdatesToProject1

"Mine" est le répertoire à partir duquel SVN est exécuté (C:\Project1\Trunk).

"Le leur" est le répertoire dans lequel vous fusionnez et que vous avez spécifié sur la ligne de commande (C:\Project1\branches\UpdatesToProject1)

Ce serait vraiment vraiment sympa si SVN donnait les chemins auxquels MINE et LEUR se réfèrent.

5
K Kimble

Si vous acceptez que ce qui se trouve dans le référentiel ne vous appartient plus (uniquement), il est partagé avec tous ceux qui y ont accès, alors cela pourrait être plus clair.

Dans ce contexte:

"leur" signifie "le code partagé de l'équipe dans le référentiel" "le mien" signifie (ma) "copie de travail" (probablement sur la machine locale)

Donc: "en utilisant le leur" remplace votre copie de travail par la copie partagée, annule vos modifications qui existent sur votre machine locale. "en utilisant le mien" décider que le code dans votre copie de travail est ce qui doit être conservé dans le référentiel, en éliminant ce qui est actuellement dans le dépôt.

1
ptarmigan