Yii Framework Forum: Gérer Un Tronc Commun De Fichiers Entre Deux Projets - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Gérer Un Tronc Commun De Fichiers Entre Deux Projets Quel outil utiliser pour éviter les copier / coller Rate Topic: -----

#1 User is offline   Clem 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 30
  • Joined: 15-November 10

Posted 10 April 2013 - 04:54 AM

Bonjour,

je développe depuis quelques années maintenant sur Yii, j'ai par exemple un site catalogue classique que je personnalise selon les demandes du client.

A chaque nouveau projet je duplique le site et modifie les fichiers au cours du développement.

Mon problème c'est qu'à chaque fois que je modifie un fichier commun à tous ces catalogues (le modèle Catégorie par exemple), je dois l'actualiser dans les répertoires des autres catalogues/projets. Alors forcément j'en oublie, je me trompe de répertoire... bref c'est galère et au final je n'ai jamais un site possédant les derniers changements.

Je suis allé voir du côté des systèmes de versions comme GIT et autres, mais je n'ai pas compris s'ils permettent de partager certains fichiers / répertoires entre projets ou s'ils permettent seulement de partager un répertoire entre utilisateurs, avec historique etc.

Peut-être pouvez-vous m'éclairer un peu plus là dessus, et me dire comment vous feriez!

Merci d'avance, bonne journée
Clem
0

#2 User is offline   Raoul 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 636
  • Joined: 29-November 08
  • Location:Paris, France

Posted 10 April 2013 - 05:21 PM

Salut Clem,
de ce que j'en comprends, un système comme GIT (ou bien au autre système de gestion de sources style SVN) pourrait t'être utile.

GIT te permet de sauvegarder toutes tes sources dans la branche principale (le "tronc commun"). Ensuite, pour chaque client, tu peux créer une branche particulière qui te permettrait notamment de conserver la version exacte installée chez ce client (ainsi que l'historique des modifications).

Ensuite, quand tu le souhaites (par exemple une fois que la version du client est stabilisée) tu peux reporter certaines modifications spécifiques à ce client, vers la branche principale, qui représente le "tronc commun". Bien sûr l’intérêt de cette opération de "fusion" (en anglais 'merge") c'est qu'elle s'applique aux modifications qui apportent une valeur ajoutée au tronc commun, et qui sont suffisamment générique pour en faire partie. A toi de les choisir ....

Lorsqu'un nouveau client se présente, c'est reparti ! Tu créé une branche pour ce client, depuis le tronc commun, enrichi par le ou les projets des clients précédents. De cette façon, ton tronc commun évolue et s'améliore et toi tu garde l'historique de toutes les versions installées chez tous tes clients.

GIT permet aussi de partager du code et de permettre à d'autres développeurs de proposer des modifications de code... mais bon, là on est plutôt dans le domaine "open Source".

Enfin, c'est comme cela que je gérerai ce problème et j'espère avoir éclairé ta lanterne ;)

ciao
B)
0

#3 User is offline   Clem 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 30
  • Joined: 15-November 10

Posted 12 April 2013 - 04:19 AM

Merci pour cette réponse détaillée.

C'est bien ce que j'avais compris en creusant un peu le sujet.
Mais ça me parait compliqué à mettre en place et utiliser, j'ai pas encore bien compris les mécanismes et automatismes de GIT. Qu'est-ce qui se passe physiquement sur le disque quand j'ajoute une branche?

Je manque de temps pour apprendre en tâtonnant... Personne ne propose de formation sur le sujet?

Utiliser la console à longueur de journée me parait un peu austère, est-ce que vous utilisez des outils plus automatisés? Genre qui demande quoi faire avec chaque fichier ajouté / modifié dans un répertoire? Le but c'est quand même de gagner du temps!

Je garde sous le coude l'idée d'une branche par nouveau client (ça peut être dans des dossiers séparés je suppose?).
Encore merci Raoul pour ta participation.

A bientôt
0

#4 User is offline   Patrice 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 8
  • Joined: 15-December 11
  • Location:France

Posted 16 November 2013 - 07:27 PM

Bonjour,

J'ai le même genre de problème récurrent, et je vais le résoudre par 2 scripts PHP.

Un 1er script constitue la liste de tous les fichiers dans l'arborescence Yii, la liste des tables et des champs dans la base de données, et la liste des données système dans la base de données (= les données qui sont maintenues par l'équipe projet, et qui doivent rester intactes). Ce 1er script doit être lancé sur le site de référence et aussi sur le site audité.

Une fois les 2 listes récupérées, le 2nd script compare les 2 listes et met en évidence les différences.

Il ne reste plus qu'à analyser humainement ces différences, et à agir en conséquence ...

Ce n'est pas encore au point, mais ça commence à me donner des résultats encourageants.

Je communiquerai ces scripts quand ils seront présentables.
a+
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users