Utilisation de GIT

Les informations utiles aux développeurs de Pyromaths.

Modérateur : Développeurs

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1096
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Utilisation de GIT

Message par Jérôme » 09 juil. 2009, 20:47

Git est un logiciel de gestion de versions décentralisé. C'est un logiciel libre créé par Linus Torvalds, le créateur du noyau Linux, et distribué sous la GNU GPL version 2.
Suite au changement de système d'exploitation sur le serveur de Pyromaths (OpenBSD 4.5), j'ai choisi de ne plus utiliser Subversion mais GIT.
Suit la procédure à utiliser pour pouvoir l'utiliser. Cela ne s'adresse qu'aux développeurs de Pyromaths.
La documentation officielle en anglais est ici : http://book.git-scm.com/book.pdf
La documentation officielle traduite en français est ici : http://alexgirard.com/git-book/book_fr.pdf

Sous MS Windows
Il faut télécharger la version de Git pour Windows ici : http://code.google.com/p/msysgit/downloads/list (la version intitulée Full installer if you want to use official Git)
Lors de l'installation, valider toutes les options proposées sauf les 3 suivantes :
Image Image Image

Puis, dans le menu démarrer, cliquer sur le programme GitGui.
Il va falloir tout d'abord vous créer une clé ssh qui vous permettra d'accéder au serveur. Pour cela, cliquer sur le menu Help / Show SSH key puis cliquer sur le bouton Generate Key et enfin cliquer sur le bouton Copy To Clipboard. Cette dernière action copie la clé publique dans le presse papier. Il vous faut à présent coller cette clé publique dans un mail à mon attention.
Image Image

Pour finir, une fois que j'aurai répondu à votre message en vous disant que tout est prêt, vous pourrez récupérez la dernière version de Pyromaths en cliquant sur le lien Clone Existing Repository toujours dans GitGui. Dans la fenêtre qui s'ouvre, complétez la ligne Source location avec le texte suivant : ssh://git@pyromaths.org:7422/pyromaths.git et compléter Target Directory avec le nom du dossier où vous souhaitez copier les sources de Pyromaths.
Image
La première fois, vous verrez le message suivant :
Image
Il vous faudra alors taper yes et cliquer sur OK.

Voilà !
Dernière modification par Jérôme le 28 juin 2010, 23:33, modifié 2 fois.
Raison : Ajout des liens vers la documentation officielle
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
Yves
Messages : 462
Inscription : 21 janv. 2009, 20:40
Contact :

Re: Utilisation de GIT

Message par Yves » 12 juil. 2009, 14:38

Sur Mac OS X
Il faut télécharger la version de Git pour Mac OS X ici : http://code.google.com/p/git-osx-instal ... loads/list
et procéder à son installation :
Image
La clé sera créée dans le dossier ~/.ssh/
Pour savoir qui a publié les modifications sur le projet, il faut configurer Git en renseignant votre nom et votre adresse mail en tapant les commandes suivantes :

Code : Tout sélectionner

git repo-config --global user.name "Prenom Nom"
git repo-config --global user.email "email@exemple.com"
Ensuite, il va falloir vous créer une clé ssh qui vous permettra d'accéder au serveur. Pour cela, taper la commande suivante dans le Terminal :

Code : Tout sélectionner

ssh-keygen
Copier la clé publique générée avec la commande pbcopy qui copie la sortie standard STDOUT vers le presse-papiers :

Code : Tout sélectionner

cat ~/.ssh/id_rsa.pub | pbcopy
Il vous faut à présent coller cette clé publique dans un mail à l'attention de Jérôme.
Une fois qu'il aura répondu à votre message, vous pourrez récupérez la dernière version de Pyromaths avec la commande :

Code : Tout sélectionner

git clone ssh://git@pyromaths.org:7422/pyromaths.git
Voilà !

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1096
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Quelques commandes utiles

