Question

Je probablement tout simplement pas réfléchi à cela, ou peut-être que je suis simplement pas au courant d'une option déjà existante dans Subversion (je ne suis certainement pas un expert).

Je me demande si j'ai créé une branche pour commencer à travailler sur une nouvelle fonctionnalité, s'il y a un moyen plus facile de garder la branche à jour avec le trunk , le plus récent révisions sans avoir à passer par toutes les difficultés de la fusion d'une série de révisions. Je voudrais être en mesure de mettre à jour simplement et obtenir toutes les révisions du tronc ( et la branche, bien sûr), alors que mes changements engagés ne touchent que la branche. Est-ce possible? Est-ce que je demande un sens?

Je suppose que ce n'est pas vraiment nécessairement différent de la fusion d'une série de révisions; il est juste que j'utilise AnkhSVN, qui effectue toutes ces vérifications meilleures pratiques avant de permettre à une fusion, et parfois il se sent comme il est beaucoup plus compliqué que cela doit être. L'idée est que je veux garder ma branche mise à jour avec tout engage d'autres développeurs peuvent formulerai au tronc de sorte que quand je fini par ne fusionner ma branche dans le tronc, tout se passe (comme ) en douceur (possible).

Était-ce utile?

La solution

Garder votre branche à faire jour avec les derniers check-ins tronc est appelé une fusion.

Je sais que la fusion peut être un cauchemar royal parfois, mais c'est précisément ce que la fusion est.

Autres conseils

TL; DR; Non, vous devez fusionner, voici quelques instructions

Il est pas aussi mauvais que vous pensez qu'il est. Je vais décrire les étapes de la ligne de commande que je l'utilise. Je vais utiliser vimidiff pour gérer les conflits que vous pouvez utiliser Meld ou someother outil de diff que vous aimez. Les commandes sont précédées par la marque « # » le hachage

<in branch first time from copy>
# svn log --stop-on-copy | tail 
<read the revision that was the copy instruction in this case r229>
# cd ../../trunk
# svn up
<I make note of the latest rivision which is r334>
<now I go back to the branch>
# cd ../branches/branch 
# svn merge -r229:334 svn://url.to.svn.server/project/trunk
<a whole bunch of stuff happens>
< now I check for conflicts >
# svn status | grep ^C
<which outputs something like>
C       public/tools/Diagnostic.class.php
C       public/domain/Report_Setup_Parameter.class.php
C       public/modules/mReports.module.php
<I now revert all these and manually merge them>
# svn revert public/tools/Diagnostic.class.php
...
<revert done now manuall doinng the merge
# vimdiff public/tools/Diagnostic.class.php ../../trunk/public/tools/Diagnostic.class.php
...
<now all the changes are done>
# svn commit -m "Merging trunk into branch 'branch' r:229:334"
commited revision 335

Fait, si vous le faites reguarly alors il n'y a pas beaucoup de changements. Après la première fusion, vous devez utiliser la révision # de la dernière fusion. Par conséquent, un certain temps dans l'avenir, la commande serait dans le journal svn pour trouver lors de la révision de la dernière fusion était, dans ce cas 335. La commande de fusion ressemblerait thuse

# svn merge -r335:370 svn://url.to.svn.server/project/trunk

Toutes les autres étapes sont les mêmes.

  

L'idée est que je veux garder mon   branche mise à jour avec des commits   d'autres peuvent formulerai aux développeurs la   tronc de telle sorte que quand je fais finalement   fusionner ma branche dans le tronc,   tout se passe (comme) en douceur (comme   possible).

Pour que vous devez faire gamme de révision se fond du coffre. En fait, il est une bonne pratique de faire ce genre de fusion à une branche de temps en temps pour être à jour avec ce qui se passe dans le coffre.

Je ne sais pas sur les outils pour AnkhSVN, mais « pur » SVN a de très bons outils qui rendent les opérations de fusion assez simple. TortoiseSVN est un excellent outil pour Windows et si vous le souhaitez Netbeans il y a un très beau support graphique pour la fusion aussi.

Je ne suis pas familier avec AnkhSVN, mais ce que vous décrivez est exactement ce que svn merge est pour. Donc, la réponse à votre question est non.

Cependant, vous pouvez vérifier l'option --reintegrate pour voir si cela rend votre vie plus facile.

Voir ces messages de blog:

Subversion
fusion réinsèrent Subversion 1,5 fusion de suivi en un mot

Si vous utilisez PHPStorm vous pouvez essayer d'utiliser l'interface graphique https://www.jetbrains.com /help/idea/2016.1/integrating-changes-to-from-feature-branches.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top