- 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.
Ce fût le 200ème billet.
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.
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)
⇒ 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
svnadmin create “d:\\subversion_repos”
⇒ 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
svnserve –daemon –root “d:\\subversion_repos”
svn mkdir svn://localhost/myproject
svn mkdir svn://localhost/myproject/trunk
svn mkdir svn://localhost/myproject/branches
svn mkdir svn://localhost/myproject/tags
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”
svnservice.exe -install –daemon –root “d:\\subversion_repos”
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
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é.
⇒ 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
⇒ 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
<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>
[groups] dev = olivier,dev2,dev3 [svnrepos:/] @dev = rw * = [svnrepos:/html] @dev = rw * = [svnrepos:/src] @dev = rw * = [svnrepos:/changelog] @dev = rw * = r
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
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 :
Je suis parti des liens suivants :
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.
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
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 :
Moins user friendly que GitHUB, Google code reste accessible et surtout gratuit sans limite de stockage des sources.
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.
Il est temps…d’abandonner VSS…