Last modified 4 years ago Last modified on 03/26/13 16:11:31

Téléchargement de COMETE et gestion du code source

Télécharger COMETE

Pour l'instant COMETE n'est disponible qu'à partir du dépôt Git. Vous devez donc avoir un logiciel Git d'installé. Vous pouvez ensuite le télécharger soit:

Anonymement

Utilisez la commande:

git clone --recursive git://coeus.ca/brer.git

En tant que développeur

Envoyez votre clef ssh publique à benoitg@…, puis vous pouvez utiliser la commande:

git clone --recursive gitolite@coeus.ca:brer.git

Utilisation de GIT

L'usage de Git sous Cygwin est déconseillé car trop instable, particulièrement à l'intérieur des sous-modules. La version msysgitfonctionne bien sous Windows.

Configuration

Pour tous les développeurs: Pour éviter les problèmes avec les caractères de fin de ligne qui varient d'une plateforme à l'autre, voici un lien expliquant comment configurer votre client git:

Travailler avec les sous-modules

Si des sous-modules sont créés, une indication est mentionnée lors d'un git pull au top niveau. Par la suite, il faut lancer la commande suivante pour se synchroniser.

git submodule update --init

ps: avec Tortoise Git, lancer Submodule update.

Si des sous-modules sont modifiés, un git status donnera la nature des modifications (modified content, new commits...). Il faut aller dans le sous module et faire un git pull pour tout récupérer.

Maintenant, si vous faites des modifications dans un sous-module, il faudra être dans celui-ci pour "commiter" et "pusher" les changements. Il faut "pusher" les changements sur la branche comete (en général) et non master ou origin. Par la suite, il faut se rendre à la racine du projet et committer les sous-modules qui ont été modifiés. Ainsi, lorsqu'un autre usager fera un pull à partir de la racine du projet, les sous-modules seront également mis à jour.

Sous-module Git Branche où pousser
Harvester origin comete
MetadataEditor origin comete
SearchUI origin comete
commons-jar origin comete
orioai-indexing origin comete
fcrepo Ne pas modifier quoi que ce soit pour l'instant

Pour ceux qui utilisent Git sous Cygwin, si tous les fichiers des sous-modules sont marqués comme différents (Modified) juste après avoir cloné le repository (avec les sous-modules), c'est probablement à cause de ce problème. La solution:

git config core.filemode false

Bases de code externe

