Ayende @ Rahien

Unnatural acts on source code

SvnBridge development environment

The first thing is getting the source to your machine. I recommend downloading the latest released version of SvnBridge from the SvnBridge site, and executing the SvnBridge.exe file.

Put https://tfs03.codeplex.com in the Team Foundation Server text box and 8081 in the port text box, then click Ok.

image

SvnBridge will connect to the remote server and then the the following notification tool tip:

image

Check out the source using TortoiseSvn:

image

Note: You can also use the following command line to checkout the code: svn checkout http://localhost:8081/SvnBridge SvnBrdige

Open the SvnBridge.sln in Visual Studio and ensure that you can compile all the projects in the solution.

Note: It is possible that you'll get compilation errors in the TestsRequiringTfsClient project, if you don't have the Team Foundation Client installed. If it fails to compile, you can safely remove the project from the solution. SvnBridge does not require you to have TFS installed, and only this test project has any dependency on TFS.

You can now execute the SvnBridge project and start working with TFS using the SVN protocol.

Running the tests

The following test projects can be run without having a test instance of TFS to work with:

  • TestsUnit
  • TestsProtocol

The following test projects requires an instance for TFS to work with:

  • TestsEndToEnd
  • TestsIntegration
  • TestsRequiringTfsClient

Setting up TFS test instance

Note: Getting TFS up and running can be tricky, for testing purposes, I generally use the TFS VPC trail.

Open Visual Studio and connect to a TFS server using Team Explorer.

Right click the TFS server and select New Team Project (note that if the New Team Project menu item is missing or disabled, it is likely that you don't have permissions to create a new project):

image

Name the project SvnBridgeTesting and click next:

image

On the select process template screen, click Finish:

image

Important: Ensure that the time zone of the TFS machine match the time zone on the development machine.

For each of the test projects, open the App.config file and paste the following, replacing the configured values with the ones matching your environment.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<configSections>
		<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
			<section name="IntegrationTests.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
		</sectionGroup>
	</configSections>
	<applicationSettings>
		<IntegrationTests.Properties.Settings>
			<setting name="ServerUrl" serializeAs="String">
				<value>http://TFSRTM08:8080</value>
			</setting>
			<setting name="Username" serializeAs="String">
				<value>tfsSetup</value>
			</setting>
			<setting name="Password" serializeAs="String">
				<value>P2ssw0rd</value>
			</setting>
			<setting name="Domain" serializeAs="String">
				<value>TFSRTM08</value>
			</setting>
		</IntegrationTests.Properties.Settings>
	</applicationSettings>
</configuration>

Now you can run all the tests, and the development environment is ready to go.

Have fun...

Comments

Nick
03/19/2008 08:54 PM by
Nick

Awesome stuff, Ayende! This is going to make my life so much more bearable (I'm working against a TFS instance in Sydney while situated in Brisbane...)

Hoping to see more articles in the theme of using Subversion as a back-end store (if that is what the versioned 'Customers' post is pointing towards.)

Nick

Torkel
03/20/2008 08:56 AM by
Torkel

Great, maybe now I do not have to curse TFS all day.

I tried it (compiled the current version on codeplex tfs) and when I did a svn checkout on project on our local TFS I only got partial files back.

Any idea what is wrong?

Ayende Rahien
03/20/2008 10:06 AM by
Ayende Rahien

Torkel,

Please post a detailed repro on the svn bridge site.

Comments have been closed on this topic.