Modifications entre les versions 1 et 14 (s'étendant sur 13 versions)
Version 1 à la date du 2008-03-04 10:55:05
Taille: 1000
Éditeur: ThomasNoël
Commentaire: draft
Version 14 à la date du 2008-10-24 17:06:59
Taille: 4087
Commentaire: le git push ne retient pas la dernière URL fournie !!
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
notes sur la mise en place de git.auf.org ## page was renamed from Git/GitWeb
Ligne 3: Ligne 3:
La doc officielle : http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#public-repositories ||<bgcolor="#FFFF00"> Note : dans toute cette page, il faut remplacer '''PROJET''' par le nom de votre projet (par exemple `auf-postclient`).||
Ligne 5: Ligne 5:
= Utilisation = Un dépôt git est disponible à l'AUF. Il permet :
 * à quiconque de suivre les développements AUF ;
 * à tout technicien AUF d'y présenter ses développements.
Ligne 7: Ligne 9:
== Télécharger et suivre d'un projet == Les projets publics de ce dépôt sont visibles ici : http://git.auf.org/
Ligne 9: Ligne 11:

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 et suivre d'un projet, sans participer ==

Premier téléchargement :
Ligne 10: Ligne 18:
$ git clone http://git.auf.org/git/projet $ git clone http://git.auf.org/git/PROJET
}}}

Télécharger les mises à jour :
 {{{
$ cd PROJET
$ git pull
Ligne 15: Ligne 29:
Nécessite un accès ssh au projet. Nécessite un accès RPV + SSH.
Ligne 18: Ligne 32:
$ git push ssh://git.auf.org/~user/projet master $ git push ssh://git.auf/~user/PROJET
Ligne 20: Ligne 34:

Étant donné que vous serez amenés à répéter cette commande régulièrement, autant enregistrer l'URL dans la configuration locale de git :
 {{{
$ git config remote.origin.url ssh://git.auf/~user/PROJET
}}}

Ainsi vous pourrez ensuite vous contenter d'un simple `git push` sans autre argument.
Ligne 23: Ligne 44:
Nécessite un accès ssh : le demander à Moussa. Nécessite un accès RPV + ssh.

Sur
la machine où le projet est présent :
Ligne 25: Ligne 48:
$ git clone --bare ~/proj proj.git
$ touch proj.git/git-daemon-export-ok
rsync vers serveur, puis sur le serveur :
$ cd proj.git
$ 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
Ligne 33: Ligne 62:
Publication via http et vue sur gitweb (optionnelles) :
 {{{
$ cd /srv/git/
$ sudo ln -s ~user/PROJET .
}}}
Ligne 35: Ligne 70:
 * accès partagé via ssh : compte "virtuel" avec clés ssh publiques 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.
Ligne 37: Ligne 72:
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)>>.
Ligne 38: Ligne 74:
= TODO =
 * webdav ? (surtout poru simplification de l'accès pour projets partagés)
 * git-daemon pour accès git:// plus optimisé (bof)
 * test de compte "rssh only"
Exemple de création du compte (à faire '''avant''' le transfert du projet) :
 {{{
$ sudo adduser --shell /usr/bin/git-shell --gecos "Projet PROJET" --disabled-password git-PROJET
$ sudo adduser git-PROJET ssh
$ sudo mv ~user/PROJET ~git-PROJET/
$ sudo chown -R git-PROJET:git-PROJET ~git-PROJET/
}}}
Ne pas oublier de copier les clés nécessaires dans le fichier `~git-PROJET/.ssh/authorized_keys` !

L'envoi des modifications au projet se fait alors avec la commande suivante (depuis chez vous) :
 {{{
$ git push ssh://git-PROJET@git.auf/~/PROJET
}}}

Étant donné que vous serez amenés à répéter cette commande régulièrement, autant enregistrer l'URL dans la configuration locale de git :
 {{{
$ git config remote.origin.url ssh://git-PROJET@git.auf/~/PROJET
}}}

Ainsi vous pourrez ensuite vous contenter d'un simple `git push` sans autre argument.

= 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 :''

Note : dans toute cette page, il faut remplacer PROJET par le nom de votre projet (par exemple auf-postclient).

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

  • à quiconque de suivre les développements 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/

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 la documentation officielle.

Télécharger et suivre d'un projet, sans participer

Premier téléchargement :

  • $ git clone http://git.auf.org/git/PROJET

Télécharger les mises à jour :

  • $ cd PROJET
    $ git pull

Participer à un projet (droits en écriture)

Nécessite un accès RPV + SSH.

  • $ git push ssh://git.auf/~user/PROJET

Étant donné que vous serez amenés à répéter cette commande régulièrement, autant enregistrer l'URL dans la configuration locale de git :

  • $ git config remote.origin.url ssh://git.auf/~user/PROJET

Ainsi vous pourrez ensuite vous contenter d'un simple git push sans autre argument.

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.

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-shell1.

Exemple de création du compte (à faire avant le transfert du projet) :

  • $ sudo adduser --shell /usr/bin/git-shell --gecos "Projet PROJET" --disabled-password git-PROJET
    $ sudo adduser git-PROJET ssh
    $ sudo mv ~user/PROJET ~git-PROJET/
    $ sudo chown -R git-PROJET:git-PROJET ~git-PROJET/

Ne pas oublier de copier les clés nécessaires dans le fichier ~git-PROJET/.ssh/authorized_keys !

L'envoi des modifications au projet se fait alors avec la commande suivante (depuis chez vous) :

  • $ git push ssh://git-PROJET@git.auf/~/PROJET

Étant donné que vous serez amenés à répéter cette commande régulièrement, autant enregistrer l'URL dans la configuration locale de git :

  • $ git config remote.origin.url ssh://git-PROJET@git.auf/~/PROJET

Ainsi vous pourrez ensuite vous contenter d'un simple git push sans autre argument.

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
  • 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 :

  1. Ni rssh ni scponly ne fonctionnent, notamment par rapport à la notion de hooks (1)

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