S h o r t S t o r i e s

// Tales from software development

svn:externals for a single non-text file doesn’t work

leave a comment »

I was tidying up the company’s Subversion repository the other day and decided it was time to move all the duplicate copies of our strong name key file into a single location and create svn:externals links in each application’s source tree to reference the single copy of the file.

After adding “/Code Signing/Microsoft .NET/Vitality.snk” to the repository I added an svn:externals property on the “/trunk/build/signing/” folder in the first application’s source tree to reference the key file:

svn:externals “^/Code Signing/Microsoft .NET/Vitality.snk” Vitality.snk 

Everything seemed to work as expected except the continuous integration build broke. When I looked at the build log the problem was that the Vitality.snk file was missing.

I checked the application source tree out to a temporary folder using TortoiseSVN and the Vitality.snk file was exactly where I expected it to be – in the “/trunk/build/signing/” folder.

As the build uses the command line Subversion client, I decided that I’d better do another checkout test using svn.exe. This failed with the message:

svn: warning: Unrecognized line ending style

After a few minutes of Googling I stumbled across this bug report:

http://subversion.tigris.org/ds/viewMessage.do?dsForumId=463&dsMessageId=1128735

So, the problem appears to be specific to having a single svn:externals reference for a non-text file.

My circumvention was to put the svn:externals property on the /trunk/build folder and reference the folder containing the key file instead of the file itself:

svn:externals “^/Code Signing/Microsoft .NET” Signing

Advertisements

Written by Sea Monkey

May 27, 2011 at 7:00 pm

Posted in Subversion

Tagged with

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: