We are starting to reevaluate version control software to be used at our company. We selected ClearCase about 15 years ago and Subversion six years ago, so we have some environments still with ClearCase VOBs using the ClearCase GUIs and more recent environments using Subversion repositories and some GUIs such as TortoiseSVN.
Over time, some projects did spend the effort to migrate from ClearCase to Subversion, but we still have several continuing to stick to ClearCase because it has worked.
Git seems to be the popular choice among lots of folks these days, but I'm wondering if we can separate the problem into two or three sub-problems:
- Select one single back-end version control tool (e.g. Git) to host the repositories only.
- Select one or more version control tools if needed (e.g. Git, git-svn, git-hg, git-cc, GitSwarm) that teams will use to interact with the back-end repositories, or allow the teams to select their own tools.
- Select graphical or web-based front-ends (e.g. TortoiseGit, Stash, SourceTree) to interact with the selected version control tools, or allow the teams to select their own tools.
This came up after we read the following about dual repositories to allow the different teams to continue to follow their current workflow until they're ready to jump on-board with Git or whatever we end up deciding to migrate to:
- ClearCase and Git
- Subversion and Git
- GitSwarm (Perforce and Git)
- Mercurial and Git
The back-end version control tool should:
- Have little or no licensing cost.
- Support Windows and Linux/UNIX repositories as well as clients.
- Ideally be interoperable with the legacy ClearCase and Subversion products so teams can continue to use those products until they decide to migrate.
- Provides great performance so operations don't slow down any more than they currently do with the ClearCase VOBs and Subversion repositories.
- Keep the repository data in an open format rather than a proprietary container so that we can easily migrate the repositories to another tool in another 5-15 years if needed.
If this can be done and is recommended, then are there any version control repositories that fit this that we can start looking into and comparing?