Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#26 13-12-2007 18:20:09

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

Re: [Résolu] Synchronisation

Oui mais j'ai plusieurs depot, comment svn va savoir sur quel depot pointé pour faire le update ?
Est ce qu'il faut crée un groupe svn ? Dans certain stuto il le crée. Je pige pas encore comment il fonctionne reelement ce svn.


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

Hors ligne

 

#27 13-12-2007 18:53:08

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

Re: [Résolu] Synchronisation

les coordonnées du dépot seront automatiquement celle qui ont servie a faire le checkout. Elle sont mémorisé dans un répertoire cachés. C'est pour cela qu'un simple svn up suffit.

Hors ligne

 

#28 13-12-2007 19:06:08

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

Re: [Résolu] Synchronisation

Oui j'ai fais le test et ca marche. J'ai mis ces lignes là dan smon post-commit :

Code:

cd /var/www/
svn co http://IP/svn/projet1
svn update

Alors maintenant le souci c'est les droits. le fichier hook se trouve sur /home/alien7/svn/projet1/hooks
Il n'as pas les droit pour ecrire sur /var/www. j'ai misi www-data comme proprietaire du fichier hook
Désolé de t'embeter avec tous ca neutral
Merci pour ton aide


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

Hors ligne

 

#29 13-12-2007 20:23:58

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

Re: [Résolu] Synchronisation

Ah non, il ne faut pas faire de svn co.

Ton script, c'est un post-commit. Il est exécuté suite a un commit. Le commit a déjà eu lieu. Si tu fais un commit dans un script de post commit, ca vas devenir récursif...
Tu doit juste garder le cd et le svn update ou alors, svn update /var/www

Concernant les droits, le hook est éxécuté avec les droits du serveur subversion. Si le user est différent, il peut effectivement y avoir un problème.

Dans ce cas, tu as plusieurs solutions.

- Soit tu mets le  serveur svn et le serveur /var/www  dans un même groupe et tu donnes les droits d'écritures au groupe sur /var/www.

- Soit tu configures sudo pour pouvoir faire un svn up avec le proprio de /var/www

- Soit tu fait un chmod 777 de /var/www

- Soit tu fais un petit prog C dont le proprio est le même que /var/www et qui fera un seteuid() puis un svn up, et sur lequel tu aura mis le setuser bit via un chmod u+s

- Soit tu utilises le même user pour /var/www et pour le serveur subversion.

Y a surement encore d'autre possibilité, mais a cette heure la, c'est tout ce qui me vient.

Dernière modification par TiTerm (13-12-2007 20:25:08)

Hors ligne

 

#30 14-12-2007 20:35:55

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

Re: [Résolu] Synchronisation

Bon, rien à faire j'abandonne, rien à faire. J'ai mis l'user et le group d'apache à l'user et group de mon compte par defaut alien7.
J'ai lancer svnserve avec alien7, j'ai mis l'user et le group à alien7 sur /var/www avec un chmod 750.
0 la main l'update marche mais avec le post-commit j'ai un ereeur avec subeclipse :

Code:

svn: MERGE request failed on '/svn/projet1/trunk'
svn: Processing MERGE request response failed: Element type "http:" must be followed by either attribute specifications, ">" or "/>". (/svn/prohet1/trunk)

Bon je crois que je vais le faire manuellent le upade. C'est pas plus mal.
Merci encore pour toute ton aide TiTerm, tu m'as bien aidé et j'ai bcp appris.

Sincerement merci TiTerm smile
++


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

Hors ligne

 

#31 15-12-2007 10:18:06

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

Re: [Résolu] Synchronisation

Si tu as un pb de merge, c'est que tu as éditer les sources qui sont dans /var/www.

Il faut bien comprendre le principe.

