Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
enseignement:aide:forge [2014/09/23 14:17]
ecoquery
enseignement:aide:forge [2017/09/28 09:12] (Version actuelle)
ecoquery [Aide sur l'utilisation de la forge UCBL]
Ligne 2: Ligne 2:
  
 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 ===== ===== 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 [[http://tortoisehg.bitbucket.org/|TortoiseHG]]+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 ==== ==== Mise en place ====
  
 Créer un projet sur la forge: Créer un projet sur la forge:
-  * Se rendre ici: http://forge.univ-lyon1.fr/projects/new +  * 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 Configuration -> Membres.</note> +  * 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 mercurial du dépôt: onglet Configuration -> Dépôt+  * Récupérer l'URL git du dépôt: sous le titre sur la page d'accueil du projet.
  
-Par la suite, on supposera que le projet a comme id ''p1234567-montp''. L'URL pour le navigateur est donc http://forge.univ-lyon1.fr/projects/p1234567-montp et l'URL pour mercurial est https://forge.univ-lyon1.fr/hg/p1234567-montp+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): 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> <code shell>
-hg clone https://forge.univ-lyon1.fr/hg/p1234567-montp+git clone https://forge.univ-lyon1.fr/p1234567/montp.git
 </code> </code>
  
-Si l'enseignant 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) :+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> <code shell>
-cd p1234567-montp                                      # si ce n'est pas déjà fait +cd montp                                      # si ce n'est pas déjà fait 
-hg pull https://forge.univ-lyon1.fr/hg/une-ue-un-tp    # récupération en local du code +git pull https://forge.univ-lyon1.fr/login.de.mon.enseignant.e/un-tp.git    # récupération en local du code 
-hg update                                              # se positionner sur la dernière version +git push                                                # propagation du code vers votre projet sur la forge
-hg push                                                # propagation du code vers votre projet sur la forge+
 </code> </code>
-Cette opération de récupération de contenu du projet n'est à faire qu'une fois par projet/tp.+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 ==== ==== 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 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>hg add le/nom/du/fichier</code>+<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> <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: Une fois les modifications satisfaisantes il faut les valider:
 <code shell> <code shell>
-hg commit -m "Un message qui explique ce qu'on a fait"+git commit -a -m "Un message qui explique ce qu'on a fait" 
 </code> </code>
-<note tip>Si mercurial se plaint de ne pas connaître l'identité du développeur, ajouter le code suivant au fichier ''~/.hgrc''((Créer ce fichier au besoin)):<file ini .hgrc+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) 
-[ui] +<note tip>Si git se plaint de ne pas connaître l'identité du développeur, utiliser une fois les commandes suivantes: 
-username = Mon nom <mon.e.mail@mon.domaine.fr> +<code shell
- +git config --global user.name "Mon Nom" 
-</file> +git config --global user.email "mon.email@etu.univ-lyon1.fr" 
- +</code> 
-Ajouter également le fingerprint comme expliqué dans la [[http://forge.univ-lyon1.fr/projects/forge/wiki/FAQ|FAQ de la forge]] +</note>
- +
-</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>hg push</code>. +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 ''hg push'' par ''hg 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 des fusions (merge). Voir http://mercurial.selenic.com/guide/ (en anglais) pour des scénarios avec fusion.</note>+<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>