gnu_linux_server:code_versioning:bazaar:bzr_ssh_server
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
gnu_linux_server:code_versioning:bazaar:bzr_ssh_server [2011/11/24 22:40] – Début du tutorial bzr + ssh guillaume | gnu_linux_server:code_versioning:bazaar:bzr_ssh_server [2021/01/04 20:41] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 17: | Line 17: | ||
L' | L' | ||
<code bash> | <code bash> | ||
- | La commande **bzr** fait appel à un programme relativement simple. Toutes les fonctionnalités sont en fait implantées par des plugins que le programme principal va utiliser. Une complétion automatique est disponible pour compléter automatiquement les arguments à passer à **bzr**. Il est de plus possible de rajouter des plugins personnels en les mettant dans le répertoire /// | + | La commande **bzr** fait appel à un programme relativement simple. Toutes les fonctionnalités sont en fait implantées par des plugins que le programme principal va utiliser. Une complétion automatique est disponible pour compléter automatiquement les arguments à passer à **bzr**. Il est de plus possible de rajouter des plugins personnels en les mettant dans le répertoire /// |
==== Bazaar smart server ==== | ==== Bazaar smart server ==== | ||
- | ==== Création d'un projet ==== | ||
+ | Tout comme [[http:// | ||
+ | < | ||
+ | Mais une utilisation à la ligne de commande peut s' | ||
+ | <code bash> | ||
+ | Ensuite, on pourra lancer le serveur. Cependant, il faut être certain qu'il soit accessible via l' | ||
+ | Il est extrêmement intéressant pour des questions d' | ||
+ | <code bash>/ | ||
+ | Parce que le serveur n'est en fait qu'un plugin rattaché à Bazaar et qu'il n'est pas installé comme un serveur classique, il faut créer un script // | ||
+ | <code bash>### BEGIN INIT INFO | ||
+ | # Provides: | ||
+ | # Required-Start: | ||
+ | # Required-Stop: | ||
+ | # Default-Start: | ||
+ | # Default-Stop: | ||
+ | # Short-Description: | ||
+ | # Description: | ||
+ | ### END INIT INFO | ||
+ | |||
+ | #!/bin/sh | ||
+ | |||
+ | # Path to root of repo tree | ||
+ | BZRROOT=/ | ||
+ | |||
+ | # Listening port (default = 4155) | ||
+ | PORT=4155 | ||
+ | |||
+ | # Logs file | ||
+ | LOG_FOLDER=/ | ||
+ | LOG_FILE=$LOG_FOLDER/ | ||
+ | |||
+ | # Arguments to start the server | ||
+ | ARGS=" | ||
+ | |||
+ | bzr_smart_server_process() { | ||
+ | pgrep -fl "bzr $ARGS" | ||
+ | } | ||
+ | |||
+ | bzr_smart_server_status() { | ||
+ | process=`bzr_smart_server_process` | ||
+ | listening=`netstat -nl | grep -e ": | ||
+ | |||
+ | if [ -z " | ||
+ | echo " | ||
+ | else | ||
+ | echo " | ||
+ | |||
+ | if [ -z " | ||
+ | echo "The server is *not* listening on port $PORT." | ||
+ | else | ||
+ | echo "The server is listening on port $PORT." | ||
+ | fi | ||
+ | fi | ||
+ | } | ||
+ | |||
+ | bzr_smart_server_start() { | ||
+ | echo " | ||
+ | |||
+ | # Make sure the log folder is created | ||
+ | if [ ! -d $LOG_FOLDER ]; then | ||
+ | mkdir -p $LOG_FOLDER | ||
+ | fi | ||
+ | echo "" | ||
+ | |||
+ | bzr $ARGS > $LOG_FILE 2>&1 & | ||
+ | |||
+ | bzr_smart_server_status | ||
+ | } | ||
+ | |||
+ | bzr_smart_server_stop() { | ||
+ | echo " | ||
+ | |||
+ | pkill -f "bzr $ARGS" | ||
+ | |||
+ | bzr_smart_server_status | ||
+ | } | ||
+ | |||
+ | case " | ||
+ | start) | ||
+ | bzr_smart_server_start | ||
+ | ;; | ||
+ | stop) | ||
+ | bzr_smart_server_stop | ||
+ | ;; | ||
+ | status) | ||
+ | bzr_smart_server_status | ||
+ | ;; | ||
+ | restart) | ||
+ | bzr_smart_server_stop | ||
+ | bzr_smart_server_start | ||
+ | ;; | ||
+ | *) | ||
+ | echo " | ||
+ | exit 1 | ||
+ | ;; | ||
+ | esac</ | ||
+ | L' | ||
+ | <code bash> | ||
+ | Les quatre variables principales du script (celles dont les noms sont en majuscules) sont éventuellement à modifier. Elles concernent la racine des projets à utiliser, le port utilisé par le serveur et le fichier dans lequel seront enregistrés les logs. On rend enfin le script exécutable et il est alors possible de lancer, redémarrer, | ||
+ | <code bash> | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | |||
+ | ==== Création d'un projet ==== | ||
+ | Une fois le serveur prêt, il ne reste qu'à créer les projets. Pour gérer les droits d' | ||
+ | <code bash> | ||
+ | On peut désormais ajouter à ce groupe les utilisateurs qui auront un accès en écriture aux branches. Si l' | ||
+ | <code bash> | ||
+ | Sinon, on fera plutôt : | ||
+ | <code bash> | ||
+ | Il faut bien faire attention à l' | ||
+ | <code bash> | ||
+ | chown :mon_projet / | ||
+ | Toutes les branches appartiendront au même groupe et donc tous les membres du groupe devront avoir un accès en lecture et en écriture alors que les autres ne pourront que lire le contenu des branches sans pouvoir le modifier (plutôt classique dans le cas d'un projet open source). C'est dans ce but que l'on va préciser les permissions. | ||
+ | <code bash> | ||
+ | Après avoir déposé la branche **mainline** qui est la branche principale du développement (l' | ||
+ | <code bash> | ||
+ | Arrivé ici, il doit être possible pour tout le monde de créer une branche locale ou simplement de télécharger le code avec les commandes suivantes. | ||
+ | <code bash>bzr branch bzr:// | ||
+ | bzr checkout bzr:// | ||
+ | En revanche, seules les développeurs du projet devraient être capables d' | ||
+ | <code bash>bzr push bzr+ssh:// | ||
+ | **Attention !** Il est très important d' | ||
+ | Pour terminer sur la création du projet, il fa&ut savoir que Bazaar fonctionne avec et sans // | ||
+ | <code bash>cd / | ||
+ | bzr chechout .</ | ||
+ | La branche nommée **mainline** étant la branche mère de toutes les autres (soit par héritage, soit directement), | ||
+ | <code bash>bzr update</ | ||
+ | Ou alors, on peut utiliser, pour plus de simplicitén le plugin [[https:// | ||
+ | <code bash>bzr push bzr+ssh:// | ||
+ | ssh domain.tld bzr update / |
gnu_linux_server/code_versioning/bazaar/bzr_ssh_server.1322174440.txt.gz · Last modified: 2021/01/04 20:40 (external edit)