Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SVN] Lancer un script lors d'une modification
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
elfangor
n00b
n00b


Joined: 21 May 2008
Posts: 20

PostPosted: Fri May 14, 2010 11:10 am    Post subject: [SVN] Lancer un script lors d'une modification Reply with quote

Bonjour à tous,

J'ai un serveur svn d'installer pour un projet de groupe en php.
Les fichiers svn étant stockés sous forme de base de donnée , j'ai aussi un client qui me permet de récupérer les fichiers et de les mettres directement dans un un vhost apache.

Cependant ce n'est pas automatique, lorsque quelqu'un lance un commit, il faut lancer mon petit script de 3 ligne:

cd /home/user/projet
svn checkout --username user https://localhost/svn/proj
cp -R /home/user/projet/proj/sources/* /srv/http/proj/

Bref le but ce serais de lancer le script lors d'une modif:)

J'ai pensé surveiller le dossier mais apparement il faut coder en C, j'ai un peu l'impression de devoir utiliser une peleteuse pour faire un chateau de sable.
Il doit donc y'avoir un autre moyen, notamment directement avec svn.
Malheuresement je ne trouve pas comment :s

Si quelqu'un a une piste ou une idée...

Cordialement
Back to top
View user's profile Send private message
Poussin
l33t
l33t


Joined: 08 Jun 2007
Posts: 659
Location: Liège

PostPosted: Fri May 14, 2010 1:03 pm    Post subject: Reply with quote

Code:
cd /home/user/projet
svn checkout --username user https://localhost/svn/proj
cp -R /home/user/projet/proj/sources/* /srv/http/proj/


Alors déjà on va un poil modifi
er ton script
Code:

cd /srv/http/proj/
svn import --username user https://localhost/svn/proj/sources/
Ca devrait suffire, import plutot que co, si tu ne fais ca que pour recupérer les fichiers sources (evite les rep .svn dans l'arborescence.

Ensuite, pour ton problème, tu peux regarder vers le hook post-commit. C'est souvent utilisé pour envoyer un mail en cas de commit (par exemple) mais tu peux très bien l'utiliser pour exécuter ton script
Back to top
View user's profile Send private message
elfangor
n00b
n00b


Joined: 21 May 2008
Posts: 20

PostPosted: Tue May 18, 2010 1:43 pm    Post subject: Reply with quote

Merci bien pour la modification du script mais je pense faire une sauvegarde des fichier en tar après ;)

Effectivement c'est exactement ça qu'il me faillais!

Cependant j'ai passé ma journée a essayer de le faire marcher sans succès... :s
Lorsque je lance le script a la main tout va bien, mais lorsque je fais un commit a partir de netbeans rien ne se passe et je ne sais pas pourquoi.

Je pense que ça venais des droits sur les fichiers mais rien à faire.

Je ne sais pas trop quelles informations vous donnez? Je n'ai pas trouvé de log pour svn, et dans les logs d'apache pas de trâce du lancement du hooks.

Cordialement
Back to top
View user's profile Send private message
Poussin
l33t
l33t


Joined: 08 Jun 2007
Posts: 659
Location: Liège

PostPosted: Tue May 18, 2010 4:58 pm    Post subject: Reply with quote

quand tu parles de lancer le script à la main, tu parles du commit?

Je t'avoue que j'utilise svn uniquement via ssh :s
Back to top
View user's profile Send private message
elfangor
n00b
n00b


Joined: 21 May 2008
Posts: 20

PostPosted: Tue May 18, 2010 7:33 pm    Post subject: Reply with quote

Oui je lance le commit à la main pardon.

Vu qu'il marche bien a la main je pense a un problème de droit utilisateur.
Mais normalement mon dossier apache et mon dossier svn appartienne a http.

Et je n'arrive pas à trouver de log :s
Back to top
View user's profile Send private message
Poussin
l33t
l33t


Joined: 08 Jun 2007
Posts: 659
Location: Liège

PostPosted: Tue May 18, 2010 8:51 pm    Post subject: Reply with quote

je ne vois pas trop la diff entre faire 'svn commit' et laisser netbeans le faire... l'utilisateur est le même coté client. Coté serveur, ça ne devrait rien changer (et de toute façon, la config est dans le .svn et commune aux 2 méthodes)
Back to top
View user's profile Send private message
elfangor
n00b
n00b


Joined: 21 May 2008
Posts: 20

PostPosted: Wed May 19, 2010 8:14 am    Post subject: Reply with quote

Pardon je ne lance pas le "svn commit" mais le fichier commit à la main.

Comment savoir si svn essaye de lancer mon fichier hook?
Back to top
View user's profile Send private message
Poussin
l33t
l33t


Joined: 08 Jun 2007
Posts: 659
Location: Liège

PostPosted: Wed May 19, 2010 10:50 am    Post subject: Reply with quote

bah s'il ne l'exécute pas, il y a peu de chance qu'il essaie :p
mais pour être certain, tu peux remplacer ton script par un bete "touch /tmp/toto" (/tmp ou tout autre repertoire chmod 777)

edit: accessoirement, ton script doit se nommer post-commit (et pas commit) (sauf erreur)

edit2: google m'a trouvé ça: http://envrac.blogdns.net/shellscripts/export-automatique-d-un-projet-subversio

edit3: et dans ce dernier le lien précédent, il suppose que le serveur de dev et le serveur svn sont deux machines distinctes -> tu peux simplifier le bazar
Back to top
View user's profile Send private message
elfangor
n00b
n00b


Joined: 21 May 2008
Posts: 20

PostPosted: Wed May 19, 2010 3:05 pm    Post subject: Reply with quote

Merci bien!

J'ai testé avec le touch /tmp/toto
Code:

ls -al /tmp
-rw-r--r--  1 http http     0 19 mai   16:38 toto


Je crois en fait que le probleme viens du fait que l'utilisateur avec lequel est lancé le script post-commit n'a pas le droit de se connecter sur le svn.
En effet en plaçant la copie du svn sur tmp je n'obtiens pas les sources alors qu'en lançant le script sous root j'ai bien les sources dans tmp.

Pour moi le script est lancé avec http (cf le fichier toto appartenant a http) mais je n'arrive pas a me connecter avec(en etant root su - http ne marche pas) pour tester.
Back to top
View user's profile Send private message
Poussin
l33t
l33t


Joined: 08 Jun 2007
Posts: 659
Location: Liège

PostPosted: Wed May 19, 2010 5:17 pm    Post subject: Reply with quote

elfangor wrote:

Pour moi le script est lancé avec http (cf le fichier toto appartenant a http) mais je n'arrive pas a me connecter avec(en etant root su - http ne marche pas) pour tester.


L'utilisateur http n'a probablement pas de shell défini, et c'est normal!

Inspire toi du script de l'adresse que je t'ai collée, ça devrait aider
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum