The scenario:
How do you keep track of the version changes in the external project? Check out the external project to a particular directory in your project and keep it up to date by periodically issuing the command 'svn up'. This method works. But wouldn't it be cool if svn handled it automatically for you?
I work on many PHP projects that depend on the Zend Framework. I use subversion for these projects. Zend Framework also uses subversion. Zend Framework has a fairly faster release cycle. Every time the Zend Framework makes a release, I want my project to use the latest Zend Framework release. Here's how I do it.
I have stored the Zend Framework files in my library/Zend directory.
Make sure you have set the SVN_EDITOR environment variable to your favourite editor.
Step 1: Navigate to the library directory.
cd path/to/library
Step 2: Make sure your working copy is up to date.
svn up
Step 3: Edit the svn:externals property of the current directory.
svn propedit svn:externals .
The editor window opens. In the editor window type the directory name and the external project SVN URL separated by a space. Save the file and exit.
Step 4: In my example, I want to store the Zend Framework files in the directory library/Zend. The SVN check URL of the Zend Framework ie http://framework.zend.com/svn/framework/standard/tags/release-1.9.3PL1/library/Zend
Zend http://framework.zend.com/svn/framework/standard/tags/release-1.9.3PL1/library/Zend
Step 5: Update the working copy again
svn up
Step 6: Commit the changes.
svn commit -m "added an external repository"
When the Zend Framework releases a new version repeat the above simple steps and set the appropriate svn:extrenal URL.
Isn't svn:externals a cool subversion feature?
Reference:
SVN Book externals definitions page.
Post new comment