Learning new version control systems. My biggest need: reliable merge

I am an engineer for a team of 35 programmers. We are working on PHP, Java, C # and SQL. We are currently using Subversion, which has been working fine for about a year. We are in a phase where conflicts are becoming more common. Our application fingerprints are growing, so performance is becoming a problem for checks and commits.

I'm interested in what commercial or version control systems FOSS and client programs can recommend that fit my profile: - Centralized repo - Simple merge - Quick export, merge, control - Conflict resolution

Thanks for the help!

;). randy

- Posted on 2009-04-16 @ 06: 21 PST

Additional information: our repo area is ~ 6 GB. We looked at Git and Bazaar. Great features and reasons for using them. We want a centralized repo.

+6
version-control svn version release
source share
8 answers

A common misunderstanding is that distributed version control systems, such as git or mercurial, are not suitable for centralized repositories. With that in mind, I recommend that you check out git if you haven't already.

+8
source share

Perforce is my favorite.

+2
source share

While it is true that Git is a good choice, don't forget that the “growing reach of applications” entails other problems that you will have to deal with, regardless of which SCM you end up using.

Namely:

  • Application architecture to divide your application into more manageable (independent) modules (or components).
  • Combine workflow : your SCM needs to deal with a 3-way merge , and avoid side merges . This is especially true during the maintenance phase, when you have both a production release for support and a new development for the next version.
  • Delivery repository to easily request deliveries to a test environment, homologation environment, production environment ...

As for the merge function, Perforce or Git is better than Subversion, because they allow you to combine any subtree that you want, remembering information about the merge and with many merge strategies (ours, them, ...).

Even in its latest version 1.6, Subversion only supports reliable merges from the root of the branch (you can merge subtrees, but the log will not be accurate for merging with the subtree outside the ones you currently checked)

+2
source share

Bazaar can be used in many different types of workflows. See this article about using it in a centralized workflow .

+1
source share

There is no reason why you cannot have a centralized repository with Git. Git supports any workflow .

+1
source share

We were pleased with the Starteam from borland. The checkin / checkout operation is fast even from remote systems, and it also provides various types and states of progress.

0
source share

Whichever way you go, make sure you add FishEye .. helps with managing your code as complexity grows.

Currently supports SVN, Perforce, and CVS.

0
source share

Check:

  • Accurev
  • Plastic SCM . Take a look at its 3D tree and the branch branch and examine the merge links there.
0
source share

All Articles