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 !
Partager