Message par Jérôme » 25 août 2009, 01:32

  1. Fonctions de base
    • Pour ajouter de nouveaux fichiers au dépôt :

      Code : Tout sélectionner

      git add **fichier**
    • Pour appliquer toutes les modifications faites :

      Code : Tout sélectionner

      git commit -a
      et laisser un message explicatif dans le fichier qui s'ouvre.
    • Pour appliquer seulement quelques modifications faites :

      Code : Tout sélectionner

      git commit **fichiers**
      et laisser un message explicatif dans le fichier qui s'ouvre.
    • Pour publier les commits sur le serveur (master est à remplacer éventuellement par le nom de la branche) :

      Code : Tout sélectionner

      git repack
      git prune
      git push origin master
    • Pour récupérer la dernière version du serveur (master est à remplacer éventuellement par le nom de la branche):

      Code : Tout sélectionner

      git pull origin master
  2. Manipulation des branches
    • Pour créer une branche python3:

      Code : Tout sélectionner

      git branch python3
    • Pour publier la branche python3:

      Code : Tout sélectionner

      git push origin python3
    • Pour créer et sélectionner la branche modeles :

      Code : Tout sélectionner

      git checkout --track -b modeles origin/modeles
    • Pour sélectionner la branche modeles :

      Code : Tout sélectionner

      git checkout modeles
    • Pour supprimer la branche locale modeles :

      Code : Tout sélectionner

      git branch -d modeles
    • Pour supprimer la branche distante modeles :

      Code : Tout sélectionner

      git push origin :modeles
  3. En cas de mauvaises manipulations
    • Pour annuler les modifications faites en local :

      Code : Tout sélectionner

      git reset --hard origin/master
      ou pour la branche modeles

      Code : Tout sélectionner

      git reset --hard origin/modeles
  4. Étiqueter une version (pour Jérôme seulement)
    • Pour ajouter un tag (lors de la sortie d'une version)

      Code : Tout sélectionner

      git log --pretty=format:'%h : %s' --graph
      pour repérer le nom SHA1 du commit à tagger en options

      Code : Tout sélectionner

      git tag -u B39EE5B6 version-09.08 795e2b0
      pour tagguer le commit 795e2b0

      Code : Tout sélectionner

      git push --tags
    • Pour supprimer le tag version-09.08 mal placé :

      Code : Tout sélectionner

      git tag -d version-09.08
      git push origin :refs/tags/version-09.08
Dernière modification par Jérôme le 16 févr. 2010, 19:46, modifié 5 fois.
Raison : Correction des anglicismes, ajout de la manipulation des branches
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: Utilisation de GIT

Message par djinn » 03 mars 2013, 12:19

Salut,

Est-ce qu'il est possible d'accéder au dépot git en lecture seule (sans identification ssh)?
J'aurais aimé cloner le dépôt avec un:

Code : Tout sélectionner

$ git clone git://pyromaths.org/pyromaths.git
EDIT: Je viens de me rendre compte que le sujet avait déjà été évoqué. Désolé… :-/
Dernière modification par djinn le 06 mars 2013, 19:55, modifié 2 fois.

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1096
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Utilisation de GIT

Message par Jérôme » 03 mars 2013, 12:23

Non, il n'y a pas d'accès public au serveur git. Les sources de la dernière version sont libres par contre dans la zone téléchargement.
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: Utilisation de GIT

Message par djinn » 06 mars 2013, 12:40

Jérôme a écrit :Les sources de la dernière version sont libres par contre dans la zone téléchargement.
En effet, mais c'est simplement un instantané du code source: il manque beaucoup d'information…
Jérôme a écrit :Non, il n'y a pas d'accès public au serveur git.
C'est dommage…
Finalement, j'utilise git pour travailler sur le code en local, mais mon "arbre" indépendant n'est pas compatible avec l'arbre officiel: si je contribuais un patch, le commit local et le commit officiel auraient des SHA1 différents, par exemple. Idéalement, j'aurais préféré partir de l'arbre officiel et coder dans ma branche locale; Il me semble que c'est ainsi que git est censé être utilisé.

Sans indiscrétion, est-ce qu'il y a une raison (technique ou autre) à cela?

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1096
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Utilisation de GIT

Message par Jérôme » 06 mars 2013, 15:08

djinn a écrit : C'est dommage…
Finalement, j'utilise git pour travailler sur le code en local, mais mon "arbre" indépendant n'est pas compatible avec l'arbre officiel: si je contribuais un patch, le commit local et le commit officiel auraient des SHA1 différents, par exemple. Idéalement, j'aurais préféré partir de l'arbre officiel et coder dans ma branche locale; Il me semble que c'est ainsi que git est censé être utilisé.

Sans indiscrétion, est-ce qu'il y a une raison (technique ou autre) à cela?
Je ne vois pas l'intérêt de proposer un git en lecture seule. Si quelqu'un veut participer, je lui crée un compte. À part d'éventuelles failles de sécurité, ça n'apporte rien (à mon sens). Donc si tu veux un accès, tu n'as qu'à demander (et me donner les infos requises). :)
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: Utilisation de GIT

