Initialiser dépot mercurial sous serveur linu
Fermé
bender86
Messages postés
61
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
19 mars 2014
-
12 janv. 2011 à 18:33
mamiemando Messages postés 33642 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 avril 2025 - 15 janv. 2011 à 15:00
mamiemando Messages postés 33642 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 avril 2025 - 15 janv. 2011 à 15:00
Bonjour,
Je vous explique mon problème.
J'ai un serveur linux où son hébergées mes sources.
J'aimerai initialiser le répertoire ex : "var/www/mon_projet" puis en faire un clone en local et ainsi pouvoir utiliser mercurial.
Il faudrait également que mes collègues puissent faire un clone des sources et puissent comitter avec leur utilisateur. ex: bender86
pour info: La connexion sur le serveur sftp se fait avec l'utilisateur root et un password.
Merci de vos solutions car le tuto de developpez.com ou le siteduzero n'explique pas comment faire ça.
Je vous explique mon problème.
J'ai un serveur linux où son hébergées mes sources.
J'aimerai initialiser le répertoire ex : "var/www/mon_projet" puis en faire un clone en local et ainsi pouvoir utiliser mercurial.
Il faudrait également que mes collègues puissent faire un clone des sources et puissent comitter avec leur utilisateur. ex: bender86
pour info: La connexion sur le serveur sftp se fait avec l'utilisateur root et un password.
Merci de vos solutions car le tuto de developpez.com ou le siteduzero n'explique pas comment faire ça.
A voir également:
- Initialiser dépot mercurial sous serveur linu
- Changer serveur dns - Guide
- Serveur pop - Guide
- Serveur dns gratuit - Guide
- Serveur dns orange - Accueil - Guide box et connexion Internet
- Verification de l'identité du serveur impossible - Forum iPhone
5 réponses
mamiemando
Messages postés
33642
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
25 avril 2025
7 844
14 janv. 2011 à 02:50
14 janv. 2011 à 02:50
L'objectif du clone c'est de le faire apparaître à deux endroits de l'arborescence ? Ou c'est un backup ?
Par rapport à ton histoire d'utilisateur, le plus simple est d'attribuer chaque fichier de /var/www à un groupe dédié, par exemple developper)
Pour le créer :
Pour y ajouter benders86 :
À présent il ne reste plus qu'à attribuer des droits acl à tes fichiers de /var/www grâce à la commande setfacl. Le groupe developper doit acquérir les droits en écriture, le groupe www-data doit rester tel qu'il est (droits uniquement en lecture).
http://doc.ubuntu-fr.org/acl
À tester mais je dirais que ça doit donner un truc dans ce genre :
Bonne chance
Par rapport à ton histoire d'utilisateur, le plus simple est d'attribuer chaque fichier de /var/www à un groupe dédié, par exemple developper)
Pour le créer :
sudo groupadd developper
Pour y ajouter benders86 :
sudo addgroup benders86 developper
À présent il ne reste plus qu'à attribuer des droits acl à tes fichiers de /var/www grâce à la commande setfacl. Le groupe developper doit acquérir les droits en écriture, le groupe www-data doit rester tel qu'il est (droits uniquement en lecture).
http://doc.ubuntu-fr.org/acl
À tester mais je dirais que ça doit donner un truc dans ce genre :
sudo setfacl -R g:www-data:r /var/www sudo setfacl -R g:developper:rw /var/www sudo setfacl -m d:g:www-data:r /var/www sudo setfacl -m d:g:developper:rw /var/www
Bonne chance
bender86
Messages postés
61
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
19 mars 2014
14 janv. 2011 à 18:38
14 janv. 2011 à 18:38
Merci de ta piste.
Premièrement est ce que setacl et un chmod revient au même?
Ensuite pour mercurial je dois donc aller sur mon serveur qui se trouve par exemple à l'adresse:
120.231.54.39, y installer mercurial et ensuite aller dans mon dossier où se trouve mes sources et faire un hg init?
ensuite je dois créer le groupe et y ajouter mon utilisateur x et y?
Sur l'ordinateur de x et de y que dois-je faire pour faire le clone?
me positionner sur par exemple document/developpement
puis faire hg clone 120.231.54.39 ???
J'espère que j'ai bien compris jusque là et que vous pourrez m'aider.
Merci
Premièrement est ce que setacl et un chmod revient au même?
Ensuite pour mercurial je dois donc aller sur mon serveur qui se trouve par exemple à l'adresse:
120.231.54.39, y installer mercurial et ensuite aller dans mon dossier où se trouve mes sources et faire un hg init?
ensuite je dois créer le groupe et y ajouter mon utilisateur x et y?
Sur l'ordinateur de x et de y que dois-je faire pour faire le clone?
me positionner sur par exemple document/developpement
puis faire hg clone 120.231.54.39 ???
J'espère que j'ai bien compris jusque là et que vous pourrez m'aider.
Merci
mamiemando
Messages postés
33642
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
25 avril 2025
7 844
14 janv. 2011 à 22:50
14 janv. 2011 à 22:50
Non setfacl permet de définir des droits plus précis et plus poussés. Un chmod ne permet de définir que 3 catégories de droits (le propriétaire, le groupe propriétaire, les autres).
Pour les histoires sur mercurial etc... je regarderais la page qui porte dessus. Personnellement moi à part svn (et encore) je connais pas trop...
http://doc.ubuntu-fr.org/hg_mercurial
À ta place, je placerais le dépôt dans un répertoire dédié (par exemple /var/svn dans le cas d'un svn). Ensuite ferait un script qui copierait le dépôt svn vers le serveur apache (/var/www) et qui mettrait les bons droits au niveau d'apache. Ainsi il y aurait la distinction entre la version de développement et la version en production.
Pour les histoires sur mercurial etc... je regarderais la page qui porte dessus. Personnellement moi à part svn (et encore) je connais pas trop...
http://doc.ubuntu-fr.org/hg_mercurial
À ta place, je placerais le dépôt dans un répertoire dédié (par exemple /var/svn dans le cas d'un svn). Ensuite ferait un script qui copierait le dépôt svn vers le serveur apache (/var/www) et qui mettrait les bons droits au niveau d'apache. Ainsi il y aurait la distinction entre la version de développement et la version en production.
bender86
Messages postés
61
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
19 mars 2014
15 janv. 2011 à 13:09
15 janv. 2011 à 13:09
Mais si je fais ça il faut le script sur les postes client de tous les utilisateurs qui travaillent en local pour rapatrier les changements sur le serveur?
Le problème avec ça c'est que je n'aurai pas un versionning et le risque d'écrasement serait énorme?
C'est pour celà que je trouve mercurial très intéressant et que j'aurai voulu l'appliquer à mon cas.
Le problème avec ça c'est que je n'aurai pas un versionning et le risque d'écrasement serait énorme?
C'est pour celà que je trouve mercurial très intéressant et que j'aurai voulu l'appliquer à mon cas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mamiemando
Messages postés
33642
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
25 avril 2025
7 844
15 janv. 2011 à 15:00
15 janv. 2011 à 15:00
Mais si je fais ça il faut le script sur les postes client de tous les utilisateurs qui travaillent en local pour rapatrier les changements sur le serveur?
Non le script serait côté serveur et consisterait à copier l'arborescence du projet (dans /var/svn si tu utilisais subversion) par dessus celle du serveur apache (/var/www).
Le problème avec ça c'est que je n'aurai pas un versionning et le risque d'écrasement serait énorme?
L'idée consiste à lancer le script quand la version de développement est stabilisée pour écraser la version en production. Tant que la version de développement n'est pas stabilisée on ne la met pas en production.
Pour pouvoir tester les deux versions, on peut imaginer que ton serveur apache gère simultanément deux sites : celui en production, celui de test. Il faudra alors dire à apache de
- chercher le site en production dans /var/www et le faire apparaître par exemple dans http://localhost/production
- chercher le site en développement dans /var/svn et le faire apparaître par exemple dans http://localhost/test avec un accès restreints aux développeurs.
Tout ça c'est de l'administration apache et tu peux t'inspirer de ceci pour le mettre en place :
http://www.mistra.fr/tutoriel-linux-serveur-web-apache2.html
Concrètement ton script serait un truc du genre :
Ce script copie l'ancienne arborescence en production (/var/www) dans une sauvegarde (/var/www.old) puis rappatrie /var/svn dans /var/www et lui met des droits pas trop mal.
C'est pour celà que je trouve mercurial très intéressant et que j'aurai voulu l'appliquer à mon cas.
Je ne connais pas assez mercurial pour te dire si c'est un bon choix ou pas.
Non le script serait côté serveur et consisterait à copier l'arborescence du projet (dans /var/svn si tu utilisais subversion) par dessus celle du serveur apache (/var/www).
Le problème avec ça c'est que je n'aurai pas un versionning et le risque d'écrasement serait énorme?
L'idée consiste à lancer le script quand la version de développement est stabilisée pour écraser la version en production. Tant que la version de développement n'est pas stabilisée on ne la met pas en production.
Pour pouvoir tester les deux versions, on peut imaginer que ton serveur apache gère simultanément deux sites : celui en production, celui de test. Il faudra alors dire à apache de
- chercher le site en production dans /var/www et le faire apparaître par exemple dans http://localhost/production
- chercher le site en développement dans /var/svn et le faire apparaître par exemple dans http://localhost/test avec un accès restreints aux développeurs.
Tout ça c'est de l'administration apache et tu peux t'inspirer de ceci pour le mettre en place :
http://www.mistra.fr/tutoriel-linux-serveur-web-apache2.html
Concrètement ton script serait un truc du genre :
#!/bin/sh sudo rm -rf /var/www.old sudo mv /var/www /var/www.old sudo cp -r /var/svn /var/www sudo chown root:www-data /var/www sudo chmod -R o-rwx /var/www sudo chmod -R g-w /var/www sudo chmod -R g+r /var/www
Ce script copie l'ancienne arborescence en production (/var/www) dans une sauvegarde (/var/www.old) puis rappatrie /var/svn dans /var/www et lui met des droits pas trop mal.
C'est pour celà que je trouve mercurial très intéressant et que j'aurai voulu l'appliquer à mon cas.
Je ne connais pas assez mercurial pour te dire si c'est un bon choix ou pas.