Tu dois travailler dans une zone de dev sur ton PC et accéssoirement avec un apche sur ton pc pour la phase de dev.
Admettons que ce soit dans c:\dev\prj1, tu fais donc une seule fois un checkout en début de projet dans c:\dev\prj1.
Tu configures ton apache PC pour qu'il te permette de faire tourner les sources de c:\dev\prj1 en local sur ton PC. Tout ce que tu fera sera en local sur ton pc et ne sera visible que par toi. Les sources de l'appli ne seront pas modifier.
Une fois que le dev ou la correction sont effectués et que tu penses que c'est OK, Tu commit, c'est a dire que tu envoie tes modifications dans subversion de facon a ce que les sources de l'appli soient modifié et que tout le monde puissent récupérer tes modifs.
Suite a ton commit, le post commit sera effectué sur le serveur distant et fera un svn update sur le serveur distant. En fin de commit, tu pourra vérifier que sur le serveur apache distant, ta modif fonctionne aussi. Et toute les personnes qui ont accès a ce serveur distant pourront voir aussi la modif.
C'est pour cela qu'il ne faut pas modifier les sources du serveur distant car tu risques d'avoir des conflits lors du post commit. Dans cette archi, le serveur distant ne te sert qu'a vérifier le bon fonctionnement de ton appli. C'est principalement utile quand le serveur distant est un Unix et que tu dev sous windows. Il y a souvent des surprise.


Si tu dev seule et que tout tourne sur le même serveur (subversion, 1 seule apache dev) tu n'as pas besoin de mettre en place un hook post commit puisque tes dev sont directement visible par ton apache local.

En espérant t'avoir éclairer un peu plus smile

Hors ligne

 

#32 15-12-2007 13:54:36

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

Re: [Résolu] Synchronisation

Alors je vais essayer de tous reprendre.
Voilà ce que je veux en fait :
1 - Je suis seul à dev
2 - Je dev sous Ubuntu Gutsy avec eclipse, PDT, subeclipse
3 - J'ai un projet que je developpe en local.
4 - J'aimerais uploader sur mon serveur apache distant sur /var/www seulement les fichiers que j'ai modifié ou que j'ai rajouté. Je n'ai rien trouvé d'autres pour ca que SVN. De plus j'ai trouvé que ca serait bien d em'y mettre peut etre qui sait il peuy y avoir un 2e dev. Donc pourquoi pas apprendre à le mettre en place et je trouve SVN assez puissant dans ces fonctions.

