Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
enseignement:aide:forge [2012/07/06 14:37]
ecoquery créée
enseignement:aide:forge [2017/09/28 09:12] (Version actuelle)
ecoquery [Aide sur l'utilisation de la forge UCBL]
Ligne 3: Ligne 3:
 A destination des étudiants pour les TPs A destination des étudiants pour les TPs
  
 +Problème de connexion ? [[https://forge.univ-lyon1.fr/EMMANUEL.COQUERY/forge/wikis/faq|Essayer la FAQ]]
 +
 +
 +
 +
 +===== Scénario d'utilisation pour un TP =====
 +
 +Le scénario suivant est à utiliser sous Unix (Linux ou Mac OS X). Sous Windows, remplacer les commandes par leur équivalent via [[https://tortoisegit.org/|TortoiseGIT]] ou [[https://git-for-windows.github.io/|Git for Windows]]
 +
 +==== Mise en place ====
 +
 +Créer un projet sur la forge:
 +  * Se rendre ici: https://forge.univ-lyon1.fr/ et créer un nouveau projet
 +  * Ajouter les membres du groupe de travail (i.e. le binome) <note tip>Pour être ajouté à un projet, un étudiant doit s'être connecté au  moins une fois sur http://forge.univ-lyon1.fr. Le manager du projet pourra alors l'ajouter via Settings -> Members.</note>
 +  * Récupérer l'URL git du dépôt: sous le titre sur la page d'accueil du projet.
 +
 +Un projet est identifié par un //namespace// (le login UCBL du créateur du projet) et un nom de projet.
 +Par la suite, on supposera que le projet a comme namespace ''p1234567'' et comme nom ''montp''
 +Son identifiant est donc ''p1234567/montp''.
 +L'URL pour le navigateur est donc https://forge.univ-lyon1.fr/p1234567/montp et l'URL pour git est https://forge.univ-lyon1.fr/p1234567/montp.git
 +
 +Clôner le dépôt pour voir une copie de travail locale (à chaque fois, le login et le mot de passe sont ceux de l'intranet lyon 1):
 +<code shell>
 +git clone https://forge.univ-lyon1.fr/p1234567/montp.git
 +</code>
 +
 +Si l'enseignant.e a fourni un code de base dans un projet de la forge, récupérer le contenu de ce projet (on suppose que l'URL du projet en question est https://forge.univ-lyon1.fr/hg/une-ue-un-tp) :
 +<code shell>
 +cd montp                                      # si ce n'est pas déjà fait
 +git pull https://forge.univ-lyon1.fr/login.de.mon.enseignant.e/un-tp.git    # récupération en local du code
 +git push                                                # propagation du code vers votre projet sur la forge
 +</code>
 +Cette opération de récupération de contenu du projet n'est à faire qu'une fois par projet/tp, sauf si le code fourni pour le TP est mis à jour par l'enseignant.e .
 +
 +==== Travail ====
 +
 +Une fois le répertoire de travail mis en place, effectuer des modifications. Si de nouveaux fichiers source ont été ajoutés, il faut les déclarer via
 +<code shell>git add le/nom/du/fichier</code>
 +<note important>Ne pas versionner les fichiers binaires (*.o, *.class, *.jar, exécutables, etc). D'une manière générale, ne pas versionner tout fichier qui serait supprimer par un clean (i.e. ''make clean'' ou ''mvn clean'')</note>
 +Une fois les modifications satisfaisantes il faut les valider:
 +<code shell>
 +git commit -a -m "Un message qui explique ce qu'on a fait" # 
 +</code>
 +Ici, le ''-a'' indique à git de prendre en compte tous les fichiers modifiés en plus des fichier spécifiés avec''git add'' (voir [[https://git-scm.com/book/en/v2/Getting-Started-Git-Basics|Git Basics]] pour plus de détails, en anglais)
 +<note tip>Si git se plaint de ne pas connaître l'identité du développeur, utiliser une fois les commandes suivantes:
 +<code shell>
 +git config --global user.name "Mon Nom"
 +git config --global user.email "mon.email@etu.univ-lyon1.fr"
 +</code>
 +</note>
 +
 +Il est possible de faire plusieurs cycle modifications/commit, mais pour le moment les modifications ne sont pas propagées vers la forge. Cette propagation se fait via:<code shell>git push</code>
 +<note tip>Il est prudent de précéder un ''git push'' par ''git pull'' de façon à être sûr d'avoir la dernière version du dépôt. La réconciliation des changements peut nécessiter une fusion (merge) que git tentera de faire automatiquement (remplacer ''pull'' par ''fetch'' pour fusionner manuellement ensuite via ''git merge'' ou ''git rebase''). Voir [[https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches|la documentation de gestion des branches distantes]] et de [[https://git-scm.com/book/en/v2/Git-Branching-Rebasing|rebase]] (en anglais).</note>