svn: Comment annuler une fusion (sans commit)?

j'ai juste fait un svn merge fusionner les modifications dans le coffre d'une branche:

$ svn merge -r328:HEAD file:///home/user/svn/repos/proj/trunk .
--- Merging r388 through r500 into '.':
A    foo
A    bar
   C baz1
   C baz2
U    duh
[...]

mais il y a eu trop de conflits, alors j'aimerais y remédier.

une façon de le faire est de s'engager puis de fusionner. Mais je ne peux pas m'engager à cause des conflits. Quelle est la meilleure façon de annuler dans ce cas?

41
demandé sur Frank 2009-12-13 19:21:23

4 réponses

revenir en arrière récursivement à partir du haut de votre copie de travail:

svn revert -R .

Vous aurez besoin de supprimer manuellement les fichiers qui ont été ajoutés. Comme après la réinitialisation, les fichiers ajoutés resteront sur le disque mais seront dans un état non-suivi ("? foo")

101
répondu richq 2009-12-13 16:24:06

tant Que vous n'avez pas commis, vous pouvez toujours revenir à annuler toutes vos modifications.

7
répondu tangens 2009-12-13 16:23:46

j'ai fait face à la même situation, j'ai aussi eu d'autres changements que je ne voulais pas perdre. Ainsi, au lieu de revenir en arrière récursive complète juste svn revert pour le conflit a été bon pour moi

svn revert baz1 baz2
2
répondu Amit Thawait 2013-10-08 13:10:29

ne svn resolve sur tous les conflits de toute façon et de s'engager:

$ svn resolved baz1
$ svn resolved baz2
$ svn ci -m "oops. bad merge. will revert."
Transmitting file data ......
Committed revision 501.

alors, annulez-le officiellement en fusionnant de nouveau à l'endroit où il était:

$ svn merge -r501:500
--- Reverse-merging r319 into '.':
[...]

c'est ça, la fusion a été annulée dans le répertoire. Maintenant s'engager que trop:

$ svn ci -m "bad merge has been undone"
Transmitting file data ......
Committed revision 502.

l'avantage sur Le svn revert -R . méthode est que les fichiers qui ont été ajoutés sont tous correctement supprimés.

-11
répondu Frank 2009-12-13 16:30:46