[How to] Create SVN managed project with 3rd part library on SVN

SVN has a smart fonctionality : Externals. The objective is import files from an other SVN repository
Instead of download all of them and keep it in a folder (only one for all your project using this lib or a duplicate inside each projects), make only a link to the repository.
For example, my project use Papervision 3D. I need juste add “svn:externals” property to my root folder of classes.

On Window with Turtoise SVN : Right click on folder and select “TurtoiseSNV” > “Properties …”
Turtoise SVN folder menu
Click on “Add” button, select “svn:externals” for property name and set property value to :

org/papervision3d http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/org/papervision3d/
org/ascollada http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/org/ascollada/
nochump http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/nochump/

Turtoise SVN folder properties window
Now commit and update your local copy.

Now indicated folders/files are synconized when you update your local copy with external(s) SVN(s)

For use a specific revision, use -r indicator. For example work with revision 727 of Papervision 3D, use property value :

org/papervision3d -r727 http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/org/papervision3d/
org/ascollada -r727 http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/org/ascollada/
nochump -r727 http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/nochump/

You can also use SVN tags.

Resources:

2 Comments

  1. Reply
    Sappy September 13, 2008

    Thanks Memmie for this useful post! 😉
    I haven’t test it yet but it’s what I’ll need!

  2. Reply
    Pablo December 14, 2008

    Cool merci, je viens justement d’avoir besoin de ça
    ça marche nickel sur mac aussi avec Versions (sélectionner un dossier -> afficher le panneau Inspector -> éditer le champ Externals)

Leave a Reply to Sappy Cancel reply

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