Modifications entre les versions 9 et 22 (s'étendant sur 13 versions)
Version 9 à la date du 2008-09-25 11:33:28
Taille: 2779
Commentaire: quelques corrections...
Version 22 à la date du 2015-07-20 23:59:57
Taille: 4109
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
## page was renamed from Git/GitWeb
Un
dépôt git est disponible à l'AUF. Il permet :
 * à quiconque de suivre les développements AUF ;
||<#ffa0a0> /!\ Les dépôts de sources AUF sont en cours de transition vers [[../GitHub|GitHub]]. /!\ ||

<<TableOfContents>>

Un «
dépôt git» est disponible à l'AUF. Il permet :
 * à quiconque de suivre les développements effectués à l'AUF ;
Ligne 8: Ligne 11:
Vous trouverez ci-dessous un résumé des commandes à utiliser pour exploiter ce service. Si vous voulez vraiment savoir utiliser ''git'', voyez les liens sur la page [[Git]].
Ligne 9: Ligne 13:
Ci-dessous un résumé (pense-bête) des commandes à utiliser pour exploiter ce service. Si vous voulez vraiment savoir utiliser ''git'', consultez d'abord [[http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#public-repositories|la documentation officielle]]. = Télécharger un projet =
Ligne 11: Ligne 15:
== Télécharger et suivre d'un projet == Tous les projets visibles sur http://git.auf.org/ sont librement téléchargeables.
Ligne 13: Ligne 17:
Premier téléchargement : Pour obtenir un projet, on fait d'abord un premier ''clonage'' :
Ligne 15: Ligne 19:
$ git clone http://git.auf.org/git/projet $ git clone git://git.auf.org/nom-du-projet
Ligne 18: Ligne 22:
Télécharger les mises à jour : Cela crée un répertoire `nom-du-projet`, contenant votre dépôt git local du projet. Vous pouvez placer ce répertoire où bon vous semble.

Par la suite, pour obtenir la dernière version du projet, on se place dans le répertoire déjà téléchargé et on ''pull'' :
Ligne 20: Ligne 26:
$ cd projet $ cd nom-du-projet
Ligne 24: Ligne 30:
== Participer à un projet (droits en écriture) == = Participer à un projet (droits en écriture) =
Ligne 26: Ligne 32:
Nécessite un accès RPV + ssh. Si vous désirez participer à un projet sur le dépôt Git, vous devez :
 * avoir un accès au réseau privé de l'AUF (RPV) ;
 * envoyer votre clé publique SSH à l'un des responsables du dépôt (JeanChristopheAndré ou MoussaNombré) ;
 * en rappelant sur quel(s) projet(s) vous désirez obtenir les droits d'écriture.

Une fois que les droits vous auront été accordés, vous pouvez envoyer vos modifications avec un ''push'' :
 {{{
$ git push ssh://gitosis@git.auf/nom-du-projet
}}}

Note : afin de pouvoir taper directement `git push`, enregistrez l'URL dans la configuration du dépôt git :
 {{{
$ git config remote.origin.url ssh://gitosis@git.auf/nom-du-projet
}}}

Note : sans doute est-il préférable de travailler sur une '''branche''' du projet, que vous créerez à l'occasion de vos expérimentations. On essayera de mettre une documentation claire sur le sujet ici prochainement...

= Annexe : création d'un projet (notes pour les administrateurs du système gitosis) =

Pour ajouter un projet :

 1. Accéder au système de configuration de gitosis :
  {{{
$ git clone ssh://gitosis@git.auf/gitosis-admin
$ cd gitosis-admin
}}}
 1. Si besoin, ajouter la clé publique ssh du ou des nouvelles personnes dans des fichiers `keydir/prenom.nom.pub`. Les ajouter au dépôt git : `git add keydir`
 1. Ajouter le projet dans `gitosis.conf` :
  {{{
# extraits de gitosis.conf :

# permissions : les personnes qui pourront publier dans le projet (ici : nacer.saidou-adamou dans le projet "nacer"
[group nacer]
members = nacer.saidou-adamou
writable = nacer

# le dépôt du projet lui-même
[repo nacer]
description = petits bouts de codes de Nacer
owner = AuF
daemon = yes
gitweb = yes
}}}
 1. Publier la nouvelle configuration :
  {{{
$ git add keydir
$ git commit -a -m "ajout du projet nacer"
$ git push
}}}

 1. Enfin, créer un projet bidon et l'envoyer (note : il faut éventuellement s'y donner les droits) :
  {{{
$ mkdir bidon
$ cd bidon
$ git init
$ git remote add origin gitosis@git.auf:nacer.git
$ echo "codes de nacer" > LISEZMOI.txt
$ git add LISEZMOI.txt
$ git commit -a -m "premier commit"
$ git push origin master:refs/heads/master
}}}

 1. Vérifier que cela fonctionne et, éventuellement, se retirer les droits en écriture pour ne les laisser qu'au propriétaire du projet.

