zoukankan      html  css  js  c++  java
  • 常用源代码管理软件 及 比较

    常用源代码管理软件

    全称

    出处

    CVS

    Concurrent Versions System

    Open Source

    SVN

    Apache Subversion

    Open Source

    VSS

    Visual Source Safe

    Microsoft

    TFS

    Team Foundation Server

    Microsoft

    P4

    Perforce

    Perforce

    Git

    Git, 中文蠢货,作者自嘲之意

    Open Source

    CC

    ClearCase

    IBM Rational

    名称

    幕后推手

    状态

    架构

    并发模式

    授权

    支持平台

    AccuRev SCM

    AccRev

    持续开发

    C/S

    Merge

    (合并) or lock

    (加锁)

    商业

    支持Java

    虚拟机的大多数平台

    Bazaar

    Canonical

    持续开发

    分布式

    Merge

    GPL

    Unix家族,

    Windows,

    Mac OS X

    ClearCase

    IBM

    持续开发

    C/S

    Merge or lock

    商业

    Linux,

    Windows,

    AIX,

    Solaris,

    HP UX,

    I5/OS,

    OS/390,

    Z/OS

    CVS

    CVS开发团队

    维护

    C/S

    Merge

    GPL

    UNIX家族,

    Windows,

    Mac OS X

    Git

    Junio Hamano

    持续开发

    分布式

    Merge

    GPL

    POSIX,

    Windows,

    Mac OS X

    Monotone

    Nathaniel Smith,

    Graydon Hoare

    持续开发

    分布式

    Merge

    GPL

    Unix家族,

    Windows,

    Mac OS X

    Perforce

    Perforce

    持续开发

    C/S

    Merge or

    Lock

    商业

    Unix家族,

    Windows,

    Mac OS X

    Rational Team Concert

    IBM

    持续开发

    C/S

    Merge or

    Lock

    商业

    同ClearCase

    SCM Anywhere

    Dynamsoft

    持续开发

    C/S

    Merge Or

    Lock

    商业

    Unix家族,

    Windows,

    Mac OS X

    StarTeam

    Borland

    持续开发

    C/S

    Merge or

    Lock

    商业

    Windows和基于Java的跨平台操作系统

    Subversion (SVN)

    Apache Software Foundation

    持续开发

    C/S

    Merge or

    Lock

    Artistic

    /GPL

    Unix家族,

    Windows,

    Mac OS X

    Team Foundation Server

    Microsoft

    持续开发

    C/S

    Merge or

    Lock

    商业

    Windows

    Visual SourceSafe

    Microsoft

    仅修复严重bug

    共享文件夹

    Merge or

    Lock

    商业

    Windows

    注:

    幕后推手,目前负责该软件开发和维护的组织或企业;

    状态,目前项目的开发状态;

    架构,描述版本控制服务器和开发人员客户端的关系,C/S架构为客户端/服务器(Client/Server)模式,这种模式下客户端上的文件仅是服务器的一份副本拷贝,要想与其它客户端同步,必须先把修改提交到服务器,再有其它要同步的客户端和服务器进行同步。分布式架构则意味每一个客户端都可以作为同步源并维护一个本地的版本库。

    并发模式(Concurrency Model,描述如何规避多个客户端同时修改同一文件并提交导致的冲突。如果是加锁(lock)模式,则一个文件被锁住的同时其他人不能签出,即同一时间同一文件只允许一个签出,如果是合并(Merge)模式,则交由版本控制系统对来自不同开发人员的多个修改进行合并。

    历史

    名称

    历史

    关键用户

    AccuRev SCM

    2002年第一版发布

    福特,闪迪,索尼,Orbitz,美航,Polycom

    Bazaar

    其前身是由Canonical的开发者Rovert Collins开发的Baz。

    Ubuntu, Launchpad, KatchTV, MySQL, Bugzilla, GNU Emacs

    ClearCase

    1990由Atria主导开发,后被IBM收购,2009年发布7.1.1版本

    IBM, 阿尔卡特-朗讯, 思科, 摩托罗拉, 西门子,爱立信,诺基亚以及其它大型组织

    CVS

    1986年发布第一版,其前身是RCS

    广泛

    Git

    由Linux Torvalds(Linux之父)发起

    Linux Kernel, GNOME, Perl 5, X.org, Qt,

    Cairo, Samba, OpenEmbedded, Ruby on Rails, …

    Monotone

    2003第一版

    CTWM, Pidgin, Xaraya, I2P

    Perforce

    Perforce公司在1995年由Christopher Serwald创建

    被广泛使用

    Rational Team Concert

    2008年发布第一版

    IBM

    StarTeam

    1995年第一版,StarBase出品,后被Borland收购,现Borland已被Micro Focus收购

    Borland, BT, Cintas, EDS, Kaiser Permanente, Met Office, Quest Software, 西门子以及其他国际大型组织

    Subversion (SVN)

    2000年由一小撮人发起,旨在推出能够替换CVS得更好的版本控制软件系统。

    ASF, SourceForge, FreeBSD, Google Code, KDE, GCC, Ruby, Mono, PuTTY, 以及其他更广泛的组织。

    Team Foundation Server

    2006年第一版

    微软以及其它大型组织

    Visual SourceSafe

    第一版由一家叫做One Tree Software的公司开发,后备微软收购并在1995年推出4.0版本

    曾经广泛使用过,但逐渐被淘汰。

    注:关键用户,采用该版本控制系统的知名组织或企业。

    功能与特性比较(一)

    名称

    原子提交

    文件重命名

    符号链接

    事件钩子

    版本签名

    EOL转换

    AccuRev SCM

    支持

    支持

    支持

    支持

    支持

    支持

    Bazaar

    支持

    支持

    支持

    支持

    部分支持

    支持

    ClearCase

    部分支持

    支持

    支持

    支持

    支持

    支持

    CVS

    不支持

    不支持

    不支持

    部分支持

    不支持

    支持

    Git

    支持

    支持

    支持

    支持

    部分支持

    支持

    Monotone

    支持

    支持

    不支持

    支持

    强制支持

    支持

    Perforce

    支持

    支持

    支持

    支持

    支持

    支持

    Rational Team Concert

    支持

    支持

    支持

    支持

    支持

    支持

    StarTeam

    支持

    支持

    不支持

    不支持

    不支持

    支持

    Subversion (SVN)

    支持

    支持

    支持

    支持

    不支持

    支持

    Team Foundation Server

    支持

    支持

    支持

    支持

    支持

    支持

    Visual SourceSafe

    不支持

    不支持

    部分支持

    支持

    不支持

    未知

    注:

    原子提交(Atomic Commits,每一次提交都认为是不可分割的,提交失败则意味全部没有提交,而不会发生因网络中断等异常造成只提交成功了部分的情况。

    文件重命名,在重命名文件的同时能够保持文件版本信息。

    符号链接(Symbolic links),是否支持符号链接文件的版本控制。

    事件钩子(Pre/post event hooks),在事件发生前后是否可以触发自定义的命令。

    版本签名(Signed revisions),是否支持对版本进行数字签名。

    EOL转换(End of line conversions),是否支持文本类型能够根据操作系统不同自适应文件行尾字符。

    功能与特性比较(二)

    名称

    合并重命名文件

    合并跟踪

    标签

    国际化版本

    Unicode文件名

    大规模代码库

    AccuRev SCM

    支持

    不支持

    不支持

    未知

    未知

    Bazaar

    支持

    支持

    支持

    支持

    未知

    ClearCase

    支持

    支持

    支持

    未知

    支持

    CVS

    不支持

    支持

    支持

    未知

    不支持

    未知

    Git

    支持

    支持

    支持

    部分有

    支持

    支持

    Monotone

    支持

    支持

    支持

    未知

    支持

    未知

    Perforce

    支持

    支持

    支持

    支持

    支持

    Rational Team Concert

    支持

    支持

    支持

    支持

    未知

    StarTeam

    未知

    支持

    支持

    支持

    未知

    Subversion (SVN)

    不支持

    支持

    部分支持

    未知

    支持

    Team Foundation Server

    支持

    支持

    支持

    支持

    支持

    Visual SourceSafe

    未知

    不支持

    支持

    未知

    未知

    注,

    合并重命名文件(Merge file renames),是否支持在文件在重命名后还能同步并合并修改,或者与另一个分支上的同名文件进行合并。

    合并跟踪(Merge tracking),是否支持一个分支同步合并另一个分支时,只合并那些被修改的部分,而不是全部更新,这意味着每一个分支版本库都会维护一个自己版本修改的历史记录。

    标签(Tags),是否支持为每一个版本或者提交加上一段描述性文字。

    国际化版本,支持多国版本。

    Unicode文件名,支持不同字符集下的文件名。

    大规模代码库(Supports large repos),是否支持超大规模代码和数据的版本维护。

    技术实现比较

    名称

    编程语言

    网络协议

    版本号格式

    改动影响范围

    储存模型

    AccuRev SCM

    C++,Java

    定制化

    数字

    未知

    增量集

    (Changeset)

    Bazaar

    Python,

    Pyrex,

    C

    Http,

    FTP,

    ssh,

    SFTP,

    WebDAV(带插件)

    Email包

    伪随机

    快照

    (Snapshot)

    ClearCase

    C,Java,Perl

    Http,

    CCFS,

    MVFS

    数字

    仅文件

    Changeset

    CVS

    C

    ssh,

    pserver

    数字

    仅文件

    Changeset

    Git

    C,

    Shell脚本,

    Perl

    基于tcp和ssh的Git服务器协议,

    Rsync,

    Http/https,

    Email包

    SHA-1哈希

    Snapshot

    Monotone

    C++

    Netsync,

    ssh,

    文件系统

    SHA-1哈希

    混合型

    Perforce

    C++,C

    定制化

    数字

    Changeset

    Rational Team Concert

    Java

    基于

    Http/https

    的REST服务

    数字

    Changeset

    StarTeam

    C,Java

    定制化,

    Tcp/ip

    MD5哈希

    未知

    Snapshot

    Subversion (SVN)

    C

    定制化,

    ssh,

    Http

    SSL

    数字

    Snapshot

    和Changeset

    Team Foundation Server

    C++,

    C#

    基于Http或

    https的

    SOAP

    数字

    未知

    Changeset

    Visual SourceSafe

    C

    SBM,

    DCOM

    数字

    文件

    Snapshot

    注,

    编程语言,版本控制系统开发的语言

    网络协议,文件同步(如在客户端和服务器之间同步)所使用的网络协议。

    版本号格式,内部用来表示文件版本的格式,数字或者其他类型。

    改动影响范围(Scope of Change),记录修改的方式是仅仅记录修改的文件还是整个文件夹。

    储存方式(History model),描述每次提交的变化被储存的方式,快照(snapshot)方式用来储存修改前以及修改后两次针对文件树的副本。修改增量集(changeset)方式记录修改前的文件树的副本以及代表当前修改的集合。

    用户交互方式比较

    名称

    Web接口

    独立的图形界面

    IDE插件

    AccuRev SCM

    支持

    Windows

    (集成了资源管理器)

    Linux,

    Unix,

    BeOS

    IntelliJ IDEA,

    Eclipse,

    Visual Studio

    Bazaar

    简单的webserver,

    基于webserve,

    Trac,Launchpad,

    Loggerhead的插件

    Olive,

    bzr-gtk,

    Bazaar Explorer,

    QBzrr,

    TortoiseBzr

    Eclipse,

    Visual Studio,

    TextMate,

    Komodo IDE

    ClearCase

    支持,

    CC Web借口

    Windows,

    Unix家族,

    z/OS

    Emacs,

    Eclipse,

    Visual Studio,

    KDevelop,

    IntelliJ IDEA

    CVS

    cvsWeb,

    ViewVC,

    codeBeamer,

    其它

    TortoiseCVS,

    WinCVS,

    Mac OS X,

    GTK

    Eclipse,

    KDevelop,

    IntelliJ IDEA,

    Emacs,

    BBEdit,

    Komodo IDE

    Git

    gitweb,

    wit,

    cgit,

    GitHub,

    gitorious,

    Trac,

    codeBeamer

    gitk,

    git-gui (Tcl/Tk),

    tig,

    Gitbox (Mac OS X),

    TortoiseGit,

    qgit,

    gitg (GNOME/GTK),

    (h)gct (Qt),

    git-cola (Qt),

    Git Extensions

    (Windows资源管理器),

    SmartGit, Tower,

    SourceTree,

    Sprout (Mac OS X),

    GitX (Mac OS X)

    Aptana 3 Beta;

    Eclipse

    (JGit/EGit);

    Netbeans (NbGit);

    Visual Studio 、

    (Git Extensions);

    Emacs

    (extension);

    TextMate

    (Git TextMate Bundle);

    Vim (plugin);

    IntelliJ IDEA >8.1;

    Komodo IDE;

    Anjuta

    Monotone

    ViewMTN,

    TracMonotone

    Monotone-Viz (GTK+),

    Guitone (Qt),

    Monotone Browser

    (GTK+, Perl)

    未知

    Perforce

    P4Web,

    P4FTP

    Windows,

    Linux,

    Unix,

    Mac OS X,

    BeOS available

    Eclipse,

    Visual Studio (P4SCC),

    KDevelop (standard?),

    IntelliJ IDEA,

    Komodo IDE,

    BBEdit,

    Emacs (p4.el)

    Rational Team Concert

    支持

    基于Eclipse的图形界面

    集成Eclipse和Visual Studio

    StarTeam

    包含

    Windows,

    Java,

    Eclipse,

    Visual Studio,

    BDS2006,

    IntelliJ IDEA,

    Visual Studio,

    JBuilder,

    Eclipse

    Subversion (SVN)

    Apache 2 模块,

    WebSVN,

    ViewSVN,

    ViewVC,

    Trac,

    SharpForge,

    sventon,

    Warehouse,

    codeBeamer

    Java,

    KDESVN,

    Mac OS X[128],

    Nautilus,

    Qt,

    RabbitVCS,

    RapidSVN,

    TortoiseSVN

    (Windows 资源管理器)

    Anjuta,

    BBEdit,

    Eclipse,

    Emacs,

    IntelliJ IDEA,

    KDevelop,

    Komodo IDE,

    MonoDevelop,

    Netbeans,

    RabbitVCS,

    TextMate,

    Visual Studio

    Team Foundation Server

    包含

    Windows,

    Mac OS,

    Unix

    Visual Studio,

    Eclipse IDE,

    IntelliJ IDEA

    Visual SourceSafe

    SSWI,

    VSS Remoting

    Windows,

    Linux,

    Mac OS,

    Solaris,

    Visual Studio,

    IntelliJ IDEA

    注:

    Web接口,描述系统是否提供Web接口和管理界面。

    独立的图形界面,通过图形界面窗口管理和使用系统,其相对的是命令行方式。

    IDE插件,是否能够集成到开发环境或者作为插件使用,比如Perforce的插件可以集成到Visual Studio中,这样就可以在Visual Studio中进行源代码的同步,而不必通过Perforce本身的客户端软件进行同步,提高了工作效率。

  • 相关阅读:
    [LeetCode] Range Sum Query
    [LeetCode] Longest Increasing Subsequence
    [LeetCode] Bulls and Cows
    [LeetCode] Serialize and Deserialize Binary Tree
    [LeetCode] Find Median from Data Stream
    [LeetCode] Convert Sorted List to Binary Search Tree
    [LeetCode] Nim Game
    [LeetCode] Word Pattern
    安装配置说明与注意
    java.lang.OutOfMemoryError: PermGen space及其解决方法
  • 原文地址:https://www.cnblogs.com/dancewithautomation/p/2320793.html
Copyright © 2011-2022 走看看