Tag: scm

Gestion de projets : quelques outils en ligne

Posted by – November 5, 2008

Un de nos apprentis ingénieurs m’a demandé conseil sur les outils de gestions de projets, en mode collaboratif.

En gros, les besoins remontés étaient :

  • en ligne
  • accès par plusieurs membres d’une équipe
  • avoir la possibilité de déposer des fichiers
  • repository de sources

Parmi les applications disponibles, une liste non exhaustive de ce qu’il peut exister :

  • Google Code : gratuit – intégration SVN (rajoutez bien entendu TortoiseSVN), Wiki, dépôt de fichiers, plusieurs membres. Je l’utilise pour mes exemples de codes, et ça marche plutôt pas mal (http://code.google.com/p/mysampleapp)
  • Redmine : gratuit – certainement le challenger (développé en Ruby On Rails) le plus sérieux à Trac (en python et un peu une galère sans nom pour l’installer) – à héberger chez vous.
  • GitHub : gratuit pour une version allégée – intégration Git, interface très bien faite (à la Web2), user friendly dira-t-on et une approche sociale, Wiki, indicateurs graphiques (commits, langages utilisés, …) – beaucoup de projets RoR sont gérés sur cette plateforme. Git, développé à l’origine par Linus pour gérer les sources du noyau en mode distribué. Au passage, un cheatsheet sur Git.
  • Codeplex : la plateforme MS d’hébergement de projets. Intégration TFS / SVN, Wiki, stats., évolutions proposées aux votes. Pour l’avoir essayé, l’inscription est assez laborieuse, et surtout, si votre projet n’est pas actif, il est, purement et simplement effacé.

Pour une gestion de plus haut niveau, c’est à dire, liste de tâches, milestones, on pensera à Basecamp, gratuit pour une utilisation légère (1 projet) : interface simple, usage cohérente d’Ajax, intégration OpenId, pratique pour ne rien oublier.

Links #8 : SCM II

Posted by – October 13, 2008

  • Codeplex on SVN, SvnBridge n’est plus nécessaire et c’est une bonne nouvelle
  • CodeSaga : une application (MVC.NET / .NET 3.5) pour afficher sur le Web votre repository Svn ou TFS, prometteur.

Ce fût le 200ème billet.

Mise en place de Subversion sous Windows, VSS to SVN

Posted by – July 22, 2008

Préambule

Intéressons nous à Subversion ou SVN pour les intimes. Cela faisait pas mal de temps que l’idée me trottait de remplacer l’antédiluvien VSS que nous utilisons depuis quelques années pour gérer nos sources par un SCM un peu plus moderne, Opensource et utilisé par un plus grand nombre de développeurs (communauté quand tu nous tiens). Un lien sur les différences entre plusieurs solutions SCM.

La solution optimale aurait été un serveur SVN sous Linux (dans une autre vie, j’aurais sans doute exploité mes compétences Système et Réseau), mais l’ensemble de l’équipe est plus à l’aise sous Windows, adopter un nouvel outil passe aussi et d’abord par sa facilité d’appropriation, cela imposait donc une solution SVN sous Windows.

La partie installation est un condensé d’articles trouvés sur le Net, les liens sont dans les ressources en fin de billet.

Installation

serveur Subversion

Subversion

Télécharger les binaires du serveur SVN Windows (un zip), prendre la version Tigris pour Apache 2.0 (ou 2.2 selon votre choix) : Subversion tigris Windows

version 1.5.0 SVN pour Apache 2.0

version 1.5.0 SVN pour Apache 2.2

Télécharger le binaire pour l’installation du service SVNService : SVNService (on peut également le retrouver sur le site de tigris : Repository SVNService)

  • Décompacter le ZIP du serveur SVN (svn-win32-x.y.zip) dans le répertoire C:\\Program Files\\svn\\
  • Dans les variables d’environnement (Control Panel → System → Advanced → Environnement variables → System variables)

⇒ Ajouter le chemin C:\\Program Files\\svn\\bin dans le PATH.

⇒ Ajouter la variable SVN_EDITOR (éditeur par défaut utilisé par SVN), faire pointer sur l’exé notepad.exe ou tout autre éditeur

  • si non déjà créé, en ligne de commande, création d’un répertoire de repository

svnadmin create “d:\\subversion_repos”

  • si non déjà configuré, configuration du repository :

⇒ ouvrir le fichier d:\\subversion_repos\\conf\\svnserve.conf : décommenter les lignes [general] , anon-access = read, auth-access = write, et password-db = passwd

⇒ ouvrir le fichier d:\\subversion_repos\\conf\\passwd : décommenter la ligne [users], et ajouter les utilisateurs SVN, 1 par ligne, de la façon suivante : login = passe

  • tester le serveur, lancer en ligne de commande

svnserve –daemon –root “d:\\subversion_repos”

  • créer un projet, pour myproject avec les 3 répertoires couramment ajoutés (trunk, branches, tags). SVN ouvre un fichier, remplir ou non la 1ère ligne puis sauvegarder :

svn mkdir svn://localhost/myproject

svn mkdir svn://localhost/myproject/trunk

svn mkdir svn://localhost/myproject/branches

svn mkdir svn://localhost/myproject/tags

Service Subversion

Le service permet de ne pas lancer à la main le serveur SVN (svnserve) mais qu’il le soit par un service Windows en y incluant les paramètres –-daemon –-root “d:\\subversion_repos”

  • Décompacter SVNService.zip dans le même répertoire que les binaires SVN (C:\\Program Files\\svn\\bin) pour avoir accès en ligne de commande à l’exé SVNService.exe.
  • Installer le service :

svnservice.exe -install –daemon –root “d:\\subversion_repos”

  • Mettre le service en démarrage automatique : $ services.msc, puis sur le service SVNService, positionner le Startup type à Automatique.
  • Lancer ou arrêter le service :

net start svnservice

net stop svnservice

A partir de là, le serveur est joignable :

svn ls svn://localhost/myproject/trunk

Pour enlever le service :

svnservice.exe -remove

serveur Apache pour l’accès HTTP

Le serveur SVN fournit un protocole d’accès svn, il peut être intéressant d’accéder aux sources par HTTP (via WebDAV), pour un accès à distance par exemple : soit par le navigateur, soit par un client SVN.

Pré-requis : Le serveur SVN doit être préalablement installé.

  • Télécharger les binaires Windows d’Apache 2.0 (ou 2.2 suivant la version SVN), avec SSL : Binaires
  • Installer Apache, par exemple sur D:\\Program Files\\Apache Group
  • Comme pour Subversion, ajouter le répertoire binaire D:\\Program Files\\Apache Group\\Apache2\\bin au PATH
  • Copier / Coller les .so de Subversion vers le répertoire modules d’Apache :

⇒ C:\\Program Files\\svn\\bin\\mod_authz_svn.so et C:\\Program Files\\svn\\bin\\mod_dav_svn.so vers D:\\Program Files\\Apache Group\\Apache2\\modules

  • Ajouter leur chargement en modifiant le fichier de configuration d’Apache D:\\Program Files\\Apache Group\\Apache2\\conf\\httpd.conf

⇒ décommenter la ligne LoadModule dav_module modules/mod_dav.so pour activer WebDAV

⇒ ajouter la ligne LoadModule dav_svn_module modules/mod_dav_svn.so

⇒ ajouter la ligne LoadModule authz_svn_module modules/mod_authz_svn.so

  • Toujours dans le fichier D:\\Program Files\\Apache Group\\Apache2\\conf\\httpd.conf, ajouter le répertoire d’accès Web au Repository Subversion, cela permettra d’avoir un accès à http://localhost/svnrepos :
 <Location /svnrepos>  DAV svn # répertoire de dépot  SVNPath D:/subversion_repos  SVNIndexXSLT "/svnindex.xsl"  SVNAutoversioning on # Indique comment authentifier les utilisateurs  AuthType Basic  AuthName "Référentiel Subversion" # fichiers des utilisateurs  AuthUserFile D:\\subversion_repos\\conf\\utilisateurs.txt  Require valid-user # fichiers des permissions  AuthzSVNAccessFile D:\\subversion_repos\\conf\\authz  ErrorDocument 404 default </Location> 
  • Télécharger la feuille XSLT svnindex.xsl sur XSLT ainsi que la feuille CSS svnindex.css et placer ces 2 fichiers dans le htdocs d’Apache : D:\\Program Files\\Apache Group\\Apache2\\htdocs
  • Créer les permissions utilisateurs (groupe dev qui accéderont au répertoire web svnrepos) : ouvrir ou créer le fichier D:\\subversion_repos\\conf\\authz, et y ajouter les lignes suivantes :
 [groups] dev = olivier,dev2,dev3 [svnrepos:/] @dev = rw * = [svnrepos:/html] @dev = rw * = [svnrepos:/src] @dev = rw * = [svnrepos:/changelog] @dev = rw * = r 
  • Ajouter les comptes utilisateurs Apache, en ligne de commande, se mettre dans le répertoire Subversion conf (-bc crée le fichier, -bm ajoute au fichier) :
 d: cd D:\\subversion_repos\\conf htpasswd -bc utilisateurs.txt olivier monpasse htpasswd -bm utilisateurs.txt dev2 monautrepasse htpasswd -bm utilisateurs.txt dev3 myanotherpwd 

Relancer le service Apache :

net stop apache2

net start apache2

Le repository est dorénavant accessible via l’adresse http://localhost/svnrepos ou http://serveur/svnrepos, une popup login/mot de passe doit s’afficher pour taper le login et mot de passe précédemment fixé par htpasswd

Migration de la base VSS vers SVN

Pour l’instant, nous en sommes au stade des tests.

Un outils a été développé : VSSMigrate. Il est préférable de prendre une des contributions, celles-ci permettent de conserver les utilisateurs de la base VSS pour les migrer vers SVN.

Un exemple de fichier de configuration VSSMigrate.ini.

Plusieurs soucis relevés :

  • VSSMigrate n’autorise pas de prendre la racine de VSS (/$) mais uniquement un projet sur la racine (/$myproject). Notre plateforme est constituée d’une bonne centaines de projets, il va falloir donc automatiser la prise en compte de tous ces projets.
  • Pour conserver l’historique (en termes de dates), VSSMigrate change la date système du serveur VSS, mais apparemment, il ajoute et non retranche les dates sur les sources, à voir donc.

Ressources

Je suis parti des liens suivants :

Alternatives

Pour des projets Opensource où le code peut être libre, il peut être intéressant d’utiliser des services en ligne pour gérer ses projets, une petite liste non exhaustive de services …et j’adore les services en ligne.

Plateforme GitHUB

GitHub, basé sur Git (créé par Linus pour gérer le noyau Linux, c’est un SCM distribué), parait être un sérieux concurrent à la plateforme Google code, cette dernière utilise Subversion. git-svn pourrait être un pont entre les 2 mondes. Dans sa version gratuite, GitHUB permet d’héberger jusqu’à 100 Mo de sources.

La plateforme GitHUB est conviviale et facile d’utilisation, avec des apports Aajx qui vous facilitent la vie, le tout avec une approche Web 2 : Wiki, réseau, graphique de la time line avec les auteurs des commits, design soigné.

Un plus : utilisation de clés publiques/privées SSH (via ssh-keygen ou PuTTYGen + Pageant, voir ce billet pour un exemple d’utilisation pour PuTTY), bien utile dans la pratique.

En ce qui concerne les clients Windows, pour avoir testé le client msysGit, il y a encore un peu de boulot pour concurrencer TortoiseSVN.

Malgré tout, sur le répertoire de travail, les 2 commandes suivantes permettent de commiter sur GitHUB :

git commit -a

git push

Plateforme Google Code

Google code vous permettra d’héberger vos projets à moindre coût (gratuit). A l’image de Google, l’interface est sobre et efficace, très simple à utiliser. Parmi les fonctionnalités :

  • Subversion : public ou privé pour les éditeurs (une clé est générée en tant que mot de passe au projet)
  • Wiki
  • Dépôt de fichiers

Moins user friendly que GitHUB, Google code reste accessible et surtout gratuit sans limite de stockage des sources.

Plateforme CodePlex

CodePlex est la plateforme Microsoft de partage de sources.

Mis à part trouver des sources de projets, je n’ai pas testé la plateforme en tant qu’éditeur, mais je ne doute pas que cela doit être bien, malgré une interface quelque peu désuète je trouve.

SvnBridge permet d’aller chercher des sources via TortoiseSVN, il sert de pont entre SVN et Codeplex.

Clients SVN

  • TortoiseSVN est LE client Windows à avoir : simple d’utilisation, fiable, quelques principes :
    • SVN checkout : ramène les sources d’un projet pour initialiser un répertoire de travail local
    • Commit : met à jour le serveur de sources avec les fichiers locaux (du répertoire de travail) modifiés
    • Update : va chercher les mises à jour du serveur pour mettre à jour la version locale
  • pour une intégration directe à l’IDE (VStudio 2005 ou 2008), on pourra également installer AnkhSVN

Links #4 : SCM

Posted by – June 24, 2008

Il est temps…d’abandonner VSS…