Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-09-2007 12:48:56

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

[Résolu] Synchronisation

Salut
Je voulais savoir ce que vous utilisez comme outils pour synchroniser votre projet avec un serveur distant.
J'utilise eclipse et suis sous linux.
Voilà merci

Dernière modification par alien7 (16-12-2007 12:13:52)


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#2 23-09-2007 22:32:42

yannux
Membre
Lieu: Rennes
Date d'inscription: 07-04-2007
Messages: 284
Site web

Re: [Résolu] Synchronisation

J'édite directement sur ftp avec Zend Studio


Société : Direct Info Service

Hors ligne

 

#3 24-09-2007 00:10:53

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: [Résolu] Synchronisation

Ca doit étre lent qaudn meme non ? De plus FTP de ce que j'ai lu ssh est plus sécurisé.
Il n'a pas un logiciel qui enverrait seulement les fichiers qui ont été modifié ?

De manière génerale je voulais savoir, comment faire pour maintenir un site à long terme. Par exemple je rajoute des fonctions ou autres modules, je serai amener à modfier certains fichiers et donc ca en deviendra difficile de savoir quel fichier j'ai modifié.

Sinon un server SVN conviendrai ou pas ? Je suis seul à coder donc je me pose la question de son utilité, avantages et inconveniants.

Merci ++


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#4 24-09-2007 08:25:58

TiTerm
Membre
Date d'inscription: 01-07-2007
Messages: 175

Re: [Résolu] Synchronisation

Nous travaillons essentiellement en local, mais lors du commit via subversion, j'ai mis en place un hook post commit qui fait automatiquement un checkout (un update en fait)  des sources sur le serveur de dev distant. De cette façon, on a toujours une version du serveur distant a jours. Mais cette méthode ne permettrai pas de travailler réellement sur le serveur distant.

Néanmoins, tu devrais regarder ce plugins eclipse pour pourrait peut être répondre à tes besoins.
http://andrei.gmxhome.de/filesync/index.html

Hors ligne

 

#5 24-09-2007 15:11:00

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: [Résolu] Synchronisation

TiTerm ->
Je crois qu'il n'est plus maintenu ce plug in, je l'ai essayé mai sj'ai rien compris.

Sinon j'ai trouvé ca, je suis en train de le tester. Je vais m'en contenté.:
http://www.eclipse.org/dsdp/tm/

Merci ++


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#6 24-09-2007 20:23:56

dinoxyz
Membre
Date d'inscription: 31-03-2007
Messages: 70

Re: [Résolu] Synchronisation

Bonjour,
Ton plug in peut-être sympa à condition que se soit un serveur local de développement. Car c'est hyper dangereux, de travailler directement sur le serveur distant. Totalement, déconseillé en plus, même si on travaille seul, on ne peut pas se permettre de faire tout et n'importe quoi. Maintenant, tu fais comme bon te semble mais moi qui travail seul, j'essaye d'avoir un serveur de développement et un de production même sur le même serveur pour ne pas avoir 60 PC et je trouve ça déjà léger pour placer les tests unitaires et de recettes.

Cordialement,
Dinoxyz


Système : Ubuntu (Linux)
Version : PHP 5.2.1
Mode debug actif

Hors ligne

 

#7 24-09-2007 21:04:00

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: [Résolu] Synchronisation

Le plugin sert juste à envoyé mes fichiers, il n'est pas encore au stade de SVN, mai sje suis pose que plus tard il va tendre sur le meme principe que SVN. Pour l'instant j'envoi mes fichiers comme un simple client FTP, avec une connexion SSH, donc sécurisé normalement.

Je ne travail pas directement sur le server de production, donc ca reste correcte ca non ?
Merci ++

Dernière modification par alien7 (24-09-2007 21:04:17)


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#8 24-09-2007 21:58:45

dinoxyz
Membre
Date d'inscription: 31-03-2007
Messages: 70

Re: [Résolu] Synchronisation

Oui, bien sur que c'est correct.

C'est juste un conseil, de ne pas travailler sur le serveur de production, après les développeurs font comme ils veulent, mais je trouve ça très dangereux, je tenais à le préciser mais c'est mon point de vus.


Système : Ubuntu (Linux)
Version : PHP 5.2.1
Mode debug actif

Hors ligne

 

#9 12-11-2007 18:52:25

charlysquare
Membre
Date d'inscription: 05-11-2007
Messages: 21

Re: [Résolu] Synchronisation

TiTerm a écrit:

Nous travaillons essentiellement en local, mais lors du commit via subversion, j'ai mis en place un hook post commit qui fait automatiquement un checkout (un update en fait)  des sources sur le serveur de dev distant. De cette façon, on a toujours une version du serveur distant a jours. Mais cette méthode ne permettrai pas de travailler réellement sur le serveur distant.

Bonjour,

