版本控制系统_分布式版本控制系统 - CSDN
精华内容
参与话题
  • 版本控制系统

    千次阅读 2015-09-12 22:08:35
    一、什么是版本控制版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。 版本控制透过文档控制(documentation control)记录程序各个模组的改动,...

    一、什么是版本控制?
    版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。
    版本控制透过文档控制(documentation control)记录程序各个模组的改动,并为每次改动编上序号。
    这种方法是工程图维护(maintenance of engineering drawings)的标准做法, 它伴随着工程图从图的诞生一直到图的定型。
    一种简单的版本控制形式,例如,赋给图的初版一个版本等级“A”。
    当做了第一次改变后,版本等级改为“B”,以此类推。
    不仅存在着保存着工程图或者软件源代码的文本文件版本控制管理,而实际上,你可以对任何类型的文件进行版本控制。
    版本控制系统用于维护文件的所有版本,随着时间的推移,系统逐渐产生这些版本。
    使用版本控制系统,人们可以返回到各个文件以前的修订版本,还可以比较任意两个版本以查看它们之间的变化。
    通过这种方式,版本控制可以保留一个文件修订的可检索的准确历史日志,甚至将整个项目都回退到过去某个时间点的状态。
    更重要的是,版本控制系统有助于多个人(甚至位于完全不同的地理位置)通过 Internet 或 专用网将各自的更改合并到同一个源存储库,从而协同开发项目。
    而由此额外增加的工作量却微乎其微。

    二、为什么要用版本控制
    如果没有版本控制工具的协助,在开发中我们经常会遇到下面的一些问题:
    1) 代码管理混乱。
    如果是别人添加或删除一个文件,你很难发现。
    没有办法对文件代码的修改追查跟踪。
    甚至出现文件丢失,或新版本代码被同伴无意覆盖等现象。
    2) 解决代码冲突困难。
    当大家同时修改一个公共文件时,解决代码冲突是一件很头疼的事。
    最原始的办法是手工打开冲突文件,逐行比较,再手工粘贴复制。
    更高级的做法是使用文件比较工具,但仍省不了繁杂的手工操作,一不小心,甚至会引入新的bug。
    3) 在代码整合期间引入深层BUG。
    例如开发者A写了一个公共函数,B觉得正好可以复用;后来A又对这个公共函数进行了修改,添加了新的逻辑,而这个改动的却是B不想要的。
    或者是A发现这个公共函数不够用,又新做了一个函数,B却没有及时获得通知。
    这些,都为深层BUG留下隐患。
    4) 无法对代码的拥有者进行权限控制。
    代码完全暴露在所有的开发者面前,任何人都可以随意进行增、删、改操作,无法指定明确的人对代码进行负责。
    特别是产品的开发,这是极其危险的。
    5) 项目不同版本发布困难。
    特别是对产品的开发,你会频繁的进行版本发布,这时如果没有一个有效的管理产品版本的工具,一切将变得非常艰难。
    上面只是列举了一些没有版本控制系统可能带来的问题,特别是对大型项目和异地协同开发有了一个合适的版本控制工具,它可以有效解决因为代码版本不同引起的各种问题,让我们的开发人员能更多的把精力花费在开发上面。
    而不是每次都花费很多时间进行代码整合和解决版本不同带来的各种问题。
    三、版本控制系统的发展历史
    本地版本控制系统
    许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。
    这么做唯一的好处就是简单,不过坏处却不少:有时候会混淆所在的工作目录,弄错了文件丢了数据就没了退路。
    为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异。
    其中最流行的一种叫做 rcs,现今许多计算机系统上都还看得到它的踪影。
    甚至在流行的 Mac OS X 系统上安装了开发者工具包之后,也可以使用 rcs 命令。
    它的工作原理基本上就是保存并管理文件补丁。
    文件补丁是一种特定格式的文本文件,记录着对应文件修订前后的内容变化。所以,根据每次修订后的补丁,rcs 可以通过不断打补丁,计算出各个版本的文件内容。
    集中化的版本控制系统
    接下来人们又遇到一个问题,如何让在不同系统上的开发者协同工作?
    于是,集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS )应运而生。
    这类系统,诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
    多年以来,这已成为版本控制系统的标准做法。
    这种做法带来了许多好处,特别是相较于老式的本地 VCS 来说。
    现在,每个人都可以一定程度上看到项目中的其他人正在做些什么。
    而管理员也可以轻松掌控每个开发者的权限,并且管理一个 CVCS 要远比在各个客户端上维护本地数据库轻松容易得多。
    事分两面,有好有坏。
    这么做最显而易见的缺点是中央服务器的单点故障。
    若是服务器当机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
    如果中央服务器的磁盘发生故障,并且没做过备份或者备份得不够及时的话,还会有丢失数据的风险。
    最坏的情况是彻底丢失整个项目的所有历史更改记录,被客户端提取出来的某些快照数据除外,但这样的话依然是个问题,你不能保证所有的数据都已经有人提取出来。
    本地版本控制系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新信息的风险。
    分布式版本控制系统
    于是分布式版本控制系统( Distributed Version Control System,简称 DVCS )面世了。
    在这类系统中,诸如 Git,Mercurial,Bazaar 还有 Darcs 等,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。
    这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。
    因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。
    更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互。
    籍此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。
    你可以根据需要设定不同的协作流程,比方说层次模型式的工作流,这在以前的集中式系统中是无法实现的。
    四、常见版本控制系统
    1.Subversion
    Subversion是一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。
    2.Git
    Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git是Linux Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
    3.Darcs
    Darcs是新一代轻量级分布式版本控制系统。完全使用Haskell编写而成。不同于以往的版本控制系统,Darcs没有中央服务器。任何一个本地repository都可以既是客户端也是服务器,节点之间可以任意同步。这样我们可以不依赖网络离线comit任何修改。
    4.Bazaar
    Bazaar是一个分布式的版本控制系统,它发布在GPL许可协议之下,并可用于Windows、GNU/Linux、UNIX以及Mac OS系统。Bazaar由Canonical公司赞助,目前已服务于Samba、Drupal等知名的开源项目。Bazaar当前已经包含许多有用的功能,这些功能使之具有如下鲜明的特点:容易使用、稳定可靠、使用灵活。Bazaar也包括智能合并、支持插件、可与第三方工具整合、文档支持等其他特性。
    5.Mercurial
    Mercurial是一种轻量级分布式版本控制系统,采用Python语言实现,易于学习和使用,扩展性强。相对于传统的版本控制,具有如下优点:
    更轻松的管理:传统的版本控制系统使用集中式的repository,一些和repository相关的管理就只能由管理员一个人进行。由于采用了分布式的模型,Mercurial中就没有这样的困扰,每个用户管理自己的repository,管理员只需协调同步这些repository。
    更健壮的系统:分布式系统比集中式的单服务器系统更健壮,单服务器系统一旦服务器出现问题整个系统就不能运行了,分布式系统通常不会因为一两个节点而受到影响。
    更低的网络依赖性:由于同步可以放在任意时刻进行,Mercurial甚至可以离线进行管理,只需在有网络连接时同步
    6.FOssil
    Fossil是一个简单、高可靠性的分布式软件配置管理系统。值得关注的功能:Bug跟踪和Wiki、Web接口、自动同步、支持HTTP接口、嵌入式CGI、稳健而且可靠
    7.OpenCVS
    OPENCVS是自由的协作版本系统(CVS)实现,CVS是最流行的开放源代码版本控制软件。它可以用于客户端,以及服务器端的版本库,提供了对存储在版本库中的数据的细粒度访问控制。它的目标是除了完全减少系统安全性的特性之外,尽可能的与其它的CVS实现兼容。OPENCVS项目是在最近GNU CVS弱点暴露之后,经过讨论之后启动的。尽管CVS被广泛使用,但是最近几年它的开发已经基本停止了。CVS的实现和设计,已经被发现许多安全问题。
    8.Monotone
    monotone是一个分布式版本控制系统,提供了简单的、单文件事务版本存储和点对点同步协议,支持历史版本敏感的合并操作、轻量级分支处理以及集成代码评审和第三方测试工具。使用加密的版本命令方式和客户端RSA认证,很好的支持国际化,不依赖第三方工具,支持跨平台。
    9.CVS
    CVS(Concurrent Versions System)老牌的版本控制系统,它是基于客户端/服务器的行为使得其可容纳多用户,构成网络也很方便。这一特性使得CVS成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的首选。
    五、参考资料
    [1]. http://www.hudong.com/wiki/%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6
    [2]. http://zh.wikipedia.org/wiki/%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6

    原文链接:
    http://www.6zou.net/tech/what-is-vcs-and-why-vcs.html

    展开全文
  • 【VCS】-常见的版本控制系统(VCS)

    千次阅读 热门讨论 2017-01-09 14:10:11
    一、什么是版本控制系统?  版本控制是一种记录一个或者若干个文件内容的变化,以便将来查阅特定版本修订情况的系统 1、作用  记录文件的所有历史变化  随时可回复到任何一个历史状态  多人协作开发或者修改  ...

    一、什么是版本控制系统?

      版本控制是一种记录一个或者若干个文件内容的变化,以便将来查阅特定版本修订情况的系统

    1、作用

      记录文件的所有历史变化

      随时可回复到任何一个历史状态

      多人协作开发或者修改,共享数据

      错误恢复

      多功能的并行开发(分支功能、特性-合并操作)

        追踪修改信息和责任人

    2、分类

      本地版本控制系统(local VCS

      集中化的控制系统(Centralizes VCS

      分布式的版本控制系统(Distributed VCS

    3、基本概念

      repository——存放所有文件及历史信息

      checkout ——取出或者切换到指定版本的文件

      version ——记录表示一个版本(编号或者其他代码),某个特定状态下的资源

      tag ——记录标识一个主要版本(1.0 2.0 3.0

    二、三种版本控制系统介绍

    1)本地版本控制系统(LVCS)——本地完整仓库(少用)

                      简介:在硬盘上保存补丁集(补丁是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容。大多数采用某种简单的数据库来记录文件的历次更新差异。

        最流行:RCSRevision Control System

         优点:简单、很多系统中都有配置

           适合管理文本文件

        缺点:不支持网络

           支持类型单一

           只适合管理少量文件、不支持基于项目的管理

         图示:

              

    2)集中式版本控制系统(CVCS)——服务器完整的仓库

                      简介:有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

              每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个 CVCS 要远比在各个客户端上维护本地数据库来得轻松容易。

      最常用:CVSConcurrent Version System

      优点:适合多人团队协作开发

          代码集中话管理

      缺点:单点故障

          必须连网操作,无法单击本地工作

        图示:

           

              

    3)分布式版本控制系统(DVCS)——本地和服务器都有完整的仓库

                     简介:客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

               可以指定和若干不同的远端代码仓库进行交互。这样,你就可以在同一个项目中,分别和不同工作小组的人相互协作。

      最常用:Git、Mercurial(HG)

      优点:适合多人团队协作开发

        代码集中化管理

        可以离线工作

        每个计算机都是一个完整仓库

        图示:

            


    三、版本控制系统(VCS)的前世今生

                      

                               

    四、小结

          在实践中体会版本控制系统的优劣,有了新的需求才有新的创造,不设限,不将就。


    展开全文
  • VSS VSS 的全称为 Visual Source Safe 。作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用...VSS作为一款历史悠久的版本管理工具,在早期扛起了版本管理系统方面的大气

    VSS

    VSS 的全称为 Visual Source Safe 。作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用任何软件项目。管理软件开发中各个不同版本的源代码和文档,占用空间小并且方便各个版本代码和文档的获取,对开发小组中对源代码的访问进行有效的协调

    VSS作为一款历史悠久的版本管理工具,在早期扛起了版本管理系统方面的大气,能帮助解决一部分版本控制方面的问题,也在一定程度上帮助解决代码共享方面的难题。但是依旧存在一些不足,比如:

    1.文件大多会以独占的形势进行锁定。如果一个人在修改的时候其他人没有办法进行修改。

    2.VSS只支持Windows版本,且只兼容微软的开发工具。

    3.文件存储,服务器必须共享文件夹,对文件的安全性没有足够保障。

    SVN

    SVN

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

    这是百度百科中给出的SVN的解释。SVN是一个开源的版本控制系统。和VSS相比,除开最基本的代码和文件管理功能外,主要的革新是提供了分支的功能,从而解决了VSS文件独占的问题。大幅提升了开发人员的工作效率,谁写完代码,随时可以提交到自己的分支上,最后对所有分支进行合并,解决冲突即可。相比VSS而言,在工作模式上有了翻天覆地的改变。

    而SVN作为集中式的版本管理系统,依然有他的优缺点:

    优点

    1.管理方便,逻辑明确,操作简单,上手快。

    2.易于管理,集中式服务器更能保证安全性。

    3.代码一致性非常高。

    4.有良好的目录级权限控制系统。

    ·劣势

    1.对服务器性能要求高,数据库容量经常暴增,体量大。

    2.必须联网。如果不能连接到服务器上,基本上不可以工作,如果服务器不能连接上,就不能提交,还原,对比等等。

    3.不适合开源开发。

    4.分支的管控方式不灵活

    Git

    请点击此处输入图片描Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。作为一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。

    分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

    Git的优缺点如下:

    1.适合分布式开发,每一个个体都可以作为服务器。每一次Clone就是从服务器上pull到了所有的内容,包括版本信息。

    2.公共服务器压力和数据量都不会太大。

    3.速度快、灵活,分支之间可以任意切换。

    4.任意两个开发者之间可以很容易的解决冲突,并且单机上就可以进行分支合并。

    5.离线工作,不影响本地代码编写,等有网络连接以后可以再上传代码,并且在本地可以根据不同的需要,本地新建自己的分支。

    展开全文
  • 常用的版本控制软件

    千次阅读 2014-06-05 16:20:24
    编辑 Perforce,StarTeam) --------〉入门级 1.Clear case --------〉中坚级 2.CVS --------〉开源奇葩 3.Visual SourceSafe --------〉新秀级 4. SourceAnywhere --------〉中坚级 ...6 Perf


    编辑

    Perforce,StarTeam)

    --------〉入门级

    1.Clear case --------〉中坚级
    2.CVS --------〉开源奇葩
    3.Visual SourceSafe

    --------〉新秀级

    4. SourceAnywhere --------〉中坚级
    5.PVCS --------〉小工作组级
    6 Perforce --------〉新秀级
    7.CCC --------〉元老级
    8.StarTeam --------〉元老级
    9.RCS --------〉元老级
    10.SCCS --------〉元老级
    11.Hansky Firefly
    12.Others(还有一些比较少见或某个公司专用的软件,如Seapine,北大青鸟的JBCM等)

    Visual Source Safe(简称VSS)

    VSS是美国微软公司的产品,目前常用的版本为6.0版。VSS是配置管理的一种很好的入门级的工具。
    易学易用是VSS的强项,VSS采用标准的windows操作界面,只要对微软的产品熟悉,就能很快上手。VSS的安装和配置非常简单,对于该产品,不需要外部的培训(可以为公司省去一笔不菲的费用)。只要参考微软完备的随机文档,就可以很快的用到实际的工程当中。
    VSS的配置管理的功能比较基本,提供文件的版本跟踪功能,对于build和基线的管理,VSS的打标签的功能可以提供支持。VSS提供share(共 享)、branch(分支)和合并(merge)的功能,对于团队的开发进行支持。VSS不提供对流程的管理功能,如对变更的流程进行控制。
    VSS不能提供对异地团队开发的支持。此外VSS只能在windows平台上运行,不能运行在其他操作系统上。 有软件提供商提供VSS插件,可以同时解决VSS跨平台和远程连接两个问题,例如SourceAnywhere for VSS, SourceOffSite等。
    VSS的安全性不高,对于VSS的用户,可以在文件夹上设置不可读,可读,可读/写,可完全控制四级权限。但由于VSS的文件夹是要完全共享给用户后,用户才能进入,所以用户对VSS的文件夹都可以删除。这一点也是VSS的一个比较大的缺点。
    VSS没有采用对许可证进行收费的方式,只要安装了VSS,对用户的数目是没有限制的。因此使用VSS的费用是较低的。
    微软不再对VSS提供技术支持。
    Concurrent Version System(简称CVS)
    CVS是开发源代码配置管理工具,其源代码和安装文件都可以免费下载。
    CVS是源于unix的版本控制工具,对于CVS的安装和使用最好对unix的系统有所了解能更容易学习,CVS的服务器管理需要进行各种命令行操作。目前,CVS的客户端有winCVS的图形化界面,服务器端也有CVSNT的版本,易用性正在提高。
    CVS的功能除具备VSS的功能外,还具有:
    它的客户机/服务器存取方法使得开发者可以从任何因特网的接入点存取最新的代码;它的无限制的版本管理检出(checkout:注1)的模式避免了通常的 因为排它检出模式而引起的人工冲突;它的客户端工具可以在绝大多数的平台上使用。同样,CVS也不提供对变更流程的自动管理功能。
    一般来说,CVS的权限设置单一,通常只能通过CVSROOT/passwd, CVSROOT/readers, CVSROOT/writers文 件,同时还要设置CVS REPOS的物理目录权限来完成权限设置,无法完成复杂的权限控制;但是CVS通过CVS ROOT目录下的脚本,提供了相应功 能扩充的接口,不但可以完成精细的权限控制,还能完成更加个性化的功能。
    CVS是开发源码软件,无需支付购买费用。
    同样因为CVS是开发源码软件,没有生产厂家为其提供技术的支持。如发现问题,通常只能靠自己查找网上的资料进行解决。

    StarTeam

    StarTeam是Borland公司的配置管理工具,StarTeam属于高端的工具,在易用性,功能和安全性等方面都很不错。
    StarTeam的用户界面同VSS的类似,它的所有的操作都可通过图形用户界面来完成,同时,对于习惯使用命令方式的用户,StarTeam也提供命令集进行支持。同时,StarTeam的随机文档也非常详细。
    除了具备VSS,CVS所具有功能外,StarTeam还提供了对基于数据库的变更管理功能,是相应工具中独树一帜的。StarTeam还提供了流程定制 的工具,用户可跟据自己的需求灵活的定制流程。与VSS和CVS不同,VSS和CVS是基于文件系统的配置管理工具,而StarTeam是基于数据库的。 StarTeam的用户可根据项目的规模,选取多种数据库系统
    STARTEAM无需通过物理路径的权限设置,而是通过自己的数据库管理,实现了类似WINDOWSNT的域用户管理和目录文件ACL控制。 StarTeam完全是域独立的。这个优势可以为用户模型提供灵活性,而不会影响到现有的安全设置。StarTeam访问控制非常灵活并且系统。您可以 对工程,视图,文件夹一直向下到每一个小的item设置权限。对于高级别的视图(view),访问控制可以与用户组、用户、项目甚至视图等链接起来。
    StarTeam是按license来收费的,比起VSS,CVS来,企业在启动StarTeam进行配置管理需要投入一定资金。
    Borland公司将对用户进行培训,并协作用户建立配置管理系统。并对用户提供技术升级等完善的支持。

    ClearCase

    ClearCase是Rational公司的产品,也是目前使用较多的配置管理工具。
    ClearCase的安装和维护远比StarTeam复杂,要成为一个合格的ClearCase的系统管理员,需要接受专门的培训。ClearCase提供命令行和图形界面的操作方式,但从ClearCase的图形界面不能实现命令行的所有功能。
    ClearCase提供VSS,CVS,StarTeam所支持的功能,但不提供变更管理的功能。Rational另提供了ClearQuest工具提供 对变更管理的功能,与StarTeam不同,ClearCase后台的数据库是专有的结构。ClearCase对于windows和unix平台都提供支 持。ClearCase通过多点复制支持多个服务器和多个点的可扩展性,并擅长设置复杂的开发过程。
    ClearCase的权限设置功能与StarTeam相比,StarTeam有独立的安全管理机制,ClearCase没有专用的安全性管理机制,依赖于操作系统
    要选用ClearCase,需要考虑的费用除购买license的费用外,还有必不可少的技术服务费用,没有Rational公司的专门的技术服务,很难 发挥出ClearCase的威力。如现在网上虽有ClearCase的破解软件,但尝试应用的公司大多失败的缘故。另外,对于web访问的支持,对于变更 管理的支持功能都要另行购买相应的软件
    Rational公司已被IBM公司收购,所以有可靠的售后服务保证。

    SVN

    SVN全名Subversion,即版本控制系统。
    SVN与CVS一样,是一个跨平台的软件,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。Subversion 是一个通用的系统, 可用来管理任何类型的文件, 其中包括了程序源码。
    SubVersion:实现服务系统的软件
    TortoiseSVN:是SVN客户端程序,为windows外壳程序集成到windows资源管理器文件管理系统的Subversion客户端。
    SVNService.exe:是专为 SubVersion 开发的一个用来作为 Win32 服务挂接的入口程序。
    AnkhSVN:是一个专为Visual Studio提供SVN的插件

    SourceAnywhere

    SourceAnywhere系列是由加拿大公司Dynamsoft开发的,有三个产品,SourceAnywhere for VSS, SourceAnywhere Standalone, SourceAnywhere Hosted.
    SourceAnywhere for VSS是微软推荐的远程和跨平台访问VSS的工具。SourceAnywhere Standalone界面风格与VSS相似,但它是基于SQL Server的,且有其它一些安全和远程访问机制,可以广域网中使用;支持把数据从VSS库中导入SourceAnywhere。SourceAnywhere Hosted是SourceAnywhere Standalone的托管服务SaaS。

    Git

    Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理.
    Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
    Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 最近就迁移到 Git 上来了,很多 Freedesktop 的项目也迁移到了 Git 上。

    总结

    windows平台进行支持,建议作为项目配置管理的入门时采用的工具;CVS的安全性和版本管理功能较强,可以实现异地开发的支持,但CVS安装和使用 多采用命令行方式,学习曲线高,同时不提供对变更管理的功能,对于小型团队,可以采用CVS进行管理。ClearCase功能完善,安全性好,可以支持复 杂的管理,但学习曲线和学习成本高,需要集成ClearQuest才能完成完整的配置管理功能;StarTeam很好地平衡了功能性、易用性和安全性,同 时集成了版本管理、变更管理和缺陷管理。对大型的团队开发和建立组织级的配置管理体系,建议采用ClearCase和StarTeam作为配置管理工具。
    以上几种工具的总结如下:VSS的使用简便易学,但VSS的功能和安全性较弱,且只对可以显示开机时所有启动的项目
    展开全文
  • IntelliJ IDEA 中的版本控制介绍(上)

    万次阅读 2018-09-18 17:34:57
    在之前的「史上最简单的 IntelliJ IDEA 教程」之中,咱们已经了解了很多关于 IntelliJ IDEA 的使用方法,至少可以独立的运用 IntelliJ IDEA 进行...这时,咱们就需要了解一个非常重要的概念啦,那就是“版本控制”。
  • svn和git的区别,为什么使用git?

    万次阅读 2016-12-14 15:51:12
    为什么要使用git作为版本管理工具,git和svn的区别是什么?
  • Chapter: 开始了解Git 1. 先谈谈版本控制的一些事 2. Git诞生背后的一些故事 3. 版本控制:集中式VS分布式 ...Git是分布式版本控制系统,那么集中式和分布式版本控制系统又有什么区别呢? 先
  • Git笔记(1) 版本控制

    万次阅读 2020-02-13 20:36:56
    分布式版本控制系统把代码仓库完整地镜像下来,不同与本地版本控制系统不容易犯错、不同与集中式版本控制系统不容易有丢失所有历史更新记录的风险
  • 本文为您介绍9款优秀的开源版本控制系统,它们在软件行业已经得到了广泛应用。  1.Subversion  Subversion是一个开源的版本控制系统。由CollabNet公司首创于2000年,十年中Subversion取得了令人难以置信的...
  •  介绍Pycharm的版本控制系统  2、准备工作  (1)Pycharm版本为2.7或者更高  (2)已经创建一个工程,参见Getting Started tutorial  (3)安装并配置了VCS,有远程接入权限  3、启用VCS  ...
  • git、github、gitlab之间的关系

    万次阅读 2016-07-19 19:45:37
    Git - 版本控制工具 Github - 一个...Git是一款自由和开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git - 版本控制工具 Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到
  • 很多为单片机课程设计烦愁,说找不到题目,不知道做哪方面的设计?这个小编看到好多人这么反应了,为此向大学的老师要了这份珍贵的 经典单片机课程设计题目大全。... D3-基于单片机的LED流水灯系统设计 D4-基
  • 什么是Git?

    万次阅读 多人点赞 2019-12-09 14:16:08
    什么是版本控制? 现在有这样的一个场景:我们在写论文的时候,写完了提交给指导老师去审核,老师说你哪哪哪写的不好要改改,于是乎,你就屁颠屁颠的去改。一般的做法是:不直接在原论文上修改,而是复制一份,在新...
  • 为什么版本控制如此重要?

    千次阅读 2016-07-12 20:21:49
    如果说什么是软件开发项目一定要使用的基础工具,那么版本控制系统应该算最重要的部分。不管是个人开发或是团队协作开发,都可以通过版本控制系统获得巨大的好处。
  • Mercurial 安装及使用

    万次阅读 2018-07-02 15:59:01
    目前,应用较广泛的版本控制系统有 Git 和 SVN,二者分别代表着分布式和集中式版本控制系统的鲜明特点,这两类系统组织形式会在今后很长一段时间内共存。相比之下,Mercurial 略显小众。这款由 Python 编写的分布式...
  • IntelliJ IDEA 中的版本控制介绍(下)

    万次阅读 2018-09-18 17:44:38
    在「IntelliJ IDEA 中的版本控制介绍」中,咱们已经简单了解了 ...标注1:Checkout from Version Control,从版本控制系统中检出项目; 标注2:IntelliJ IDEA 支持的版本控制系统,包括GitHub、CVS和Git等。 如上图
  • 链接到微软帮助页面,才找到解决方案: “控制面板”-“程序和功能
  • Git就是分布式版本控制系统,对应的是集中式的版本控制如SVN。简单的说,分布式的版本控制就是每个人都可以创建一个独立的代码仓库用于管理,各种版本控制的操作都可以在本地完成。每个人修改的代码都可以推送合并到...
  • Git简介

    千次阅读 热门讨论 2015-12-16 14:21:51
    Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。 Git是Linus Torvalds为了帮助管理...
  • 版本控制的基本原理

    千次阅读 2014-07-21 11:23:14
    什么是版本控制?我真的需要吗?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本书所展示的例子中,我们仅对保存着软件源...采用版本控制系统 (VCS)是个明智的选择。有了它你就可以
1 2 3 4 5 ... 20
收藏数 1,005,267
精华内容 402,106
关键字:

版本控制系统