Versionner des composants externes : svn externals

Pour avoir vu pas mal de pratiques différentes sur l’utilisation de librairies externes dans un projet, voici un memo sur l’utilisation de repository externes : svn externals

Les svn externals permettent d’utiliser un repository de composants externes à votre projet et d’en utiliser le versionning. Vous pouvez choisir de mettre à jour ou non ce composant externe quand bon vous semble. Vous maitrisez ainsi l’évolution de vos composants indépendamment ou non du versionning de votre projet.

Comme pour tout projet versionné, vous pouvez figer (svn tag) votre application et les composants externes à une release.

Vous souhaitez par exemple ajouter MyPlugin dans votre projet :

svn propset svn:externals "MyPlugin URL_DU_REPOSITORY_DU_COMPOSANT"

ou

svn propset svn:externals "MyPlugin URL_DU_REPOSITORY_DU_COMPOSANT" AllPlugins/

Voici ce que ca donne, par exemple, avec le composants simple_captcha pour Ruby:

svn propset svn:externals "simple_captcha svn://rubyforge.org/var/svn/expressica/plugins/simple_captcha"

Vous pouvez vérifier la création de ce lien avec un

svn status

et devriez voir la lettre X devant le répertoire crée (ici, MyPlugin). Faite ensuite un

svn up

pour aller chercher les fichiers de ce composant externe dans le repository:

Fetching external item into 'MyPlugin'
External at revision X.