Some scenarios compare for 3 version control tools
Currently, in our company have many version control tools used in different team, different site.
For every one understand these tools easily, this tools compare table will have good reference for understand the limitations of tools.
I think for developer will be like Git because full control feeling is good. But Admin and manager may be preferring ClearCase because management needs and control by roles. Of cause, as balance, the SVN is good choice because enough performance and control level.
Scenario | ClearCase | Subversion | Git |
Multisite | Make replica and sync frequently. The mastership require only one site can writer specified element, and transfer mastership of branch often fail when user have any checkout on this branch. | No replica feature about cross server. The official way is direct access one centralized server via https. Another way is use 3rdparty tool WANdisco, but it has not good feedback from his customers. | DVCS - Distribute version control system. Any client will be a full clone. |
Check out | Require mark it in server. Anyone can search for who changed for which files. I think many users have habit to see who changed specified file. | Just change anything in local. Just author can know which files changed before commit. | Same with SVN.
|
Check in | Slow. Require each check in back to server. | Quick. Commit to server. | Quickest. Check in to local repository, push/pull to server.
|
Version tree | Clear version tree for history. In line version for each branch. | No merge information in reversion graph. In line version. Recommend use a excel file for merge detail. | Simple graph history. DAG version (Directed Acyclic Graph) |
Merge | 3 ways compare and no mark in code. Automatic merge no conflict point. No branch invert merges issue but not recommend to do invert merge. | 2 ways compare automatic. Recommend switch to use 3rdparty compare tool to support 3 ways compare. Branch invert merge need special parameter -reintegrate. | Support 2 or 3 ways compare DAG merge will keep one Head, so no branch invert merges. |
Conflict | Manually select by conflict point. No mark in code. | Add mark to code. It impact to code quality because often forget to delete all marks. Must manually specify resolved. | Same with SVN. |
Evil twins | Can avoid by trigger. Conflict of added 1 element in 2 branches. The resolve will lose one. | Tree conflict simile with CC. No useful hooks. | Same as SVN. |
Performance | Slow.
| Quick. Local compare. HTTPS, UDP supported. Some time depend on bandwidth. | Quick. Full clone, local compare/checkin. Push/pull same as SVN commit. |
Easy to use | Hard. | Easy. Access code in web. Support GIT-SVN client. | Middle. |
Learn cost | High. The user training is must. | Low. Very easy to use CLI/GUI client. | Middle. No good GUI client. |
Integration | Hard. Not many. | Easy. Many plug-ins. | Easy. Many plug-ins. |
Security | Element level. Just AD group. | Directory level. LDAP support, AD/local group permission for directory level. | Repository level. LDAP need more configurations. |
Hijack | May lost the previous change | Same as CC. | Same as SVN. |
Infrastructure | Office and any OS. | WAN and Windows is classic. | Linux is recommending. |
Recover history | Some ways and not easy. | Just update to specified reversion. | Easy back. |
History change | Destroy supported. | No way to destroy any history reversion. | Can be modify history contents |