J'ai mis en place mon svn, je me connecte à distance et fais mes commits, mais pour mettre à jour mes pages sur mon serveur web, je passe encore par un export + transfert ftp..

Si j'ai bien suivi ton hook post commit automatise la tâche export + transfert ou tout au moins évite de la faire ? Pourrais-tu m'expliquer comment ça marche ?

Merci d'avance

Charly

Hors ligne

 

#10 12-11-2007 19:43:41

charlysquare
Membre
Date d'inscription: 05-11-2007
Messages: 21

Re: [Résolu] Synchronisation

J'ai tenté plusieurs étapes sans succès :

1. Modification du post-commit.tmpl avec :
/usr/bin/svn update /var/www/projet/

2. cp post-commit.tmpl post-commit

3. chmod +x post-commit

Je fais un commit à distance, mais le site web n'est pas updaté.

Si je fais un test manuel ./post-commit, ça fonctionne, l'update se déroule bien.

Un ptit coup d'pouce ?

EDIT : j'utilise Tortoise à distance en svn+ssh:// pour faire mon commit.

Dernière modification par charlysquare (12-11-2007 20:09:19)

Hors ligne

 

#11 12-11-2007 22:32:16

charlysquare
Membre
Date d'inscription: 05-11-2007
Messages: 21

Re: [Résolu] Synchronisation

Bon c'est un problème de permissions en fait. Je fais un commit avec un user charly qui n'a pas les droits d'executer le post-commit, alors qu'en root ça passe.

Il faut que je change les droits sur charly.

Hors ligne

 

#12 13-11-2007 08:34:39

TiTerm
Membre
Date d'inscription: 01-07-2007
Messages: 175

Re: [Résolu] Synchronisation

Ok, en fait, tu as bien compris le principe. Il effectivement prendre en compte que le post-commit sera executé avec les droits de l'utilisateur qui a lancé le serveur subversion.
Dans mon cas, le serveur subversion est différent du serveur de dev. On a donc un serveur subversion qui effectue un post commit via ssh sur le server de dev avec l'utilisateur de dev.
Dans un premier temps, j'avais fait qq chose d'assez simple. Un checkout pour chaque branches que je souhaitais maintenir à jour sur le serveur, et dans le post commit, un update effectué sur chacunes de ces branches.
C'est simple et ca marche bien, l'inconvénient, c'était que le commit coté client attend la fin du commit coté serveur, et comme notre serveur de dev est une brouette, le post commit prenait trop de temps a mon goût et ca ne convenait pas.
Du coup, j'ai fait qq chose de plus évolué, et j'ai géré via des scripts shell une queue en background. Maintenant le post commit se content de mettre une tache dans la queue et rend la main de suite. Coté client, c'est le même ressentie que lorsqu'il n'y a pas de script post commit.
J'ai aussi ajouté une détection des conflits après update et un mail a l'équipe de dev lorsqu'un fichier est en conflit. Ceci arrive quand on a besoin de faire des tests sur le serveur car on a pas toujours un comportement identique sur solaris et sur windows, pour certaine fonction, pour la casse, etc... Si jamais un fichier a été édité sur le serveur et que le merge automatique ne passe pas, le fichier entre en conflit mais nous en somme automatiquement avertie via un mail.
Le dernier ajout est un petit système que j'ai ajouter le mois dernier qui nous permet de savoir que le post commit est terminé coté serveur (pratique pour savoir si on peut commencer a faire des tests sur le serveur et dans quelle version avec quelle version de sources)
C'est un système qui doit tourner depuis un peu moins d'un an maintenant et nous n'avons plus aucun problème.

Hors ligne

 

#13 13-11-2007 10:36:38

charlysquare
Membre
Date d'inscription: 05-11-2007
Messages: 21

Re: [Résolu] Synchronisation

Merci pour cette réponse très complète comme d'habitude dans tous tes posts !

Charly

Hors ligne

 

#14 13-11-2007 11:01:14

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] Synchronisation

Moi perso j'utilise le File Sync de Aptana (Plugin Eclipse)

Hors ligne

 

#15 13-11-2007 11:10:47

charlysquare
Membre
Date d'inscription: 05-11-2007
Messages: 21

Re: [Résolu] Synchronisation

Ca a l'air pas mal aussi.
Mais du coup ya 2 opérations à faire, le commit + la synchro (filtrée sur les .svn ?) ou tu fais tout en une seule fois ?

Dernière modification par charlysquare (13-11-2007 11:11:08)

Hors ligne

 

#16 11-12-2007 18:27:14

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: [Résolu] Synchronisation

