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 :

Intégrer SVN à un projet web déjà en production


Sujet :

Subversion

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Intégrer SVN à un projet web déjà en production
    Bonjour,

    J'ai un peu de mal à comprendre quelques trucs sur SVN.
    Actuellement je travaille comme ça :
    • Serveur linux
      • /home/preprod/httpdocs/...
      • /home/prod/httpdocs/...
    • Mon PC au boulot : C:/travail
    • Mon PC chez moi : C:/travail


    Ça m'oblige à faire très attention aux versions des fichiers que j'utilise, puisque potentiellement j'en ai 4. Je fais tout via FTP "à la main". Donc quand j'ai bossé au boulot et que je veux continuer chez moi, je récupère à la main les fichiers sur le FTP pour les recopier sur mon C:/travail. Ce qui est important, c'est que je n'ai pas de serveur apache sur mes machines : je préfère tester tout sur la preprod. Autrement dit, C:/travail ne me sert qu'à "stocker" les fichiers en local pour les modifier via un éditeur de texte.

    Je souhaiterais intégrer SVN, que je ne connais pas bien pour l'instant mais qui me parait hyper légitime dans ce cas. Ce que je ne comprends pas avec SVN c'est le lien entre le dépôt SVN, qui stocke/gère tous mes fichiers, et mon "vrai" site qui fonctionne et dont les fichiers sont dans /home/prod/httpdocs

    Quand je crée un nouveau projet avec SVN, il me crée un dépôt
    • /var/svn/depot_projet1
      • trunk
      • branches
      • tags


    Admettons :
    • J'ai un dépôt svn sur un serveur distant (ex: /var/svn/depot_projet1)
    • Je fais un checkout : je récupère tous les fichiers pour bosser dessus (C:/travail <=== /var/svn/depot_projet1/trunk)
    • Je fais des modifs "temporaires" (commit C:/travail ===> /var/svn/depot_projet1/trunk)
    • Quand j'ai fini, je fais un commit en "taguant" qui met à jour en versionnant toutes mes modifs sur le dépôt (C:/travail ===> /var/svn/depot_projet1/tags)


    Pour moi, ça ne bascule pas mes modifications sur la preprod mais dans un dossier svn de "sauvegarde", rien à voir avec mon /home/preprod/httpdocs/...

    Je souhaiterais pouvoir :
    • Faire un checkout du site web de preprod (checkout ou update : C:/travail <=== /home/preprod/httpdocs/)
    • Faire mes modifs en local et les tester en preprod (commit : C:/travail ===> /home/preprod/httpdocs/)
    • Quand je considère que c'est OK, basculer la preprod sur la prod (/home/preprod/httpdocs/ ===> /home/prod/httpdocs/ OU C:/travail ===> /home/prod/httpdocs/)


    Hors de ce que je comprends de SVN, tout se passe comme s'il ne s'agissait que d'une sorte d'espace de stockage de codes sources, mais qu'à aucun moment je ne pourrais l'utiliser directement.
    Actuellement mes "commits" sont en quelque sort mes envois de fichier en FTP. Dès que le fichier est envoyé, je peux tester sur la preprod, si c'est ok, j'envoie le fichier en FTP sur la prod.

    Faut-il en fait que quand j'ai fini toutes mes modifs, et que j'ai une version qui me plait, j'en fasse une version dans tags, puis... que j'aille dans /home/prod/httpdocs, et que je fasse un checkout/update, pour que mon dossier /home/prod/httpdocs/ fasse une "copie de travail" ? Est-ce qu'en fait je dois travailler avec SVN pour "versionner", mais qu'à chaque "commit" je dois aller faire un update dans /home/preprod/httpdocs ou /home/prod/httpdocs ?

    Au début je pensais qu'il "suffisait" de modifier les répertoires /trunk, /tags pour les remplacer par /home/preprod/ et /home/prod mais c'est évidemment une connerie puisqu'en fait trunk et tags ne contiennent pas réellement de "vrais" fichiers. Je pensais que faire un "commit" basculait directement des modifications en prod (ou preprod).

    Ce sujet a sans doute déjà été abordé mais je m'y perds à la lecture des différents messages du forum. Je comprends de mieux en mieux le principe de SVN mais n'arrive pas à le raccrocher à une utilisation dans une production de site web.

    Merci à ceux qui seront allés au bout de ce message, et encore plus à ceux qui me répondront !

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Votre problème est un simple problème d'utilisation de l'outil.

    Il faut tout d'abord faire la disctinction entre un checkout et un export.
    Un checkout récupère les fichiers sur votre dépôt svn, ainsi qu'un dossier .svn qui sert à faire le suivi de version.
    Un export quant à lui, récupère lui aussi les fichiers sur votre dépôt svn, mais pas le dossier .svn (vous ne pourrez donc pas faire de commit à partir du répertoire exporté).

    Pour votre utilisation il va falloir séparer deux moments :
    • La phase de développement.
      Vous récupérer votre projet en local via un checkout, faites vos modifications puis vous faites un commit sur votre dépôt.
    • La phase de livraison.
      Vous créez un tag sur votre dépôt contenant une date et/ou un n° de version, vous faites un export de ce tag que vous déployez sur votre serveur de production


    L'idée ici, est qu'il faut ajouter une étape transitoire entre la fin de vos développement et la livraison d'un état stable de votre projet. L'intérêt principal est que vous allez ainsi pouvoir tracer précisément quelle version vous avez livré, mais aussi vous pourrez refaire une livraison précédemment faite sans avoir à chercher dans les revisions de votre dépôt (il suffira de rechercher dans les tags).

    Internet regorge de ressources sur les bonnes pratiques d'utilisation de subversion dans le cadre d'un projet si vous avez besoin de plus de détails.
    J'espère que cela répond à votre question.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci pour votre réponse. Effectivement je me suis aperçu que la plupart du temps, il faut utiliser un "hook", qui va effectuer des tâches hors SVN en fonction d'une action effectuée sur le SVN.
    Par exemple, un hook qui exporte à chaque commit sur la preprod, ou ce genre de choses.

    Je n'avais au départ pas connaissance de ces fameux "hooks" et je voyais donc pas du tout comment "automatiser" le passage d'une version commitée vers une preprod. L'idée était de dire : je modifie X fichiers, je commit et ça m'envoie les modifs sur le SVN et sur la preprod en même temps.

    Merci en tout cas pour vos éclaircissements,
    Cordialement,

Discussions similaires

  1. intégrer un modèle de page html dans un projet web
    Par masoum dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 03/06/2015, 15h20
  2. Intégrer un projet JPA dans un projet web
    Par ridha11111 dans le forum JPA
    Réponses: 1
    Dernier message: 24/05/2015, 18h24
  3. Réponses: 8
    Dernier message: 05/05/2010, 17h46
  4. Dynamic Web Project - checkout de SVN et projet non reconnu
    Par nicolas_isi dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 26/06/2009, 12h09
  5. Intégrer un projet EJB3 avec un projet web jsf
    Par adnane1984 dans le forum JSF
    Réponses: 7
    Dernier message: 30/04/2008, 11h01

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