No Pugs

they're evil

Recently, branch support for Subversion was added to externals.

Subversion does not have a branch feature. Instead, subversion users use the copy feature to copy directories within the repository (branch), a switch command to switch the URL that the working directory points at (checkout), and a merge feature to merge directories (merge).

ext handles branches in Subversion by splitting the URL given by ‘svn info’ into a repository part and a branch part.

If you find yourself doing this:

ext checkout svn+ssh://someserver/somepath/repository/branches/new_feature

Then you almost certainly mean to do this:

ext checkout svn+ssh://someserver/somepath/repository -b branches/new_feature

For ext to use branch-related features with Subversion repositories, the repository must be known. For subprojects this is never a problem, but for the main project, it’s important that there is a repository field under [.] in the .externals file. This can be accomplished by using -b with commands like ‘ext checkout’ and ‘ext init’ or by manually editing the .externals file.

For example, if you are working on svn+ssh://someserver/somepath/repository/current then you want your .externals file to look like this:

[.]
scm = svn
repository = svn+ssh://someserver/somepath/repository

Notice how I left off “/current” from the repository URL. “current” is the branch and not part of the repository from ext’s perspective.

Published on 09/28/2011 at 09:49AM under , .

110 comments

Powered by Typo – Thème Frédéric de Villamil | Photo Glenn