[svn] Différences entre deux branches?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [svn] Différences entre deux branches?

Re: [svn] Différences entre deux branches?

par zeus » 11 févr. 2011, 18:02

Qu'est-ce qu'une branche SVN ? une copie d'une branche à une révision donnée dans laquelle il est possible de commiter du code.
Qu'est-ce que le tronc ? le nom donné à la branche principale.

Autrement dit, si le tronc officieux est une branche, tant pis, c'est pas grave.

Il y a une technique couramment utilisé pour gérer la vie d'un logiciel, c'est de faire une branche du nom de la version, de créer une branche pour les nouvelles versions, et de migrer progressivement les développements de l'ancienne branche vers la nouvelle. Cela reviendrais à dire que le tronc est passé d'une branche à une autre.
Petite illustration :
  • création du projet : une seule branche v1.0 (le tronc est donc cette branche)
  • début du développement de la v2, une branche v2.0 est créé (cohabitation des 2 branches, mais le tronc est toujours v1.0)
  • sortie de la v2.0 en stable, le tronc est donc cette version
Bref, la notion de tronc, c'est juste une donnée intellectuelle.
L'organisation standard n'est qu'une bonne habitude

Re: [svn] Différences entre deux branches?

par jojolapine » 11 févr. 2011, 15:06

Alors le fait est que l'on a pas cherché à réinventé la roue, c'est simplement qu'un jour quelqu'un s'est dit oh... si je créais une branche?
Et depuis tout le monde développe dessus :/
Donc y a une une bonne initiative, mais qui n'a pas été suivie :)

Re: [svn] Différences entre deux branches?

par ouckileou » 11 févr. 2011, 14:28

Premièrement j'ai le dépôt complet sur ma machine, donc pas de checkout, uniquement des update (ça ça doit pas poser de problème?)
Non pas de problème le checkout c'est une fois au début puis effectivement des updates pour le tenir à jour (le dépot c'est ce qui est sur le serveur, toi tu as une copie de travail en local)
Le Trunk n'existe pas à proprement parler, en fait la branche1 fait office de trunk pour l'instant.
La gestion passée du dépôt est un peu obscure, et c'est moi qui me colle aux premières expériences de branches :)
Donc pour résumer, j'ai une branche1 qui fait office de trunk, sur laquelle il m'arrive de travailler pour hotfixer des bugs, et sur laquelle le reste de l'équipe travaille (pour l'instant pas de notions de branches pour eux).
Et j'ai ma branche2 sur laquelle je développe un module de plus grande envergure.
C'est plus clair?
Bien que Subversion soit plutôt souple et laisse donc place à la philosophie de chacun et sa propre organisation, je suis souvent surpris de voir pas mal de gens réinventer le fonctionnement, en changeant des trucs alors que les bonnes pratiques standards conviendraient. Dans ton cas, pourquoi ne pas utiliser la trunk ? Ce serait tout de même plus logique, plutôt qu'une branche parmi les branches non ?

C'est juste une remarque en passant, moi je m'en fiche et ta branche marchera pareil ;)

Re: [svn] Différences entre deux branches?

par jojolapine » 11 févr. 2011, 11:27

Bonjour,

Bon je suis en train de relire http://www.humbug.in/docs/svnbook-fr/sv ... using.html
Pour résumer et voir si je diffère du manuel, je reviendrais résumer mes conclusions ici.


Pour revenir à mon architecture, elle est un peu spéciale :/
Premièrement j'ai le dépôt complet sur ma machine, donc pas de checkout, uniquement des update (ça ça doit pas poser de problème?)
Le Trunk n'existe pas à proprement parler, en fait la branche1 fait office de trunk pour l'instant.
La gestion passée du dépôt est un peu obscure, et c'est moi qui me colle aux premières expériences de branches :)
Donc pour résumer, j'ai une branche1 qui fait office de trunk, sur laquelle il m'arrive de travailler pour hotfixer des bugs, et sur laquelle le reste de l'équipe travaille (pour l'instant pas de notions de branches pour eux).
Et j'ai ma branche2 sur laquelle je développe un module de plus grande envergure.

C'est plus clair?

Re: [svn] Différences entre deux branches?

par ouckileou » 10 févr. 2011, 17:57

Ben c'est bien expliqué mais du coup je vois trois commandes de merge, alors que je pensais n'en voir qu'une...

Ce que tu fais me paraît bien compliqué, dans mes souvenirs tu checkout la cible, tu merges la source dedans, puis tu commites. Cherche sur internet des exemples, je pense que tu trouveras plus simple que ce que tu as fait. Mais c'est vrai que ce n'est pas forcément trivial.

Par curiosité à quoi correspondent ces branches ? Ou est ta trunk dans l'histoire ? :)

Re: [svn] Différences entre deux branches?

par jojolapine » 10 févr. 2011, 16:03

Bon j'ai un problème qui fait suite à tout ça :/

Je souhaite réintégrer des parties de ma branche2 vers la branche1...
Donc je fait ceci:

Code : Tout sélectionner

$ pwd /path/to/branche2 // mise à jour de ma branche2 par rapport à la branche1 $ svn merge svn:serveur/branche1 // tests & co... // si tout est OK // commit de mes changements sur fichier1.php dans la branche2 $ svn commit fichier1.php -m "version finale" // puis réintégration de mon fichier1.php dans la branche1 $ pwd /path/to/branche1 $ svn merge --reintegrate svn:serveur/branche2/fichier1.php ./fichier1.php // tests si le fichier réintégré ne pose pas de problèmes // si ok commit des modifs dans la branche1 $ svn commit fichier1.php -m "réintégration de fichier1.php depuis la branche2" // jusque là tout va bien, le problème survient lorsque je fait à nouveau un $ pwd /path/to/branche2 // mise à jour de ma branche2 par rapport à la branche1 pour continuer mon travail $ svn merge svn:serveur/branche1 // Le fichier1.php va se faire "mergé", un svn status indique qu'il y a des modifications sur les propriétés... // et je peux me mordre la queue longtemps comme ça!
Voilà je sais pas si ma petite histoire racontée en "shell" est compréhensible?

Merci d'avance pour vos conseils!

Re: [svn] Différences entre deux branches?

par jojolapine » 10 févr. 2011, 12:47

Yes!

ça marche au poil!

En attendant je faisait ceci :

Code : Tout sélectionner

svn merge --reintegrate branche2 branche1 --dry-run
Qui marche plutôt bien aussi :)
Je met donc résolu!

Re: [svn] Différences entre deux branches?

par ouckileou » 10 févr. 2011, 12:32

parametre --summarize du diff fera exactement ce que tu veux

Autre commande utile : svn help <commande>

[svn] Différences entre deux branches?

par jojolapine » 10 févr. 2011, 11:23

Bonjour à tous,

Ma question pourra paraître un peu simple à ceux qui utilisent déjà depuis longtemps le système de branches avec SVN, mais je n'ai pas trouvé de réponse pour l'instant!

Je souhaiterais effectuer une sorte de svn status mais entre deux branches...
La commande svn diff branche1 branche2 est bien trop bavarde à mon gout.

Je voudrais bien avoir un truc du genre:

Code : Tout sélectionner

$ svn status branche1 branche2 M branche2/fichier1.php M branche2/fichier2.php A branche2/fichier3.php A branche2/fichier4.php D branche2/fichier5.php
Merci d'avance pour votre aide!