Ce que j'ai fais.
5 - Installé subversion et configuré avec apache.
6 - Lancé le server svnserve avec l'utilisateur alien7, mis l'user et le groupe d'apache sur alien7
7 - Mis les droits et user et groupe alien7 sur /var/www
8 - svnadmin create porjet1 dan sle dossier /home/alien7/svn/
9 - J'ai importé depuis mon pc le projet avec svn import.
10 - ensuite j'efface tout de /var/www puis je fais un svn checkout, tout se passe bien
11 - je recrée unnouveau projet avec eclipse en faisant un svn checkout du depot projet1
12 - j'ai crée le fichier post-commit en le rendant executable, c'est bien alien7 qui le lance ?
13 - Dance fichier je met juste
cd /var/www
svn update
14 - Je fais une modification dans eclipse, je fais ensuite un commit là j'ai bien dans une fenetre que les fichiers que j'ai modifié (et c'est ca qui est bien) donc je commit les fichiers modifiés

Et c'est là que je voulais que lorsque je fais un commit de mes fichiers depus eclipse, les changements se fassent aussi dans le dossier /var/www

15 - Si j'execute à la main le fichier ./post-commit il me demande les mots de passe apache et l'update de /var/www se passe bien. les changements sont visisble sur mon site.
16 - Mais avec le commit sur eclipse il y'a une erreur avec le fichier psot-commit.

Voilà j'espere que c'est plus clair smile Et pourrais tu me dire à quel(s) numero(s) je fais fausse route.
Ou peut etre que je suis hors sujet en fin de compte. Peut etre que dans ce cas il ne faut pas faire de post-commit.

Merci encore


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

Hors ligne

 

#33 15-12-2007 15:24:02

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

Re: [Résolu] Synchronisation

La où je tick c'est la 15. Pourquoi est ce qu'il te demande un mdp ???
Le post commit est bien dans le rep hooks sur le ubuntu ?
Pour vérifer qui le lance, tu fais id > /tmp/pcommit.log
Tu fais un commit et tu regarde ce qu'il y a dans /tmp/pcommit.log

Hors ligne

 

#34 15-12-2007 15:48:12

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

Re: [Résolu] Synchronisation

Oui le fichier post-commit est bien dans le dossier hooks du depo projet1, alor ssi je l'execute à la main : j'ai ca :

Code:

$./post-commit
Authentication realm: <http://IP_serveur_distant> Subversion Repository
Password for 'alien7': 
Authentication realm: <http://IP_serveur_distant> Subversion Repository
Username: user_svn
Password for 'pass_svn':
U    index.php
Updated to revision 5.

Si je commit avec subeclipse, la console d'eclipse me met :

Code:

svn: MERGE request failed on '/svn/projet1/trunk'
svn: Processing MERGE request response failed: Element type "http:" must be followed by either attribute specifications, ">" or "/>". (/svn/prohet1/trunk)

id > /tmp/pcommit.log me retourne rien du tout.
Ou est ce que je peux recuperer le log de svnserve manuellement ?

"Pourquoi est ce qu'il te demande un mdp ??? " oui moi ausi je ne comprends pas, parce que le commit marche sans me demander de mot de passe alors pourquoi pour le post-commit il me le demande ?

Merci encore de m'aider:)


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

Hors ligne

 

#35 15-12-2007 17:34:27

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

Re: [Résolu] Synchronisation

Ah c'est la que ca coince...
En fait, quand tu fais ton extract, il faut faire un svn checkout --username alien7 --password tonpassword
Il devrait le mémoriser et du coup, il ne te posera plus la question lors du svn update


Pour le id qui ne retourne, il ne doit pas etre dans ton path
Recherche ou se trouve le binaire id, soit avec type, whereis,  en faisant un find... bref trouve le path

ensuite tu met
/path/id > /tmp/pcommit.log 2>&1

Comme ca, meme si y a une erreur, tu la verras

Dernière modification par TiTerm (15-12-2007 17:37:23)

Hors ligne

 

#36 15-12-2007 18:10:26

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

Re: [Résolu] Synchronisation

Non meme avec svn checkout --username alien7 --password monpasse, il me le demande encore le login et passe de alien7 et celui de apache.

Et pour id il est bien dan smon path, et si je fais :
/usr/bin/id > /tmp/pcommit.log 2>&1
il ne me retourne rien.


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

Hors ligne

 

#37 16-12-2007 09:42:00

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

Re: [Résolu] Synchronisation

Hmmm, je viens de voir qq chose, tu fais un checkout http, hors en lan, tu n'as aucune raison d'utiliser une encapsulation http. Essai un avec un
svn checkout svn://IP/svn/projet1

Si dérriere, le svn up ne te demande pas d'auth, c'est tout bon.

Pour le id, je pige pas trop, mais bon, de tte facon, il te suffit de regarder le proprio/group de /tmp/pcommit.log pour savoir le user utilisé.

Hors ligne

 

#38 16-12-2007 12:12:37

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

Re: [Résolu] Synchronisation

EXCELLENT !!!!! Ca marche enfin smile

Oui je n'avais pas fait attention, il y a en fait plusieurs protocoles :

Code:

file://    - Pour un dépôt sur un disque local
svn://     - Pour un dépôt distant avec un serveur Subversion dont 
             l'authentification est gérée par Subversion.
svn+ssh:// - Pour un dépôt distant avec un serveur Subversion dont
             l'authentification est gérée par ssh.
http://    - Pour un dépôt distant avec un serveur web.

J'ai uitlisé file://, le svn:// ne marchait pas, il ne trouvait pas le repository.
J'espère que ca aidera plus d'un ce topic smile

Merci beaucoup, enfin grâce à ton aide tout marche et j'ai beaucoup appris. Je crois que tout seul j'aurai galéré encore 10 jours neutral
Un grand MERCI  TiTerm.

Dernière modification par alien7 (16-12-2007 12:14:46)


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

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