zoukankan      html  css  js  c++  java
  • 20180320作业1:源代码管理工具调查

    一、找出并了解当前较为流行的几种源代码管理工具(至少三种);

    1.CVS(Cocurrent Version System)并发版本系统

    建立在RCS基础上,最流行的开放源代码版本控制系统

    特点:

    1),使用单一的主代码树,而不像RCS那样依赖多个目录.

    2),最大优点在于多名开发人员可以同时对一个文件进行修改.允许合并.

    这就"并发"开发.

    2,SVN(SubVersion)

    1)目录的版本控制

    CVS 只能对文件进行版本控制,不能对目录进行版本控制.CVS 只能注意到,一个文件在一个位置被删除了,而在一个新位置创建了另外一个文件。由于它不会连接两个操作,因此也很容易使文件历史轨迹丢失,SVN可以

    2)原子性提交

    CVS 采用线性、串行的批量提交,即依次地,一个接一个地执行提交,每成功提交一个文件,该文件的一个新的版本即被记录到版本库中,提交时用户提供的日志信息被重复地存储到每一个被修改的文件的版本历史中。

    CVS 串行批量提交模式的弊端在于 -当任何原因造成批量操作的中断时(典型原因包括:网络中断、客户端死机等),版本库往往处于一个不一致的状态:原本应该全部入库的文件只有一部分入库, 很有可能版本库中的最新版本不能顺利编译,更为严重的是,随着其他的用户执行cvs update 操作,该不一致性将迅速在开发团队中扩散,从而严重影响团队的开发效率,并存在质量隐患。另外,假如该批量提交的中断没有被及时发现,开发团队往往要花更 多的时间进行软件调试和排错。

     Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。

     3,Git

     Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。

     git更加适合分布式开发项目。而svn(当然全称是subversion)则更适合于集中式大型开发项目。也有在git之上再使用一层svn的做法。

    4.mercurial

    Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。其是基于 GNU General Public License (GPL) 授权的开源项目。

     

    二、建立表格对这些源代码管理工具的优缺点进行比较分析。

    工具

    优点

    缺点

    SVN

     支持重命名、支持文件和目录拷贝、支持远程存储仓库的备份、支持传递变更到父仓库、支持仓库权限、支持部分变更集、支持跟踪线性的文件历史、支持能够只在仓库的单目录下作用、对文档的支持很好(有一些在线的书籍和一些在线的tutorials和资源)、类CVS的命令集、良好的网络支持、良好的可移植性、良好的图形用户界面、

     不支持在移动或重命名之后智能合并

    CVS

     支持远程存储仓库的备份、支持跟踪线性的文件历史、能够只在仓库的单目录下作用、文档支持非常棒(有很多在线的tutorials和资源, 在线的书籍. )、配置轻松、包含了3个经常用到的命令的简单的命令集(cvs commit, cvs update和cvs checkout)和其它一些、良好的网络支持、良好的可移植性、良好的图形用户界面、

     文件和目录不可以移动或重命名,手动进行, 可能会损坏历史记录、在移动或重命名之后不能智能合并、不支持文件和目录拷贝、不支持传递变更到父仓库、有限的仓库权限、不支持变更集、


    Git

     支持重命名, 支持远程存储仓库的备份、支持传递变更到父仓库、支持仓库权限、支持变更集、支持跟踪线性的文件历史、不支持能够只在仓库的单目录下作用、良好的文档支持(比较简洁难懂)、配置轻松、命令集很丰富, 并且和CVS不兼容、良好的网络支持、良好的可移植性、良好的图形用户界面、

     不支持在移动或重命名之后智能合并、不支持文件和目录拷贝

    Mercurial

     支持重命名、支持在移动或重命名之后智能合并、支持文件和目录拷贝、支持远程存储仓库的备份、支持传递变更到父仓库、支持仓库权限、支持变更集、支持跟踪线性的文件历史、对文档的支持很好、配置轻松、良好的网络支持、良好的可移植性、良好的图形用户界面、

     

  • 相关阅读:
    vue项目学习--2019/5/6
    JAVA注释--2019-04-28
    MyIbatis和Hibernate的区别--2019-04-26
    Thread类和Runnable接口实现多线程--2019-4-18
    Linux文件的扩展名--2019-04-25
    Linux文件名匹配和输出重定向--2019-4-24
    linux学习之命令的排列、替换和别名--2019-04-23
    linux学习--2019-04-22
    操作系统中线程和进程的概念--2019-4-17
    arrayList和vector的区别--2019-4-16
  • 原文地址:https://www.cnblogs.com/zyc1246/p/8609919.html
Copyright © 2011-2022 走看看