Il est à noter que le projet COMETE utilise plusieurs bases de codes externes. Il y a différentes possibilités:

  1. Le code est entièrement géré par le projet COMETE, auquel cas on l'inclut directement dans le dépôt git (pas de sous-module git), dans un répertoire approprié.
  2. Le code est sous contrôle externe, mais les développeurs de COMETE y ont accès (par exemple le code d'ORI-OAI). Auquel cas nous installons un miroir, et on crée un sous-module git qui pointe vers ce miroir.
  3. Le code est totalement externe, mais on veut y faire des modifications mineures ou majeures. Auquel cas nous installons un miroir (qui n'est pas mis à jour automatiquement), et créons un sous-module git qui pointe vers ce miroir. Lorsque nous sommes prêts, le code est contribué en amont, le dépôt synchronisé et le résultat poussé dans notre miroir.
  4. Le code est totalement externe, et nous n'avons pas de changements à faire. Auquel cas nous ne versionnons pas ce code dans le dépôt.

Miroir GIT du projet ORI-OAI

Un miroir GIT des 11 dépôts SVN du projet ORI-OAI (incluant tout l'historique) est disponible afin de faciliter l'intégration au projet COMETE. Vous pouvez consulter la Description des modules d'ORI-OAI pour savoir à quoi ces dépôts correspondent.

Les dépôts sont bidirectionnels (git-svn) et sont mis à jour toutes les heures. Les changements ne sont cependant pas propagés automatiquement aux dépôts SVN d'ORI-OAI. Afin de rendre la propagation facile, utilisez git rebase plutôt que git pull lorsque vous vous servez de ces dépôts (pour plus de détails, la documentation de fedora offre une bonne explication.

URL Git URL du SVN original
gitolite@…:ori-oai-git-mirror/ori-oai-harvest https://subversion.cru.fr/ori-oai-harvest
gitolite@…:ori-oai-git-mirror/esup-webdav-srv https://subversion.cru.fr/esup-webdav-srv
gitolite@…:ori-oai-git-mirror/ori-oai-hal https://subversion.cru.fr/ori-oai-hal
gitolite@…:ori-oai-git-mirror/orioai-indexing https://subversion.cru.fr/orioai-indexing
gitolite@…:ori-oai-git-mirror/ori-oai-repo https://subversion.cru.fr/ori-oai-repo
gitolite@…:ori-oai-git-mirror/ori-oai-vocabulary-doc https://subversion.cru.fr/ori-vocabulary/ori-oai-vocabulary-doc
gitolite@…:ori-oai-git-mirror/ori-oai-vocabulary-spring https://subversion.cru.fr/ori-vocabulary/ori-oai-vocabulary-spring
gitolite@…:ori-oai-git-mirror/ori-workflow https://subversion.cru.fr/ori-workflow
gitolite@…:ori-oai-git-mirror/quick-install https://subversion.cru.fr/ori-oai-commons/quick-install/
gitolite@…:ori-oai-git-mirror/commons-jar https://subversion.cru.fr/ori-oai-commons/commons-jar/
gitolite@…:ori-oai-git-mirror/orioai-mdeditor https://subversion.cru.fr/orioai-mdeditor
gitolite@…:ori-oai-git-mirror/ori-oai-search https://subversion.cru.fr/ori-oai-search
gitolite@…:ori-oai-git-mirror/ValidationFramework https://ariadnekps.svn.sourceforge.net/svnroot/ariadnekps/ValidationFramework
Pour cloner anonymement, remplacer gitolite@…: par git://coeus.ca/

Miroir du projet oaiprovider (fedora)

URL Git URL du Git original
gitolite@…:brer-git-mirrors/oaiprovider git://github.com/fcrepo/oaiprovider.git
Pour cloner anonymement, remplacer gitolite@…: par git://coeus.ca/

Documentation sur GIT

Cheat-Sheets

Pour développeurs familiers avec Subversion

Fusion de deux dépôts indépendants

Pour ceux qui veulent comprendre

Understanding Git Conceptually

Référence pour la configuration du dépôt

Ajouter un nouveau sous-module Git dans le projet COMETE

Exemple: Ajout d'un module sur le miroir ori-oai: le module ori-oai-indexing

Côté client:

git submodule add ../ori-oai-git-mirror/orioai-indexing orioai-indexing
git submodule update --init
cd orioai-indexing
git push origin origin:refs/heads/brer
git push origin origin/brer
git checkout --track -b brer origin/brer

Exemple: Ajout d'un module que l'on veut modifier d'un dépôt git externe

Note: On présume qu'il y a déjà un dépôt (git-init) sur gitolite@…:brer-git-mirrors/oaiprovider (se fait automatiquement avec gitolite).

Ces commandes peuvent s'exécuter n'importe où, incluant dans brer/fedora

git clone git://github.com/fcrepo/oaiprovider.git
cd oaiprovider
git remote rm origin
git remote add origin gitolite@coeus.ca:brer-git-mirrors/oaiprovider
git push --all
git push origin origin/brer
git checkout --track -b brer origin/brer

Retournez à la racine de votre dépôt brer, puis:

git submodule add ../brer-git-mirrors/oaiprovider.git fedora/oaiprovider
git submodule update --init
git add fedora/oaiprovider
git commit

Ajouter un nouveau miroir git-svn

Exemple (sur le serveur):

Créer le dépôt dans /var/lib/gitolite/repositories/ori-oai-git-mirror/.

Ils sera mis à jour par le script /var/lib/gitolite/repositories/ori-oai-git-mirror/update-from-svn.py, avtivé par le crontab de l'usager gitolite. Logs en cas de problème: /var/lib/gitolite/repositories/ori-oai-git-mirror/git-svn.log

git svn clone --stdlayout https://subversion.cru.fr/orioai-indexing/
mv orioai-indexing/.git orioai-indexing.git
git --git-dir=orioai-indexing.git config core.bare true
rm -rf orioai-indexing

Ajouter ensuite le nouveau dépôt à la configuration de gitolite (gitolite@…:gitolite-admin)

Renommer une branche distante

Exemple (brer->comete) Se mettre dans le dossier du dépôt dont on veut renommer la branche

git push origin brer:refs/heads/comete
git checkout -b comete --track origin/comete
git push origin :brer
git branch -d brer

Exécuter des commandes git-svn

Entre autre pour téléverser nos changements aux dépôts d'origine. Sur le serveur:

su - www-data
cd /var/lib/gitolite/repositories/ori-oai-git-mirror/
GIT_DIR=. git svn ...

0.9.8 © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.73206 sec.)