Aller au contenu

Installer Les "subversion-Tools"


Messages recommandés

Personne ? Un petit coup de pouce serait plus que le bienvenu car sans l'usage de ces HOOK (mais peut être ai-je tout faux peut être n'ai-je pas besoin des hook ?) je devrais basculer sur l'utilisation d'rsync ou de svn update en crontab ce qui sera beaucoup moins optimisé :(

A l'époque ou je ne connaissais pas encore les DSCM et leurs avantages et que j'utilisais SVN sur mon Syno, les HOOKs fonctionnaient parfaitement. Donc je ne vois pas comment t'aider. D'autant que subversion-tools n'est pas nécessaire à l'utilisation des HOOKs il me semble. C'est juste un ensemble d'outils supplémentaires. (cf http://packages.debian.org/squeeze/subversion-tools)

Mais plus sérieusement, utilise Git (ou Mercurial à la limite) mais pas SVN ! :o

Lien vers le commentaire
Partager sur d’autres sites

<br /><br /><br />

Tu n'as pas compris ce que je voulais dire. L'utilisateur subversion doit avoir les droits pour créer le fichier test.txt au sein du répertoire en question ! Essaye de mettre /tmp/test.txt après avoir fait un chmod 777 sur /tmp.

Sent from my Desire HD

Merci pour ta réponse et en effet tu as vu juste !!!! Incroyable, moi qui pensais avoir verrouillé cette histoire de droits !! Du coup je ne comprends pas voici ma commande :

/opt/bin/svn update file:///volume1/svn/repos/test/ /volume1/web/test/

Alors pour essaye de savoir d'où vient l'erreur, les dossiers contenus dans repos sont en 777, les dossiers dans svn sont en 770 (user svnowner et group www-data) de même le dossier svn lui même est en 770 (user svnowner er group www-data). De ce côté je ne pense pas qu'il y ait de soucis... comment vérifier le user svn qui est appelé ?

Ensuite pour le dossier web il est en 755 (user et group www-data) donc à priori svnowner peut passer au travers, et enfin le répertoire test est également en 755... peut être cela vient-il de là ? Le user svnowner ne dispose pas des droits en écritures sur le dossier ?

Dans tous les cas ma question est du coup : comment vérifier le nom de l'utilisateur svn appelé pour ce script ?

EDIT : Bon j'ai mis les droits 777 sur le dossier test dans /volume1/web et c'est bon.. quel idiot :( Bon mais du coup comment faire niveau sécurité ? Car je ne peux décemment positionner les droits sur le répertoire web à 777 ? Peut être pourrais-je changer le group owner à celui de svn et mettre 770 ?

Modifié par pelisboule
Lien vers le commentaire
Partager sur d’autres sites

Ok pour la sécurité je vais investiguer un peu alors ;) Bon grosso modo je peux donc considérer le soucis comme résolu !!!

Pour information voici le script final qui devrait pouvoir être ré-utilisé par d'autres à l'avenir ça peut toujours servir ;)




#!/bin/sh                                                                                                     		


# POST-COMMIT HOOK                                                                                                    

#                                                                                                             		

#   [1] REPOS-PATH   (the path to this repository)                                                                    

#   [2] REV          (the number of the revision just committed)                                                      

#                                                                                                             		


REPOS="$1"                                                                                                            

REV="$2"                                                                                                              


# Emplacement du binaire SVN                                                                                          

SVN="/opt/bin/svn"                                                                                                    

# Repertoire contenant les sites web (en gros le htdocs apache)                                               		

BASE_DIR="/volume1/web/"                                                                                              

# On recupere le nom du projet                                                                                        

PROJ=$(basename $1)                                                                                           		

# Le repertoire de destination sera dans htdocs et aura le meme nom que celui du projet                       		

DIR=$BASE_DIR$PROJ                                                                                                    

# Le user executant le script => Pour debug des droits surtout                                                        

USER=$(whoami)                                                                                                        

# Date d execution du script                                                                                          

DATE=`date "+%Y_%m_%d"`                                                                                       		

# Emplacement du fichier de log. Attention, pour debug s assurer que le fichier ainsi que son toute son arbo soient accessibles. Dans le doute positionner chmod 777 sur tous les repertoires du chemin dans un premier temps pour tester.

LOG="/volume1/@logs/svn/$DATE"                                                                                        


DATEDEB=$(date +%s)                                                                                           		

echo "##########################################################" >> $LOG                                     		

echo "$USER is updating $PROJ on apache : $(date +%d/%m/%y-%k:%M:%S)" >> $LOG                                 		


# Si le projet existe deja on fait un svn update sinon on fait un checkout                                            

if [ -d "$DIR" ]; then                                                                                                

        echo "Updating $PROJ" >> $LOG                                                                         		

        $SVN update $DIR >> $LOG                                                                                      

else                                                                                                                  

        echo "Checking out $PROJ" >> $LOG                                                                     		

        $SVN checkout file://$1 $DIR >> $LOG                                                                          

fi                                                                                                                    


DATEFIN=$(date +%s)                                                                                           		

echo "End of apache update : $(date +%d/%m/%y-%k:%M:%S)" >> $LOG                                                      

echo "Execution time : $(($DATEDEB - $DATEFIN))" >> $LOG                                                              

echo "##########################################################" >> $LOG 

Enfin pour git je me suis renseigné et ait hésité à vrai dire mais même sur le wiki git officiel il y a un comparatif avec svn et clairement la seul réel intérêt pour moi serait les perfs qui pour l'instant ne posent absolument pas de soucis chez nous avec svn ;) Après le principal défaut de git est sa bien plus faible communauté qu'svn ainsi que son "manque de maturité". Par manque de maturité j'entends que le nombre d'outils (notamment GUI) sont très limités. De plus un autre frein important pour nous est que nous disposons de logiciels propriétaire pour gérer nos repos svn et clairement devoir abandonner des licenses ça se réfléchi car c'est une perte sèche ;)

Dans tous les cas merci encore pour ton soutient,

EDIT: Ah au passage, juste comme ça, est-il possible de définir une sorte de hook global ??? J'entends pas là un hook multi repository ou devons nous forcement créer un hook pour chaque repo ?

Modifié par pelisboule
Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.