views:

34

answers:

4

The product I'm working on has a mac and pc version. The PC version uses Microsoft's Team Foundation Server and the Mac uses Subversion for source control. Right now we have a little bit of shared code between the two and it currently lives in both systems and will inevitably get out of sync.

What would be some ways to keep these in sync automagically? Neither team is willing to switch version control systems.

A: 

I don't know how to do it exactly, but i Googled a bit and found that:

http://social.msdn.microsoft.com/Forums/en/tfsintegration/thread/c7ab2584-dd8a-43da-af9c-ff1e7f9cec41

Tomasz Kowalczyk
A: 

You can try some kind of bridge in order to convert each repository fron one VCS to the other:

VonC
Does svnbridge actually sync a subversion trunk with TFS or does it just allow you to use SVN clients with TFS? I thought the latter.
Justin
@Justin: I don't have a direct experience with it, but if it is the latter, this would allow to isolate that common module into a TFS repo and keep only one referential used both by TFS and SVN clients alike.
VonC
@VonC - I think I understand. You are suggesting the Subversion guys sync with both their Subversion trunk and the TFS code they need (using their existing Subversion client).
Justin
@Justin: yes, if it is possible. It would be best to keep one single referential for the common code.
VonC
A: 

You can do it but I would not.

You can migrate the data from one system to the other using tools such as tfs2svn or Timely Migration. In principle, you can continue to keep the two repositories in sync. Doing so is a recipe for disaster in my opinion though.

The only source code revision tools that I would mix are Subversion and Git with git-svn being used to sync local git repos against a central Subversion trunk.

EDIT: Although I still think the synced path is lined with pain, it looks like maybe you could do it with Git as the go-between:

There is a git-tfs much like git-svn (I have no experience with it)

Here is a blog post that may help as well.

Justin
A: 

If neither team wants to be conquered by the other, perhaps this is a great opportunity to move both teams to Git or Mercurial.

Joel Spolsky, our sponsor here at StackOverflow, has a nice Mercurial tutorial that does a nice job of selling the benefits.

Justin