Je suis confronté à un problème particulier avec SVN merge
. Je veux fusionner d'une branche de dev à un tronc. Nous avons plusieurs branches de développement coupées en même temps.
Je fusionne l'une de ces branches avec tronc avec cette commande:
svn merge trunk branch_1
Je vois des changements qui ne font pas partie de cette branche, qui sont fusionnés dans le coffre. Qu'est-ce que je fais mal ?
Version SVN:
Client de ligne de commande Subversion, version 1.6.16-SlikSvn-tag-1.6.16@1076804-WIN32.
Votre syntaxe _svn merge
_ est incorrecte.
Vous voulez extraire une copie de travail de trunk
, puis utiliser l'option svn merge --reintegrate
:
_$ pwd
/home/user/project-trunk
$ svn update # (make sure the working copy is up to date)
At revision <N>.
$ svn merge --reintegrate ^/project/branches/branch_1
--- Merging differences between repository URLs into '.':
U foo.c
U bar.c
U .
$ # build, test, verify, ...
$ svn commit -m "Merge branch_1 back into trunk!"
Sending .
Sending foo.c
Sending bar.c
Transmitting file data ..
Committed revision <N+1>.
_
Voir le chapitre du livre SVN sur la fusion pour plus de détails.
Notez qu’à l’époque, c’était la bonne réponse (et elle était acceptée), mais les choses ont évolué. Voir la réponse de topek, et http://Subversion.Apache.org/docs/release-notes/1.8.html#auto-reintegrate
Si votre répertoire de travail pointe vers le tronc, vous devriez pouvoir fusionner votre branche avec:
svn merge https://Host/repository/branches/branch_1
assurez-vous d’émettre cette commande dans le répertoire racine de votre coffre
Faites une mise à jour svn dans le coffre, notez le numéro de révision.
Du coffre:
svn merge -r<revision where branch was cut>:<revision of trunk> svn://path/to/branch/branchName
Vous pouvez vérifier où la branche a été coupée du coffre en effectuant un journal svn
svn log --stop-on-copy
La syntaxe est fausse, elle devrait plutôt être
svn merge <what(the range)> <from(your dev branch)> <to(trunk/trunk local copy)>