Message par djinn » 06 mars 2013, 17:02

En fait, j'aurais aimé éviter de te déranger, sachant que je ne suis pas absolument certain à ce stade de contribuer quoi que ce soit… :-)

Avatar de l’utilisateur
Arnaud
Critique officiel de pyromaths
Messages : 609
Inscription : 26 août 2006, 21:49
Localisation : Allemagne
Contact :

Re: Utilisation de GIT

Message par Arnaud » 06 mars 2013, 20:09

En fait, c'est pour éviter de rendre public les âneries que je peux parfois écrire :)

Bon sérieusement, concernant la sécurité, on pourrait envisager d'ouvrir tout ça via une solution telle que github.

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1096
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Utilisation de GIT

Message par Jérôme » 06 mars 2013, 20:15

Arnaud a écrit :En fait, c'est pour éviter de rendre public les âneries que je peux parfois écrire :)
:lol: :lol:
Arnaud a écrit :Bon sérieusement, concernant la sécurité, on pourrait envisager d'ouvrir tout ça via une solution telle que github.
Oui, on pourrait. cela dit, en 7 ans (je crois), ça n'est arrivé que deux fois que quelqu'un demande un accès... On peut donc relativiser je pense.
Djinn a son accès et a préparé son premier correctif ! :)
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: Utilisation de GIT

Message par djinn » 06 mars 2013, 20:57

Arnaud a écrit :Bon sérieusement, concernant la sécurité, on pourrait envisager d'ouvrir tout ça via une solution telle que github.
En effet. Mais j'ai l'impression que Jérôme tient à utiliser son serveur OpenBSD (si je me souviens bien) -- ce que je peux comprendre.
Je pense sincèrement que faire tourner un daemon git ne compromettrait pas significativement la sécurité de ce serveur. Certes, c'est un service de plus et, statistiquement, des failles de sécurité potentielles supplémentaires. Ceci étant dit, le risque est à mon sens bien moindre que de faire tourner un serveur web, par exemple: c'est un protocole bien plus simple. C'est également un code central car, dans la philosophie décentralisée de git, quiconque bidouille du code contrôlé par git fait (ou devrait pouvoir faire) tourner son propre daemon, afin qu'un tiers puisse "puller" un commit qu'il juge heureux. Il y a des développeurs vraiment très sérieux qui font tourner un daemon git chez eux: je crois qu'on peut faire pareil.
Il est toujours possible de faire appel à github, par exemple, pour délocaliser le risque. Notons cependant qu'ils n'hésitent pas, eux, à miser leur business notamment sur la fiabilité du daemon git. ;-)
Jérôme a écrit : Oui, on pourrait. cela dit, en 7 ans (je crois), ça n'est arrivé que deux fois que quelqu'un demande un accès... On peut donc relativiser je pense.
Djinn a son accès et a préparé son premier correctif ! :)
Mon correctif! Il faut le dire très vite! Je me suis contenté de faire un peu d'administratif… :D
Si tu me permets néanmoins, je crains que ton raisonnement ne soit légèrement biaisé: je pense que, si un accès public était disponible, il aurait été utilisé par plus de 2 personnes en 7 ans. Personnellement, j'aurais très bien pu ne pas oser demander un accès, pour autant j'aurais certainement cloné en anonyme si cela avait été possible. Bon, honnêtement, je ne pense pas que Pyromaths ait loupé beaucoup de patch à cause de ça, mais quand même… :-)

