IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Subversion Discussion :

merge qui ne fonctionne pas comme prévu [Bonne pratique]


Sujet :

Subversion

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut merge qui ne fonctionne pas comme prévu
    Bonjour,

    Je suis sous ubuntu, j'ai svn installé et je l'utilise principalement en ligne de commande; Par ailleurs j'ai aussi rapidsvn, mais je prefere me familiariser avec svn avant de passer à l'interface graphique.

    Je travaille sur un projet ruby on rails avec un ami.
    celui ci est sous win et jusqu' a maintenant nous echangeons par mail le dossier zippé;
    Il est plus actif que moi sur le projet, donc il m'envoie un fichier zippé numéroté en me demandean de travailler sur un ou 2 sujets précis , ce que je fait assez rapidement et lui renvoie le ficher zippé modifié.
    generalement il part de ma version pour continuer a travailler.
    au coup suivant il fait evoluer la version (dans le nom simplement) du fichier zippé.

    comme j'ai plus de temps , j'ai décidé d'essayer de travailler avec subversion afin de s'eviter ce genre de manip qui amène regulierement des petits pb chronophages. pertes de modifs, oublis, etc...

    je suis donc parti de (disons) projet77 qu'il m'a envoyé.
    c'etait pendant les vacances donc nous avons travaillé tous les 2 sur des parties différentes mais qui touchent des fichiers communs.
    j'ai ainsi travaillé sur cette version et ai mis à jour projet77 en projet77mod.
    mon ami m'envoie par la suite projet79 sans avoir eu mes modifs.
    j'ai donc des repertoires projet77, projet77mod et projet79 que j'utilise de facon traditionelle (hors svn)

    voici ce que j'ai mis en place et effectué pour essayer de fusionner le tout:

    un repository projet avec trunk et branches/moi , branches/lui
    dans le trunk j'ai mis projet77
    puis j'ai copié le trunk dans les 2 branches.
    puis j'ai checkouté le tout respectivement dans un working copy trunk, branches/moi et branches/lui.
    j'ai ensuite copié le contenu du rep projet77mod dans wc/branches/moi
    j'ai ajouté (svn add) les fichiers et commité puis update
    j'ai ensuite copié le contenu de projet79 dans wc/branches/lui
    ajouté (svn add) les fichiers et commité puis update

    ensuite dans wc/trunk j'ai fait le merge suivant:
    svn merge file:///path/to/repo/trunk file:///path/to/repo/branches/moi
    essai . ok mes modifs sont là. commit/update
    puis svn merge file:///path/to/repo/trunk file:///path/to/repo/branches/lui
    essai, ses modifs sont la mais mes modifs ont disparues.

    y a manifestement un truc qui m'echappe.
    qqun peut t il me deniaiser sur la question ?

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    OK,
    PB résolu, pour ceux que ca pourraient intéresser, je poste la solution:

    La solution se trouve ici:http://svnbook.red-bean.com/en/1.0/ch04s04.html

    partie: Merging a Whole Branch to Another

    Beaucoup de ptits nouveaux sous svn se font avoir car la plupart des exemples de merge dans différents tutoriels, ne reflètent pas ce cas.
    En fait le merge doit etre le reflet des modifications appliquées sur la branche et intégrées au reflet du trunk:
    donc dans mon cas la bonne commande était:
    cd trunk
    svn merge -r x1:HEAD file:///path/to/repo/branches/lui
    avec x1 correspondant à la version résultant du commit suite à l'application des modifs de "lui"
    pour connaitre x1, il faut se mettre dans la branches/lui et faire svn log
    les message de commit et de révision permettent de repérer l'application des modifs.
    HEAD peut être noté tel quel ou bien il suffit d'aller dans le trunk et de faire aussi svn log
    le dernier numéro de révision sera équivalent à HEAD.
    comme précisé, sur le site donné en url ci dessus, bien noter dans le commit les numéros de révision si dans l'avenir ce processus doit se reproduire.
    perso je recommande de noter (dans le message de commit par ex) la commande merge tapée à cette occasion.

    il est aussi intéressant de commencer par svn merge avec l'option --dry-run pour simuler le merge et voir les fichiers impactés.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Filtrage au niveau de la requête qui ne fonctionne pas comme prévu
    Par hartecel dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/06/2008, 14h06
  2. [Cookies] Session qui n'expire pas comme prévu
    Par zvince dans le forum Langage
    Réponses: 13
    Dernier message: 20/02/2008, 15h27
  3. [MySQL] Un formulaire qui ne fonctionne pas comme il faut (problèmes avec stripslashes & com)
    Par vincent.b dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/04/2007, 20h02
  4. requete qui ne fonctionne pas comme je shouterais
    Par domino_dj dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/04/2007, 12h27
  5. un if qui ne fonctionne pas comme je veux
    Par Kelly182 dans le forum Access
    Réponses: 4
    Dernier message: 27/07/2006, 15h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo