Archives de la catégorie: Gestion de projets avec GitThis page as PDF

Gestion de projets avec Git Programmation Android

TP Android : partager un projet sur GitHub

Le support de Git (et de GitHub) est bien intégré à Android Studio. Néanmoins, partager son projet sur GitHub nécessite quelques étapes, qui sont l’objet de ce TP. On suppose bien évidemment ici que vous disposez déjà d’un compte sur GitHub, et d’un projet à partager.

Configuration du .gitignore

Sous Android Studio, ouvrez (ou créez) votre projet. Un fichier .gitignore est automatiquement créé à la racine de votre projet, mais il est nécessaire de le compléter.
Pour cela, ouvrir le fichier .gitignore à la racine de votre projet avec un éditeur (on ne le voit pas dans les fichiers du projet, il faut passer par un explorateur.). Le chemin est AndroidStudioProjects/NomDuProjet à partir de votre home.

Le fichier d’origine ressemble à ça :


*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild

Il faut le compléter en ajoutant les lignes suivantes :

gradle.properties
.idea/tasks.xml
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/vcs.xml

Le premier fichier contient la configuration du proxy, et ne doit donc pas être partagé entre les machines. Le répertoire .idea contient des configurations spécifiques à l’utilisateur ou à la machine, et que l’on peut donc éviter de partager.

Partage de votre projet

Une fois le .gitignore configuré correctement, le partage du projet et les différentes mises à jour peuvent se faire entièrement par les menus. Dans le menu, choisir VCS > Import into Version Control > Share Project On GitHub. Il vous faudra vous identifier (login/mot de passe de votre compte GitHub) et valider les informations relatives au partage. L’export sur GitHub se termine par la validation du premier commit de votre dépôt. Vous pouvez vérifier sur le site de GitHub que votre projet a bien été mis en litgne

Installation sur d’autres machines

Une fois un projet hébergé sur GitHub, son partage avec d’autres contributeurs utilisant Android Studio est très facile. Il suffit d’utiliser le menu (new:import from cvs:github et de renseigner les différents champs (compte github si nécessaire, puis choisir le projet dans la liste.

Recommandations

Après avoir exporté votre projet avec git/gitHub correctement, le plus dur est fait. Mais il peut encore se produire quelques problèmes, en particulier si les versions d’Android Studio ne sont pas les mêmes sur tous les postes. A l’iut, le pire qu’il puisse se produire est une mise à jour de la version d’Android studio (mais la même mise à jour aura lieu sur tous les postes en même temps).

  • Si possible utilisez la même version d’Android Studio partout
  • Si ce n’est pas possible, créez et partagez le projet à partir de la version d’Android studio la plus ancienne (probablement celle de l’iut)
  • En cas de changement de version d’Android studio, faites la mise à jour sur un poste (et un seul), avant de la partager sur les autres (ne pas faire les mêmes modifications à plusieurs endroits…)

Attention à exclure du dépôt les fichiers de signatures, ainsi que tout document contenant des mots de passes ou autres informations sensibles. De plus, toutes les versions précédentes sont conservées, donc même si vous retirez des fichiers des dernières versions, ils restent accessibles !

Cours Gestion de projets avec Git

TD 5

Un canevas de site vous est proposé sur le dépôt git suivant :

https:github.com/VincentDubois/TP3

A partir de ce canevas, et en utilisant votre compte gitHub (que vous préciserez sur la feuille d’appel), vous devrez créer un site répondant à la demande de l’enseignant. Vous êtes libres de choisir le mode d’organisation que vous souhaitez. Une fois l’organisation décidée (en 15 minutes maximum), tous les échanges se font par les outils informatiques de GitHub (pas de discussion/mail/messagerie autres que ce qui est proposé sur ce site).

Tous les documents sont autorisés, y compris ceux en ligne. Si vous êtes bloqués, vous pouvez demander de l’aide à l’enseignant (comme pour un TP normal). lire la suite »

Gestion de projets avec Git

TD 4 (Travail sur un même document)

Ce TD continue et achève le TD précédent. L’objectif est de compléter la page du projet pour obtenir une revue de presse, en utilisant le style défini précédemment.

Préparation

Avant tout, assurez-vous des points suivants :

  • Votre dépôt est propre
  • Vous êtes dans la branche master
  • Votre style est bien celui retenu lors du TD 3
  • Vous avez configuré origin et upstream vers les bon dépôts (respectivement votre dépôt github et celui de votre intégrateur)

Si un de ces points n’est pas vérifié, corrigez le problème (éventuellement en retournant voir dans le TD précédent les commandes à utiliser)

Pour limiter les conflits, il est recommandé de préparer dans le fichier html un emplacement par article, et d’indiquer clairement (par exemple par des commentaires dans le html) qui sera responsable de quelle partie. Pour cela, il faut donc :

  1. Se répartir les rôles (Edito, articles etc…)
  2. Editer le fichier html en conséquence (une seule personne édite et soumet la nouvelle version du fichier).
  3. Chacun met à jour sa version du fichier html sur le dépôt officiel.

En fonction de la taille du groupe, il peut être judicieux de créer des pages par rubriques ou par thématique, chacune de ces pages ayant son propre responsable (exemple : une rubrique sport, une rubrique international etc…).

Création du contenu

Pour remplir votre partie, vous pouvez utiliser tout site d’information, thématique ou non (ou même votre imagination).

Le contenu lui-même a peu d’importance pour ce TP, l’important est que chacun ait l’occasion de réaliser une contribution en passant par GitHub (restez tout de même dans le domaine du raisonnable, et tenez des propos corrects: il vous faudra assumer la responsabilité de ce que vous écrivez, y compris sur le plan légal…). Pensez à faire des commits réguliers.

Une fois chaque article terminé, il faut le soumettre (pull request) à votre responsable de rubrique ou à l’intégrateur.

Ensuite, vous pouvez ajouter une miniature (pensez à définir des dimensions standards…) à votre article.

Gestion de projets avec Git

TD 3 (GitHub et branches)

L’objectif de ce TP est de réaliser une mini revue de presse, de manière collaborative.

Dépôt sur github

Pour ce TP, nous allons créer un dépôt sur github, un service d’hébergement de code basé sur Git. L’organisation retenue est la suivante :

  1. Créez d’un compte sur https://github.com, si vous n’en avez pas déjà un. Vous choisirez si possible un identifiant de la forme NomPrenom.
  2. Pensez à noter quelque part votre identifiant et votre mot de passe, afin de ne pas perdre de temps à les retrouver lors des prochaines utilisations.

  3. Paramètrage local de Git

Si ce n’est pas déjà fait, configurez Git sur votre compte (nom, mail etc.. voir TP 1).
Normalement, il n’est plus nécessaire de configurer le proxy manuellement. Au cas où, voici néanmoins la commande qui permettrait de le configurer :

git config --global http.proxy cache-iutl.univ-artois.fr:3128

lire la suite »

Cours Gestion de projets avec Git

TD 2 (Echanges)

L’objectif de ce TD est d’utiliser git pour mettre en commun les pages perso créées lors du premier TD.

Vérification des pages

Complétez votre page, en utilisant régulièrement les commandes vues précédemment pour faire des sauvegardes. Vérifiez que vous avez bien changé votre nom et ajouté une photo. Complétez en incluant une courte présentation de votre parcours, ainsi que vos centres d’intérêt et votre projet professionnel.
Assurez-vous d’avoir bien sauvegardé tous fichiers dans votre dépôt git (quelle commande permet de vérifier ? utilisez-là)

Vérification du dépôt commun

Le partage se fera en envoyant toutes les mises à jour sur le même dépôt. La commande

git remote -v

permet de voir les dépôts distants configurés. Quels sont-ils ?

A votre avis, quand et comment ces informations ont-elles été ajoutées ?

Mise à jour du dépôt distant.

Votre dépôt local contient les différentes versions de votre travail. L’étape suivante est le partage de ces versions (commits) avec le reste du groupe.

  1. Vérifiez que votre site s’affiche correctement dans le navigateur, et que vos liens fonctionnent
  2. Vérifiez avec git status que votre dépôt est propre, c’est à dire que le répertoire de travail contient bien la même chose que le dernier commit. Attention, le fichier mon_nom.html ne doit plus être présent dans votre répertoire (il a normalement été renommé au cours du TD 1). Corrigez si nécessaire la situation, et revérifiez l’état du dépôt avant la suite.
  3. La commande git diff ref permet de comparer la version actuelle d’un fichier et la version dans n’importe quelle archive.
    Vérifiez que la version actuelle de votre fichier index.html ne diffère de l’original que par le lien vers votre page. Corrigez si nécessaire la situation.
  4. Si tout a bien été vérifié, et que votre dépôt est propre, la commande git push permet de ‘pousser’ vos commits vers le dépôt d’origine. Utilisez
    git push --all

  5. Que s’est-il passé ?
  6. Quel est le nom de la branche dans laquelle s’effectue le travail ?

Mise à jour à partir du dépôt distant.

Pour récupérer la dernière version à jour, il faut réaliser deux actions : la récupération des commits distants (qui sont désignés par origin/branche), et la fusion :

git fetch

git merge origin/master

On peut aussi utiliser la commande suivante, qui réalise la même chose :

git pull origin master

Comme vous l’avez probablement constaté, il est impossible d’envoyer sur le dépôt distant un commit qui n’est pas basé sur la version la plus à jour de ce dépôt. Au lieu de risquer d’égarer des données, Git prévient que les données ont été modifiées depuis votre dernière mise à jour.

  1. Réalisez un diagramme listant les commits impliqués dans ce problème, en indiquant par des flèches les versions précédentes.

Gestion des conflits

La commande git merge (et donc la commande pull) peut aboutir à un conflit, si un même fichier a été modifié de manière différente dans les deux branches. Vous devriez normalement vous retrouver dans cette situation (sauf si vous êtes le premier à avoir exécuté git push).

  1. Comment sont indiquées les zones de conflit ? (aller voir dans le fichier incriminé) Comment voit-on sa version et la version du dépôt distant ?
  2. Corrigez le fichier (supprimez les indicateurs de conflit, et corrigez ce qui doit l’être)
  3. Validez le résultat par git add/commit

Une fois les conflits résolus et validés, vous pouvez à nouveau tenter le git push.

Transfert par clef et autres moyens

Comme vous pouvez le constater, l’utilisation du dépôt centralisée peut-être problématique quand tout le monde veut mettre à jour simultanément. C’est pourquoi cette solution est rarement utilisée sur de grands projets.

Heureusement, il est possible d’échanger les mises à jour sans passer par un dépôt central.
On peut sauvegarder tout ou partie d’un dépôt dans un seul fichier compressé avec la commande git bundle :

git bundle create nom_du_fichier master

  1. Quelle est la taille de ce fichier ? Comparez avec la taille des fichiers dans le répertoire de travail et le nombre d’archives (commits).

Le fichier ainsi créé peut être transmis (par exemple sur une clef, par mail, par un ftp, par un service type dropbox etc..). A partir de ce fichier, on peut cloner le dépôt d’origine :

git clone nom_du_fichier -b master

Si l’on dispose déjà d’une version du dépôt, on peut faire un git pull sur ce fichier :

git pull nom_du_fichier master

Pour gagner du temps, utilisez cette possibilité pour regrouper plusieurs dépôts sur un même compte grâce à des bundles, avant de synchroniser le tout avec le dépôt central. N’oubliez pas de résoudre localement les conflits avant de partager.

Récupérez régulièrement les dernières versions (git pull).

Corrections diverses

  1. Une fois les différentes pages mises à jour sur le dépôt distant, récupérez la dernière version et affichez le journal des modifications :

git pull

git log

  1. Passez en revue (par exemple avec le navigateur) les différentes pages, et corrigez les fautes d’orthographes et/ou les erreurs dans le code. Pensez à faire un commit et un push régulièrement (à chaque fichier corrigé par exemple).

Bilan

Au vu du TP :

  1. Quelles sont les étapes du TP qui ne nécessitent pas un accès au dépôt distant ?
  2. Que se passe-t-il si le dépôt distant est perdu ? Et si un dépôt local est perdu ?
  3. Est ce qu’un outil comme git permet de se dispenser de l’organisation du travail entre membres du groupe ? ( justifiez )
  4. A votre avis, pourquoi le message à chaque commit est-il obligatoire ? Même question pour l’auteur ?
  5. Pour les projets très actifs et impliquant beaucoup de personnes, on utilise un système de patchs (fichiers décrivant les modifications entre deux versions) envoyés à un membre de l’équipe appelé intégrateur. C’est l’intégrateur (et lui seul) qui ajoute les nouvelles versions au dépôt distant. A votre avis, pourquoi ce mode de fonctionnement ? (il y a plusieurs raisons valables).
Cours Gestion de projets avec Git

TD 1 (Découverte)

L’objectif de ce TP est d’utiliser les fonctions de base de Git pour la création et la gestion d’une page web individuelle.

Création du dépôt local.

Un dépôt commun a déjà été créé pour votre groupe dans un répertoire partagé, mais allez chacun devoir créer un clone de ce dépôt pour travailler. Votre travail se fera donc en local, dans votre copie du dépôt, et vos modifications seront plus tard (au prochain TP) partagées via le dépôt commun. Le partage se fera par les commandes correspondantes de git, vous ne toucherez donc jamais directement aux fichiers du dépôt commun. Pour travailler localement, il faudra créer un répertoire git, se placer dedans, et cloner (le terme technique pour copier un dépôt git) le dépôt commun.

Cela se fait avec les commandes suivantes :

mkdir git
cd git
git clone chemin

Il faut bien sur remplacer chemin par le chemin de votre dépôt, c’est à dire
/export/commun/mmi/git/2019/groupe.git ( groupe correspond à votre groupe TP, par exemple mmi1a1). lire la suite »

Gestion de projets avec Git Programmation Android

Installation complète (Java + Eclipse + Android + Egit) sous Windows 7 et OSX

Installation de Java (SE Development Kit)

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Pensez à télécharger la version correspondant bien à votre système d’exploitation (en particulier 32/64 bits).

Pour OSX, cette étape n’est pas nécessaire. A la place, le premier lancement d’Eclipse demandera l’installation (automatique) de la version adéquate de Java.

Installation Eclipse + Android

https://developer.android.com/tools/index.html

Téléchargez puis installez le « adt bundle ». Vérifiez qu’il s’exécute correctement.

Installation Egit

http://www.eclipse.org/egit/download/

Dans Eclipse, dans Help->Install new software, indiquer l’URL d’installation :

http://download.eclipse.org/egit/updates

Sélectionnez les paquets et installez (Attention à ne pas oublier d’accepter la license).

Gestion de projets avec Git

Aide-mémoire

Création de dépôt git

git init Crée un dépôt dans le répertoire courant
git init --bare Le dépôt est créé sans répertoire de travail (utile pour un dépôt partagé)
git clone url Duplique le dépôt donné par url

Aide et statut

git help commande Manuel de la commande git.
git status Donne l’état du répertoire de travail.
git branch -a Donne la liste des branches.
git remote -v Indique tous les dépôts distants définis.

Configuration générale

git config –global user.name ‘Votre nom’

git config --global user.mail login@provider.net

git config --global core.editor nano

git config --global http.proxy cache-etu.univ-artois.fr:3128

git config --global github.user identifiant_Github

Sauvegarde du répertoire de travail

git add fichiers Sélection des fichiers à intégrer dans l’archive
git rm fichiers Supprime les fichiers (faire un commit après)
git commit Crée une archive avec les fichiers ajoutés.
git commit -a -m ‘message’ Idem. Les fichiers de la dernière archive sont ajoutés automatiquement.

Branches

git branch branche Crée une branche .
git checkout branche Se place dans la branche.
git checkout -b branche Équivalent aux deux commandes précédentes.
git merge branche Fusionne la branche actuelle avec branche.

Dépôts distants

git remote add dépôt url Ajout d’un lien vers un dépôt distant.
git remote rm dépôt Suppression du lien vers dépôt.
git fetch dépôt Récupère les archives d’un dépôt (origin par défaut)
git pull dépôt branche Récupère et fusionne la branche.
git push --all dépôt Envoie toutes vos archives vers le dépôt.
Gestion de projets avec Git

FAQ

Q : Comment obtenir l’aide sur git ?

R : git help nom_de_la_commande

 

Q : Je suis perdu !

R : Essayez la commande git status

 

Q : Je n’arrive pas à faire git clone url!

R : Vérifiez :

  1. la configuration du proxy (Attention aux copier/coller, les – ne passent pas !)
  2. l’url (à l’iut, seules les URL en https:// et les fichiers locaux sont utilisables avec git)

lire la suite »

Gestion de projets avec Git

TP 3 (Mise en situation)

Un canevas de site vous est proposé sur le dépôt git suivant :

https:github.com/VincentDubois/TP3

A partir de ce canevas, et en utilisant un compte gitHub comportant vos nom/prénom et groupes, vous devrez créer un site répondant à la demande de l’enseignant. Vous êtes libres de choisir le mode d’organisation que vous souhaitez. Une fois l’organisation décidée (en 15 minutes maximum), tous les échanges se font par les outils informatiques de GitHub (pas de discussion/mail/messagerie autres que ce site).

Tous les documents sont autorisés, y compris ceux en ligne. Si vous êtes bloqués, vous pouvez demander de l’aide à l’enseignant (comme pour un TP normal). lire la suite »