randy melder
randy melder

Reputation:

Exploring new version control systems. My biggest need: Reliable merging

I am a release engineer for a team of 35 programmers. We are working on PHP, Java, C# and SQL. We currently use Subversion, which has worked okay for about a year. We are going through a phase where conflicts are becoming more and more common. Our application footprints are growing, so performance is becoming an issue for checkouts and commits.

I'm wondering what commercial or FOSS version control systems and client software people can recommend that fit my profile: - Centralized repo - Simple merging - Fast exports, merges, checkouts - Conflict resolution

Thanks for you help!

; ) .randy

-- Added 2009-04-16 @ 06:21 PST

More info: our repo footprint is ~ 6GB. We've looked at Git and Bazaar. Great features and reasons to use them. We want a centralized repo.

Upvotes: 6

Views: 419

Answers (8)

Mladen Mihajlovic
Mladen Mihajlovic

Reputation: 6445

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

Upvotes: 1

John Topley
John Topley

Reputation: 115412

There's no reason why you can't have a centralised repository with Git. Git supports any workflow.

Upvotes: 1

VonC
VonC

Reputation: 1329092

While it is true that Git is a good choice, do not forget that a "growing application footprint" entails other issues you will have to deal with, no matter what SCM you end up using.

Namely:

  • Application Architecture in order to divide your application into more manageable and independent (from one another) "modules" (or components)
  • Merge workflow: your SCM need to deal with 3-way merge, while avoiding sideway-merges. This is especially true in maintenance phase, when you have both a release in production to maintain, and a new development for the next version to make.
  • Delivery storage in order to easily query your deliveries into a test environment, homologation environments, production environment...

Regarding the merge feature, Perforce or Git are better than Subversion, because they allow you to merge any subtree you want, while memorizing the merge information, and with many merging strategies (ours, theirs, ...).

Even in its latest 1.6 version, Subversion does only support reliably merges from the root directory of a branch (you can merge subtrees, but the log will not be accurate for merges to subtree outside the ones you have currently checked out)

Upvotes: 2

pablo
pablo

Reputation: 6402

Check:

  • Accurev
  • Plastic SCM. Look at its 3D tree and branch explorer, and explore the merge links there

Upvotes: 0

Ken Olofsen
Ken Olofsen

Reputation:

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

Currently supports SVN, Perforce, and CVS.

Upvotes: 0

Premkumar
Premkumar

Reputation: 111

We have been happy with Starteam from borland. The checkin/checkout operation is fast even from remote systems and it provides different views and promotion states as well.

Upvotes: 0

JP Alioto
JP Alioto

Reputation: 45127

Perforce is my favorite.

Upvotes: 2

Jason84
Jason84

Reputation: 89

A common misunderstanding is that distributed version control systems like git or mercurial are no good for centralized repos. With that said I recommend you look at git if you haven't already.

Upvotes: 8

Related Questions