== synchronisation sur redmine.auf.org ==

Pour que le dépôt soit accessible sur https://redmine.auf.org/, il faut en faire un clone sur cette machine :
Ligne 29: Ligne 101:
$ git push ssh://git.auf/~user/projet     root@redmine# su - redmine
 redmine@redmine$ cd /srv/git
 redmine@redmine$ git clone --bare git://git.auf.org/xxxx.git xxxx.git
 redmine@redmine$ cd xxxx.git
 redmine@redmine$ git --bare remote add origin git://git.auf.org/xxxx.git
Ligne 32: Ligne 108:
= Création d'un projet =

Nécessite un accès RPV + ssh.

Sur la machine où le projet est présent :
 {{{
$ git clone --bare ~/projet projet.export
$ rsync -a projet.export user@git.auf:projet
$ rm -rf projet.export
}}}

Sur le serveur :
 {{{
$ cd ~user/projet/
$ echo "Description du projet en 35 caractères (ou plus)." > description
$ touch git-daemon-export-ok
$ git --bare update-server-info
$ chmod a+x hooks/post-update
}}}

Publication via http et vue sur gitweb (optionnelles) :
 {{{
$ cd /srv/git/
$ sudo ln -s ~user/projet .
}}}

== Partage en écriture ==

Si plusieurs personnes doivent intervenir sur le projet, on peut créer un compte "virtuel" accessible par ssh à un ensemble de clés bien défini. L'adresse publique ne changera pas.

== Eviter un accès shell complet via ssh ==

Pour que l'accès ''ssh'' soit restreint aux commandes git nécessaires, on met le shell de connexion de l'utilisateur à `/usr/bin/git-shell`<<FootNote(Ni `rssh` ni `scponly` ne fonctionnent, notamment par rapport à la notion de hooks)>>.

