SVN: Créer des liens entre les dépôts avec svn:externals

Il est possible que dans certains projets, vous ayez besoin d’une librairie, d’une autre projet ou d’un dossier précis d’un autre projet, que vous l’ayez développer ou pas. Seulement, vous ce dont vous avez besoin est voué à être mis à jour régulièrement et que vous voulez profiter de manière automatique de ces mises à jour, il y a une solution avec SVN: svn:externals.

Comme nous le montre le “livre de SVN”, svn:externals est une propriété associée à un dossier parent, qui permet de déclarer un dossier fils comme un contenu externe. Ainsi, vous pouvez configurer la propriété sur votre dossier /project1/trunk/includes/ pour que le dossier fils lib1 contienne /project-lib1/trunk par exemple.

Ainsi, à chaque mise à jour (svn update) de votre project1, votre client SVN ira voir à l’adresse associée pour le dossier trunk/includes/lib1 pour vérifier qu’aucune nouvelle révision n’éxiste.

Note: Vous pouvez très bien lors de la création de la propriété svn:externals spécifier une révision précise du dépôt externe, mais je ne voit pas vraiment l’intérêt dans le sens où, dans ce cas là, un svn copy ou un simple copier/coller suffit.

Mettre svn:externals en place en ligne de commande

Si vous avez une “working copy” de /project1/trunk, allez dans le dossier includes (cd includes) puis faites:

Puis svn commit. À partir de maintenant, toute personne faisant un svn update (ou svn co) ira chercher le contenu externe du dossier includes/lib1 à l’adresse http://my.svn.repository.tld/project-lib1/trunk.

Avec Subclipse, dans Eclipse IDE

C’est le même principe, on fixe la propriété svn:externals, comme nous le montre cet exellent article:

Puis, dans “Property name”, mettez “svn:externals”, et dans “Property Contents”:

facebooktwittergoogle_plusredditpinterestlinkedinmail

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">