tags:

views:

62

answers:

3

We have a program almost complete, but now need it in another language. Since it's the same program, should it be in a separate folder in the same repoor in a new repo since the code isn't used together, or is there no conversation and I can do whatever I want?

Edit: I mean programming language. The program is going from Java to C#.

+1  A: 

In general you should look at i18n and extract the strings so that the 'program' isn't translated, but instead just the strings. Then you don't need to have separate versions of the program for different languages, but instead just select the correct language at run-time.

Douglas Leeder
A: 

You certainly don't want to create a new repository for it. Creating a version in another language is more than just translating all the strings (eg layout issues, Unicode bugs, installer changes, etc), and it's very likely that you'll discover some bugs in your codebase in the process. So you'll want those bug fixes to go back into the original project. This would be very difficult if you create a separate repository.

I would suggest creating a translation branch in your main repository to allow you to do the translation work, and get the program stabilised. Also test the original language version to ensure that you haven't introduced bugs into that. Once they're both stable then merge them back to the trunk.

EDIT: the OP has clarified that this is referring to a new programming language. I'd still recommend using the same repository, but perhaps on a new branch, or change the repository layout so that you have multiple trunks (ie /Project1/[trunk|branches|tags], /Project2[trunk|branches|tags] )

the_mandrill
+1: This is the direction I would take.
Brian Gideon
+1  A: 

I've never quite understood the desire for multiple repositories -- their existence raises the question 'Which repo do I look in for X ?' Sure, putting everything in one repo means that the question becomes 'Which part of the repo do I look in for X ?' but you have to ask that anyway.

For your requirements I'd also question quite how separate the two versions ought to be. Surely the tests you've written for the Java version can be used to test the C# version without rewriting them ?

High Performance Mark
I think the desire comes from other version control systems that broke when you put too much into the database.. or maybe the feeling that a repository can get "too big" or something.
Sander Rijken
@Sander: you mean the large corporation I consult for should get rid of VSS!?
Cory Larson
:) I can imagine the fear for large databases is increased by VSS 'experience'
Sander Rijken