= Ce qui reste à faire : rien... =

 * http://eagain.net/blog/2007/03/22/howto-host-git.html : hébergement de gits, à étudier (lu en diagonale)
 * rsync public pour accès rsync
 * [[http://www.kernel.org/pub/software/scm/git/docs/howto/setup-git-server-over-http.txt|webdav]] ? Mmh, les droits d'écriture à "www-data" ne me plaisent pas. Ceci dit, pour un accès public, c'est-à-dire écriture depuis en dehors du RPV... Entre ça et des comptes avec `git-shell` sur un port autre que 22, mon coeur balance.
 * git-daemon pour accès git:// plus optimisé : pas vraiment nécessaire
 * dissocier gitweb de la publication via http (c'est-à-dire ne pas rendre tous les projets publics visibles via gitweb) : possible mais plutôt inutile

----
''Notes de bas de page :''
Un cron s'occupe de mettre à jour tous les dépôts `/srv/git/*.git`, voir sur la page [[redmine/InstallationMontreal]].

/!\ Les dépôts de sources AUF sont en cours de transition vers GitHub. /!\

Un «dépôt git» est disponible à l'AUF. Il permet :

  • à quiconque de suivre les développements effectués à l'AUF ;
  • à tout technicien AUF d'y présenter ses développements.

Les projets publics de ce dépôt sont visibles ici : http://git.auf.org/

Vous trouverez ci-dessous un résumé des commandes à utiliser pour exploiter ce service. Si vous voulez vraiment savoir utiliser git, voyez les liens sur la page Git.

Télécharger un projet

Tous les projets visibles sur http://git.auf.org/ sont librement téléchargeables.

Pour obtenir un projet, on fait d'abord un premier clonage :

  • $ git clone git://git.auf.org/nom-du-projet

Cela crée un répertoire nom-du-projet, contenant votre dépôt git local du projet. Vous pouvez placer ce répertoire où bon vous semble.

Par la suite, pour obtenir la dernière version du projet, on se place dans le répertoire déjà téléchargé et on pull :

  • $ cd nom-du-projet
    $ git pull

Participer à un projet (droits en écriture)

Si vous désirez participer à un projet sur le dépôt Git, vous devez :

  • avoir un accès au réseau privé de l'AUF (RPV) ;
  • envoyer votre clé publique SSH à l'un des responsables du dépôt (JeanChristopheAndré ou MoussaNombré) ;

  • en rappelant sur quel(s) projet(s) vous désirez obtenir les droits d'écriture.

Une fois que les droits vous auront été accordés, vous pouvez envoyer vos modifications avec un push :

  • $ git push ssh://gitosis@git.auf/nom-du-projet

Note : afin de pouvoir taper directement git push, enregistrez l'URL dans la configuration du dépôt git :

  • $ git config remote.origin.url ssh://gitosis@git.auf/nom-du-projet

Note : sans doute est-il préférable de travailler sur une branche du projet, que vous créerez à l'occasion de vos expérimentations. On essayera de mettre une documentation claire sur le sujet ici prochainement...

Annexe : création d'un projet (notes pour les administrateurs du système gitosis)

Pour ajouter un projet :

  1. Accéder au système de configuration de gitosis :
    • $ git clone ssh://gitosis@git.auf/gitosis-admin
      $ cd gitosis-admin
  2. Si besoin, ajouter la clé publique ssh du ou des nouvelles personnes dans des fichiers keydir/prenom.nom.pub. Les ajouter au dépôt git : git add keydir

  3. Ajouter le projet dans gitosis.conf :

    • # extraits de gitosis.conf :
      
      # permissions : les personnes qui pourront publier dans le projet (ici : nacer.saidou-adamou dans le projet "nacer"
      [group nacer]
      members = nacer.saidou-adamou
      writable = nacer
      
      # le dépôt du projet lui-même
      [repo nacer]
      description = petits bouts de codes de Nacer
      owner = AuF
      daemon = yes
      gitweb = yes
  4. Publier la nouvelle configuration :
    • $ git add keydir
      $ git commit -a -m "ajout du projet nacer"
      $ git push
  5. Enfin, créer un projet bidon et l'envoyer (note : il faut éventuellement s'y donner les droits) :
    • $ mkdir bidon
      $ cd bidon
      $ git init
      $ git remote add origin gitosis@git.auf:nacer.git
      $ echo "codes de nacer" > LISEZMOI.txt
      $ git add LISEZMOI.txt
      $ git commit -a -m "premier commit"
      $ git push origin master:refs/heads/master
  6. Vérifier que cela fonctionne et, éventuellement, se retirer les droits en écriture pour ne les laisser qu'au propriétaire du projet.

synchronisation sur redmine.auf.org

Pour que le dépôt soit accessible sur https://redmine.auf.org/, il faut en faire un clone sur cette machine :

  •     root@redmine# su - redmine
     redmine@redmine$ cd /srv/git
     redmine@redmine$ git clone --bare git://git.auf.org/xxxx.git xxxx.git
     redmine@redmine$ cd xxxx.git
     redmine@redmine$ git --bare remote add origin git://git.auf.org/xxxx.git

Un cron s'occupe de mettre à jour tous les dépôts /srv/git/*.git, voir sur la page redmine/InstallationMontreal.

Git/DépôtGit (dernière édition le 2015-07-20 23:59:57 par JeanChristopheAndré)