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

 

posted @ 2012-07-11 15:06  ColorSea  阅读(287)  评论(0编辑  收藏  举报