Taille: 1632
Commentaire: Début
|
Taille: 4169
Commentaire:
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
= Intro: CVS et autres SCM = | = Git sur les serveurs BdE = |
Ligne 3: | Ligne 3: |
= CVS sur BDE = | L'ensemble des projets du BdE utilisent Git comme système de versionnement. Les dépôts son présent sur les machines concernées et une copie de chaque dépôt est conservée sur le GitLab du Crans, le propriétaire étant le groupe BdE. |
Ligne 5: | Ligne 5: |
== Version Simple : commiter ses modifications aux fichiers versionnés == | L'ensemble des commandes qui suivent ne peuvent être entrées que dans un dépôt Git. (Si vous essayez en dehors, git râlera.) |
Ligne 7: | Ligne 7: |
Lorsqu'un administrateur effectue des changements aux fichiers versionnés sur le serveur, il doit commiter les modifications pour qu'elles soient sauvegardées dans l'historique. | == Indiquer à Git son identité == |
Ligne 9: | Ligne 9: |
Si le fichier {{{machin.conf}}} dans le répertoire {{{/etc/exemple}}}, il doit entrer dans ce répertoire avec la commande {{{cd}}}, et entrer la commande | Avant de commencer, il faut indiquer à Git qui va faire les modifications sur le dépôt avec le compte utilisé, afin de l'intégrer aux commits enregistrés. Le plus simple est de configurer son identité pour tous les dépôts de la machine : ce réglage n'a besoin d'être fait '''qu'une seule fois'''. Cela peut être fait avec les commandes suivantes : . {{{ $ git config --global user.name "<prénom> <nom>" $ git config --global user.email <adresse mail>}}} == Avant de modifier des fichiers == Avant de pouvoir commencer à travailler, il faut déjà s'assurer que quelqu'un n'a pas laissé des modifications non sauvegardées dans le dépôts, et que le dépôt local est à jour avec le dépôt distant, s'il y en a un. === Vérifier que quelqu'un n'a pas laissé des modifications non commitées === Si quelqu'un travaillait dans le dépôt et n'a pas eu le temps de terminer son travail, il est possible de mettre ses modifications de côté avec git stash: * Vérifier l'état du dépôt . {{{ $ git status}}} * Stasher des modifs (les modification sont empilées, de telle sorte qu'il est possible de stasher plusieurs fois) . {{{ $ git stash}}} * Lister les stashs présents . {{{ $ git stash list}}} * Déstasher des modifs . {{{ $ git stash pop <nom du stash(optionnel)>}}} === Vérifier que son dépôt est en phase avec un dépôt distant === * Des commits sur le dépôt local peuvent ne pas avoir été pushé. Pour le vérifier : . {{{ $ git remote show}}} * Il est possible que d'autres gens aient travaillé sur le projet et aient apporté des changements qu'ils ont poussé vers le dépôt distant, il faut alors les importer : . {{{ $ git pull}}} * Pour un mélange des deux cas précédents : . {{{#!wiki caution '''Ne pas abuser de cette méthode'''<<BR>> Un rebase foireux peut vite devenir compliqué à gérer ! }}} . {{{ $ git pull --rebase}}} == Commiter ses modifications aux fichiers versionnés == Lorsqu'un changement est apporté aux fichiers versionnés sur le serveur, il doivent être mis à l'index avant d'être commités pour qu'elles soient sauvegardées dans l'historique. La commande {{{git status}}} permet d'indiquer les fichiers modifiés/non suivis. Si les modifications du fichier {{{chemin/vers/machin.conf}}} doivent être ajouté à l'index, il faut entrer la commande : {{{ $ git add chemin/vers/machin.conf }}} Plusieurs fichiers ou dossiers peuvent simultanément être ajoutés à l'index. Une fois les modifications indexées, il faut les commiter pour enregistrer les modifications. |
Ligne 12: | Ligne 70: |
sudo cvs commit machin.conf | $ git commit |
Ligne 15: | Ligne 73: |
ou, si la commande est entrée sous le compte root | À ce moment un éditeur, en général {{{nano}}}, {{{vim}}} ou {{{emacs}}}, ouvre une zone d'édition où l'administrateur entre un message expliquant la modification concernée. Une fois la modification enregistrée en local, il faut la pousser vers un dépôt distant, s'il y en a un. |
Ligne 18: | Ligne 78: |
cvs commit machin.conf | $ git push |
Ligne 21: | Ligne 81: |
A ce moment un éditeur, en général {{{jed}}}, ouvre une zone d'édition où l'administrateur entre un message expliquant la modification concernée. | == Liste des dépots Git du BdE == |
Ligne 23: | Ligne 83: |
== Version compliquée : le fonctionnement de CVS sur le serveur du BdE == | Tous les dépôts sont clonés depuis le [[https://gitlab.crans.org/|GitLab]] Crans |
Ligne 25: | Ligne 85: |
=== Les différents répertoires versionnés === | * Note Kfet 2015 Serveur : Serveur de la Note (bde2-virt) * Note Kfet 2015 Client : Client Django de la Note (bde2-virt) * Scripts : Scripts utiles pour la vidéo et le calendrier (bde2-virt, videobde) * Digicode : Projet de digicode pour les locaux associatifs (bde3, bde3-virt) |
Ligne 27: | Ligne 90: |
Sur le serveur du BdE, plusieurs répertoires parents sont maintenus par l'utilisation de CVS. Le premier et plus important est {{{/etc}}} . Comme sur tout système *nix il contient la configuration de la majorité des services utilisés sur le serveur.[[BR]] | Ces dépôts peuvent être clonés par les membres du groupe BdE avec la commande : |
Ligne 29: | Ligne 92: |
==== Apache ==== | {{{ $ git clone https://gitlab.crans.org/bde/<nom du dépôt>.git }}} |
Ligne 31: | Ligne 96: |
La configuration d'[http://httpd.apache.org/ Apache], le serveur web, est hébergée dans le répertoire {{{/etc/apache2}}}. Les fichiers importants se trouvent dans les répertoires {{{sites-available}}} et {{{conf.d}}}[[BR]] /!\ Ne jamais ajouter des fichiers du répertoire {{{sites-enabled}}} au CVS, ce sont des liens symboliques vers des fichiers de {{{sites-available}}} maintenus par les commandes d'administration {{{a2ensite}}} et {{{a2dissite}}}. |
= Pour aller plus loin… = [[CransNostalgie/ConcurrentVersionsSystem|Crans '''Nostalgie''' CVS]] [[CransTechnique/ServicesMineurs/Git|Git au Crans]] |
Git sur les serveurs BdE
L'ensemble des projets du BdE utilisent Git comme système de versionnement. Les dépôts son présent sur les machines concernées et une copie de chaque dépôt est conservée sur le GitLab du Crans, le propriétaire étant le groupe BdE.
L'ensemble des commandes qui suivent ne peuvent être entrées que dans un dépôt Git. (Si vous essayez en dehors, git râlera.)
Indiquer à Git son identité
Avant de commencer, il faut indiquer à Git qui va faire les modifications sur le dépôt avec le compte utilisé, afin de l'intégrer aux commits enregistrés.
Le plus simple est de configurer son identité pour tous les dépôts de la machine : ce réglage n'a besoin d'être fait qu'une seule fois. Cela peut être fait avec les commandes suivantes : .
$ git config --global user.name "<prénom> <nom>" $ git config --global user.email <adresse mail>
Avant de modifier des fichiers
Avant de pouvoir commencer à travailler, il faut déjà s'assurer que quelqu'un n'a pas laissé des modifications non sauvegardées dans le dépôts, et que le dépôt local est à jour avec le dépôt distant, s'il y en a un.
Vérifier que quelqu'un n'a pas laissé des modifications non commitées
Si quelqu'un travaillait dans le dépôt et n'a pas eu le temps de terminer son travail, il est possible de mettre ses modifications de côté avec git stash:
- Vérifier l'état du dépôt
$ git status
- Stasher des modifs (les modification sont empilées, de telle sorte qu'il est possible de stasher plusieurs fois)
$ git stash
- Lister les stashs présents
$ git stash list
- Déstasher des modifs
$ git stash pop <nom du stash(optionnel)>
Vérifier que son dépôt est en phase avec un dépôt distant
- Des commits sur le dépôt local peuvent ne pas avoir été pushé. Pour le vérifier :
$ git remote show
- Il est possible que d'autres gens aient travaillé sur le projet et aient apporté des changements qu'ils ont poussé vers le dépôt distant, il faut alors les importer :
$ git pull
- Pour un mélange des deux cas précédents :
Ne pas abuser de cette méthode
Un rebase foireux peut vite devenir compliqué à gérer !
$ git pull --rebase
Commiter ses modifications aux fichiers versionnés
Lorsqu'un changement est apporté aux fichiers versionnés sur le serveur, il doivent être mis à l'index avant d'être commités pour qu'elles soient sauvegardées dans l'historique.
La commande git status permet d'indiquer les fichiers modifiés/non suivis.
Si les modifications du fichier chemin/vers/machin.conf doivent être ajouté à l'index, il faut entrer la commande :
$ git add chemin/vers/machin.conf
Plusieurs fichiers ou dossiers peuvent simultanément être ajoutés à l'index.
Une fois les modifications indexées, il faut les commiter pour enregistrer les modifications.
$ git commit
À ce moment un éditeur, en général nano, vim ou emacs, ouvre une zone d'édition où l'administrateur entre un message expliquant la modification concernée.
Une fois la modification enregistrée en local, il faut la pousser vers un dépôt distant, s'il y en a un.
$ git push
Liste des dépots Git du BdE
Tous les dépôts sont clonés depuis le GitLab Crans
- Note Kfet 2015 Serveur : Serveur de la Note (bde2-virt)
- Note Kfet 2015 Client : Client Django de la Note (bde2-virt)
- Scripts : Scripts utiles pour la vidéo et le calendrier (bde2-virt, videobde)
- Digicode : Projet de digicode pour les locaux associatifs (bde3, bde3-virt)
Ces dépôts peuvent être clonés par les membres du groupe BdE avec la commande :
$ git clone https://gitlab.crans.org/bde/<nom du dépôt>.git