Bonjour,
Je me suis mis à SVN, et je galère un peu, y'a des notions que je ne comprends pas encore.
Voilà j'ai bien installé le serveur SVN sur mon dédié, j'arrive à y acceder par http://mon_adresse_ip/svn et à me logguer.
Depuis subeclipse j'arrive aussi à commit les fichiers. Mais après je fais quoi ? Si j'ai bien compris les fichiers sont stocké en base de donnée c'est bien ca ? Donc comment je fais pour l'envoyer sur mon répertoire /var/www ?

J'ai debuté aujourd'hui mais je dois dire que je n'ai pas trouvé de bon tuto, si vous en avez...

Merci


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#17 11-12-2007 21:21:58

TiTerm
Membre
Date d'inscription: 01-07-2007
Messages: 175

Re: [Résolu] Synchronisation

1/ Tu fais un checkout du trunk ou de la branch qui t'interesse dans ton /var/www.

2/ Dans la partie serveur svn, tu as un répertoire hook, dedans, il y a un template pour le post-commit.
Tu te base sur le template et tu créé un script de post-commit qui sera automatiquement executé par le serveur svn après chaque commit. Dans ce script, tu fais simplement un  "svn update /var/www"
Ton rep /var/www sera automatiquement mis a jour avec la derniere version de la branche/trunk que tu as initialement  "checkouter".

Hors ligne

 

#18 11-12-2007 21:44:53

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: [Résolu] Synchronisation

Pour la 1 :
Tu parles d'un checkout sur mon PC ou sur le serveur distant ?
Si j'ai bien compris le dossier trunk je dois le crée, c'est le dossier pour l aversion en cours de développement, mais je le crée ou exactement ce dossier ?

Pour la 2 :
Alors je n'ai pas compris, je crée un nouveau post-commit.tmpl ? (que je place ou ? je remplace ?) ou je rajoute à la suite du fichier post-commit.tmpl, je peux aussi effacer la ligne, si j'ai bien compris dan sl'exemple il envoie un mail si le post-commit se passe bien.

Merci

Dernière modification par alien7 (11-12-2007 21:45:18)


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#19 12-12-2007 09:36:16

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] Synchronisation

Je viens de tester ça avec Eclipse et le plugin subclipse pour me "brancher" sur le svn du zf. Voilà ce que j'ai fais:

Le checkout, c'est (quand tu traduis) une vérification. Si c'est la première fois, tous les fichiers vont être récupérer. C'est donc de ton PC que tu lance cette manip, mais c'est en fait une requête au serveur svn.
Le Trunk s'ajoute donc lorsque tu a récupérer les fichiers (sous Eclipse, ça m'a créer un nouveau projet tout simplement).
A chaque fois que tu feras un checkout par la suite, ça verifira quels fichiers ont été modifiés et les mettra à jour.

Après pour l'histoire des commits je peux pas encore t'aider, je suis pas encore contributeur au zf smile

Hors ligne

 

#20 12-12-2007 10:42:57

smerlet
Nouveau membre
Date d'inscription: 12-12-2007
Messages: 1

Re: [Résolu] Synchronisation

Sinon il y a un tes bon client ftp/sftp qui s'appel winscp ( windows ) , il à une option de synchronisation des répertoires tres complete basé sur les timestamp ou la taille des fichiers , tres éfficace .
Je m'en sert pour les serveur ou je n'ai pas de subversion avec des auto-update.

Hors ligne

 

#21 12-12-2007 11:14:44

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: [Résolu] Synchronisation

Mr.MoOx a écrit:

Je viens de tester ça avec Eclipse et le plugin subclipse pour me "brancher" sur le svn du zf. Voilà ce que j'ai fais:

Le checkout, c'est (quand tu traduis) une vérification. Si c'est la première fois, tous les fichiers vont être récupérer. C'est donc de ton PC que tu lance cette manip, mais c'est en fait une requête au serveur svn.
Le Trunk s'ajoute donc lorsque tu a récupérer les fichiers (sous Eclipse, ça m'a créer un nouveau projet tout simplement).

Bah oui mais mon projet initial se trouve dejà sur eclipse, donc pour le mettre sur le server svn je dois bien faire un commit de tous mes fichiers non ?
Pour le dossier trunk je pense que je dosi aussi le crée manuellement sur le server svn ?
TOi tu as un dossier trunk car il est deja crée sur le server svn.


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#22 12-12-2007 11:48:52

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] Synchronisation

Tout ça m'a l'air exacte.

Hors ligne

 

#23 12-12-2007 14:57:54

TiTerm
Membre
Date d'inscription: 01-07-2007
Messages: 175

Re: [Résolu] Synchronisation

Je vais essayer d'éclaircir certains points.

D'abord, un peu de vocabulaire pour que l'on parle de la meme chose.

Faire un checkout, c'est extraire les sources d'une branche avec les infos de version. Cela extrait les sources mais cela créé aussi des répertoires cachés contenant les informations propres au gestionnaire de version (ici subversion) sur chaque fichier et répertoire extrait. Le checkout ne modifie pas le repository.