kellogs
Messages : 9
Inscription : 31 déc. 2014, 11:35
Contact :

Re: Utilisation de GIT

Message par kellogs » 31 déc. 2014, 12:32

Je cherche les sources depuis plus d'une heure et je viens de comprendre que l'URL se trouve dans la copie d'écran.
C'est bien git clone ssh://git@pyromaths.org:7422/pyromaths.git

Code : Tout sélectionner

git clone ssh://git@pyromaths.org:7422/pyromaths.git
Clonage dans 'pyromaths'...
no slots
The authenticity of host '[pyromaths.org]:7422 ([xxxxxxxxxxxxxxxx]:7422)' can't be established.
ECDSA key fingerprint is xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[pyromaths.org]:7422,[xxxxxxxxxxxxxxxxxxxxxx]:7422' (ECDSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
Est-il possible de cloner en tant qu'utilisateur anonymous ?
Avez-vous pensé héberger Pyromaths sous GitHub ?
Je pense que des centaines de professeurs sont intéressés, en France et à l'étranger, et en conservant un GIT non-accessible à tous, on se prive d'une aide précieuse.

Amicalement,
Kellogs

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1096
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Utilisation de GIT

Message par Jérôme » 31 déc. 2014, 12:40

kellogs a écrit : Est-il possible de cloner en tant qu'utilisateur anonymous ?
Avez-vous pensé héberger Pyromaths sous GitHub ?
Je pense que des centaines de professeurs sont intéressés, en France et à l'étranger, et en conservant un GIT non-accessible à tous, on se prive d'une aide précieuse.
Et c'est reparti pour un tour :) Ce sujet revient régulièrement, et je suis celui qui s'y oppose. Les sources sont disponibles sur le site de Pyromaths, avec les paquets binaires, au format tar.bz2 il me semble. Pour obtenir un accès au serveur git, il faut en faire la demande, c'est expliqué sur le site également. Je ne veux pas donner d'accès en lecture seule car je n'en vois pas l'intérêt. Je ne l'ai pas transféré sur github car... Je ne sais pas. J'aime avoir le contrôle probablement. :?
Si tu veux juste regarder le code, tu peux donc télécharger le code source de la dernière version publiée ici.
Si tu veux modifier le code, tu me fais une demande de création de compte.
À plus.
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

kellogs
Messages : 9
Inscription : 31 déc. 2014, 11:35
Contact :

Re: Utilisation de GIT

Message par kellogs » 31 déc. 2014, 12:46

OK, compris pour les motivations, c'est naturel et même compréhensible.

Toutefois, GitHub te permet de garder le contrôle. Tu peux passer ton temps à réviser des demandes de commit. Je n'ai pas étudié en détails, mais même un fork reste lié au projet principal. Il est difficile de recréer un nouveau projet sous GitHub, à moins de renvoyer toutes les sources, sous un nom différent. J'en ai déjà fait l'expérience, certaines communautés se sont déchirées et le gestionnaire avait un compte GitHub.

Avec GitHub, Pyromaths n'aurait jamais forké, c'est une absurdité.

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1096
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Utilisation de GIT

Message par Jérôme » 31 déc. 2014, 15:23

Tu as sans doute raison. Je me suis créé un compte gitHub il y a plusieurs mois (années ?). Je n'ai cependant pas pris le temps de m'y plonger.

Est-ce réellement un drame le fork de Pyromaths ? Car je ne le vois pas ainsi.
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Répondre