Faire un extract, c'est extraire les sources sans données propre a subversion. L'extract ne modifie pas le repository.

Dans un répertoire où on a fait un checkout, on peut faire à tout moment et sans plus rien préciser un
svn update. Cela va mettre a jours uniquement les fichiers dans le repertoire courant dont des version serait plus récente dans le serveur subversion (la branche sur laquelle on a fait un checkout est mémorisé lors du checkout, inutile de la repréciser). Un update ne modifie pas le repository.

Un commit : C'est valider les changement que l'on a effectué sur les sources. Les sources sont envoyés vers le repository et une nouvelle version leur est attribués.  On ne peut faire un commit dans un répertoire ou on a effectué au préalable un checkout. Le commit modifie le repository.

Le trunk: C'est le tronc commun. En générale, la version en cours de dev.
Les branches: Ce sont des copies du trunk effectué a un instant T. par exemple, tu fais une releases v2. Tu créé une branche V2. Cela te permet de pouvoir faire la maintenance sur la V2 meme si le trunk évolue de son coté. En gen, lors d'une release, on fait ce qu'on appelle un tag. c'est une photos des sources tel qu'ils sont neccéssaire pour reconstruire la release. Le tag ne doit pas évolué. Il est simplement la pour pouvoir dire: Voila la liste des sources qui permet de construire la V2.  Si tu fois faire une correction, tu copies le tag dans une branche de maintenance. Tu effectues tes corrections. Une fois que c'est Ok, tu releases donc une v2.1 et crée un tag v2.1 qui te servira a maintenir la release v2.1.
Si tu veux réintégrer les corrections effectué dans la v2.1 dans le trunk, il penser a merger le tag dans le trunk.

Concernant ton pb.
Si ce que tu souhaites, c'est travailler en local sur les sources qui sont gérés par le serveur subversion.

Tu te met dans le répertoire où tu souhaites avoir les sources (ton serveur web local), et tu effectue un checkout de la branche ou du trunk. Tu aura donc une copie locale des sources. Si ton tu as correctement configuré ton environnement (serveur web, vhost, etc...) tu dois etre capable de faire fonctionner ton serveur web local avec ces sources.

Tu peux donc commencer à faire tes dev. Un fois que cela fonctionne en local. Tu doit faire un commit. c'est à dire envoyer sur le serveur subversion les modifications que tu as faites. Une fois le commit effectué, toute personne qui fera un checkout ou un update de la même branche que toi disposera des dernière modification que tu viens d'apporter.

Dans ce cas de figure,tu n'as pas besoin d'utiliser les hooks.

Si ce que tu souhaites, c'est synchroniser automatiquement un serveur distant avec les derniers sources (donc après chaque commit). Il faut d'abord faire un checkout sur le serveur distant que tu souhaites maintenir a jour. Dans les hooks, créér un script nommée post-commit (post-commit.tmpl est un exemple), rendre le script exécutable (chmod +x), Dans ce script, tu devrais t'arranger pour executer sur le serveur et dans le répertoire où tu as fais le checkout un "svn update". Cet update sera donc automatiquement effectué après chaque commit, et tu aura donc toujours un serveur avec des sources a jour.

Pour les hooks, il faut faire attention au droits et  au path (il sont exécutés avec les droits et l'environnement du serveur subversion)

Hors ligne

 

#24 13-12-2007 16:00:00

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: [Résolu] Synchronisation

Rebonjour,
J'ai pris du retard, je voulais crée plusieurs projets, j'ai bien galeré, pour ca j'ai renseigné le champ SVNParentPath au lieu de SVNPath donc ca marche.

Sinon j'ai avancé mais je bloque à la fin, voilà ce qu ej'ai fait:
- j'ai importer mon projet avec svn import sur le depot.
- J'ai crée le fichier post-commiit dans le dossier hooks du depot
- chmod +x post-commit sur le fichier pour l'execution
- dna sle script post-commit j'ai mis svn update http://IP_du_server/svn/porjet1/trunk /var/www

Et c'est là que ca ne marche pas, si je l'execute à la main ca marche, mais lorsque je fais un commit depuis eclipse ca ne marche pas.
J'ai le meme probleme que charlysquare, j'ai beau mettre le sdroits au max pour l'utilisateur ou pour www-data ca ne marche.

Je vois pas ou est le probleme, je cherche encore mais si vous avez des pistes je susi preneur.

Merci encore +++


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#25 13-12-2007 18:09:02

TiTerm
Membre
Date d'inscription: 01-07-2007
Messages: 175

Re: [Résolu] Synchronisation

en fait, dans ton update,  il ne faut pas repréciser le serveur svn, mais par contre il faut soit etre dans le répertoire ou a eu lieu le checkout ou indiquer le path vers ce répertoire

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages