⑴ java开发工具中的代码管理工具有那些
Code Review中文应该译作“代码审查”或是“代码评审”,这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,这是一种有效发现BUG的方法。由此,我们可以审查代码的风格、逻辑、思路……,找出问题,以及改进代码。因为这是代码刚刚出炉的时候,所以,这也是代码重构,代码调整,代码修改的最佳时候。所以,Code Review是编码实现中最最重要的一个环节。长时间以来,Code Review需要有一些有效的工具来支持,这样我们就可以更容易,更有效率地来进行代码审查工作。下面是5个开源的代码审查工具,他们可以帮助你更容易地进行这项活动。1. Review board:
Review board 是一个 基于web 的工具,主要设计给 django 和python的用户。 Review board 可以帮助我们追踪待决代码的改动,并可以让Code-Review更为容易和简练。尽管Review board 最初被设计在VMware项目中使用,但现在其足够地通用。当前,其支持这些代码版本管理软件: SVN, CVS, Perforce, Git, Bazaar, 和Mercurial.Yahoo 是review-board的其中一个用户。“Review board 已经改变了代码评审的方式,其可以强迫高质量的代码标准和风格,并可以成为程序员编程的指导者。每一次,当你访问search.yahoo.com 时,其代码都是使用 Review board工具Review过的。 We’re great fans of your work!”– Yahoo! Web Search 2. Codestriker:
Codestriker 也是一个基于Web的应用,其主要使用 GCI-Perl 脚本支持在线的代码审查。Codestriker 可以集成于CVS, Subversion, ClearCase, Perforce 和Visual SourceSafe。并有一些插件可以提供支持其它的源码管理工具。David Sitsky 是 Codestriker 的作者,并也是最活跃的开发人员之一。 Jason Remillard 是另一个活路的开发者,并给这个项目提供了最深远最有意义的贡献。大量的程序员贡献他们的代码给 Codestriker 项目,导致了这个项目空前的繁荣。 3. Groogle:
Groogle 是一个基于WEB的代码评审工具。 Groogle 支持和 Subversion 集成。它主要提供如下的功能:各式各样语言的语法高亮。
支持整个版本树的比较。
支持当个文件不同版本的diff功能,并有一个图形的版本树。
邮件通知所有的Reivew的人当前的状态。
认证机制。 4. Rietveld:
Rietveld 由Guido van Rossum 开发(他是Python的创造者,现在是Google的员工),这个工具是基于Mondrian 工具,作者一开始是为了Google 开发的,并且,它在很多方面和Review board 很像。它也是一个基于Web的应用,并可以Google App Engine 当主机。它使用了目前最流行的Web开发框架 django 并支持 Subversion 。当前,任何一个使用 Google Code 的项目都可以使用 Rietveld 并且使用 python Subversion 服务器。当然,它同样支持其它的Subversion服务器。 5. JCR
JCR 或者叫做 JCodeReview 也是一个基于WEB界面的最初设计给Reivew Java 语言的一个工具。当然,现在,它可以被用于其它的非Java的代码。JCR 主要想协助:审查者。所有的代码更改都会被高亮,以及大多数语言的语法高亮。Code extracts 可以显示代码评审意见。如果你正在Review Java的代码,你可以点击代码中的类名来查看相关的类的声明。
项目所有者。可以 轻松创建并配置需要Review的项目,并不需要集成任何的软件配置管理系统(SCM)。
流程信仰者。 所有的评语都会被记录在数据库中,并且会有状态报告,以及各种各样的统计。
架构师和开发者。 这个系统也可以让我们查看属于单个文件的评语,这样有利于我们重构代码。
⑵ 配置管理工具除了版本控制的工具(如SVN)外,还有其他类型的工具吗
Puppet不是通常意义上的软件
配置管理
工具,我们通常所说的配置管理工具是指对
软件代码
、文档的版本进行管理的工具,而puppet是一个管理操作系统配置参数项的工具,完全不是一个概念
目前配置管理工具最常用的当然是免费的SVN了,除此之外免费的工具还有CVS(SVN的前身)比较常用,收费的工具有
ClearCase
、VSS、Firefly等,另外还有些分布式配置管理工具(如GIT)用的人不是太多
基本上SVN、CVS、ClearCase(简称CC)、VSS这4款工具覆盖了至少90%以上
⑶ 版本控制软件的常用的版本控制软件简介
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提供技术支持。 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是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是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全名Subversion,即版本控制系统。
SVN与CVS一样,是一个跨平台的软件,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。Subversion 是一个通用的系统, 可用来管理任何类型的文件, 其中包括了程序源码。
SubVersion:实现服务系统的软件。
TortoiseSVN:是SVN客户端程序,为windows外壳程序集成到windows资源管理器和文件管理系统的Subversion客户端。
SVNService.exe:是专为 SubVersion 开发的一个用来作为 Win32 服务挂接的入口程序。
AnkhSVN:是一个专为Visual Studio提供SVN的插件。 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 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 最近就迁移到 Git 上来了,很多 Freedesktop 的项目也迁移到了 Git 上。
⑷ 管理代码的工具
Rational ClearCase:
Rational 公司是全球最大的软件CASE 工具提供商,现已被IBM收购。也许是受到其拳头产品、可视化建模第一工具Rose 的影响,它开发的配置管理工具ClearCase 也是深受用户的喜爱,是现在应用面最广的企业级、跨平台的配置管理工具之一。
ClearCase提供了比较全面的配置管理支持,其中包括版本控制、工作空间管理、Build管理等,而且开发人员无需针对其改变现有的环境、工具和工作方式。
其最大的缺点就在于其价格不菲,每个客户端用户许可证大约需要几千美金,所以在国内应用群体有限。
1) 版本控制
ClearCase不仅可以对文件、目录、链接进行版本控制,同时还提供了先进的版本分支和归本功能用于支持并行开发。另外,它还支持广泛的文件类型。
2)工作空间管理
可以为开发人员提供私人存储区,同时可以实现成员之间的信息共享,从而为每一位开发人员提供一致、灵活、可重用的工作空间域。
3) Build管理
对ClearCase 控制的数据,既可以使用定制脚本,也可使用本机提供的make 程序。
其最大的缺点就在于其价格不菲,每个客户端用户许可证大约需要几千美金,所以在国内应用群体有限。
Hansky Firefly:
做为Hansky公司软件开发管理套件中重要一员的Firefly,可以轻松管理、维护整个企业的软件资产,包括程序代码和相关文档。Firefly是一个功能完善、运行速度极快的软件配置管理系统,可以支持不同的操作系统和多种集成开发环境,因此它能在整个企业中的不同团队,不同项目中得以应用。
Firefly基于真正的客户机/服务器体系结构,不依赖于任何特殊的网络文件系统,可以平滑地运行在不同的LAN、WAN 环境中。它的安装配置过程简单易用,Firefly 可以自动、安全地保存代码的每一次变化内容,避免代码被无意中覆盖、修改。项目管理人员使用Firefly可以有效地组织开发力量进行并行开发和管理项目中各阶段点的各种资源,使得产品发布易于管理;并可以快速地回溯到任一历史版本。系统管理员使用Firefly的内置工具可以方便的进行存储库的备份和恢复,而不依赖于任何第三方工具。
WinCVS:
CVS 是Concurrent Versions System 的缩写,它是开放源代码软件世界的一个伟大杰作,由于其简单易用、功能强大,跨平台,支持并发版本控制,而且免费,它在全球中小型软件企业中得到了广泛使用。
其最大的遗憾就是缺少相应的技术支持,许多问题的解决需要自已寻找资料,甚至是读源代码。
Merant PVCS:
MERANT 公司的PVCS 能够提供对软件配置管理的基本支持,通过使用其图形界面或类似SCCS 的命令,能够基本满足小型项目开发的配置管理需求。PVCS 虽然功能上也基本能够满足需求,但是其性能表现一直较差,逐渐地被市场所冷落。
Microsoft Visual Source Safe:
Visual Source Safe,即VSS,是微软公司为Visual Studio配套开发的一个小型的配置管理工具,准确来说,它仅能够称得上是一个小型的版本控制软件。VSS的优点在于其与Visual Studio实现了无缝集成,使用简单。提供了历史版本记录、修改控制、文件比较、日志等基本功能。
但其缺点也是十分明显的,只支持Windows平台,不支持并行开发,通过Check out - Modify - Check in的管理方式,一个时间只允许一个人修改代码,而且速度慢、伸缩性差,不支持异地开发。甚至于微软本身也不采用其做为配置管理工具,而是使用一个名为SLM 的内部工具。
⑸ 什么叫版本管理工具;SVN、GIT是什么
git和svn区别总结
1.git是分布式的,svn是集中式的
这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;
2.git把内容按元数据方式存储,而svn是按文件
所有的资源控 制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因 为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。
3.git的内容完整性要优于svn
GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
4.git 不需联网,svn 需要联网操作
git下载下来后,在本地不必联网就可以看到所有的log,很方便学习;
svn却需要联网,没有网络代码没办法提交.
svn 的一些优势 !!!
1.svn支持空目录
2.svn有更好的Windows平台支持
3.svn支持特权访问控制svn lock,在处理很难合并的文件时非常有用
4.svn支持二进制文件,更容易处理大文件(不需要把老版本拷来拷去)
5.提交文件相对简单,因为没有pull/push操作,本地修改通过svn update自动的执行了同步代码的功能。
⑹ Git和SVN,代码管理哪个更好
代码版本管理系统的历史
代码版本管理系统大致可以分为三个时代:
第一代:本地式
这代主要的特点提供本地代码版本控制,比如SCCS(1972)、 PVCS(1985)等。
这代主要实现了基本的代码版本管理,但缺点是无法让多人同时对一个版本库进行修改。这个也和当时软件规模不够大有关,也没有这样的需求。
第二代:客户端-服务器式
这代主要的特点是提供集中式服务器端代码版本控制,比如 CVS(1986), ClearCase(1992), Visual SourceSafe(1994), Perforce(1995), Subversion(2000) 等。
这代主要是实现了中心服务器端的代码版本管理,特点是可以让多人同时对一个代码版本库进行同步和修改,但缺点也相当明显:
在无法连接服务器的情况下,无法查看日志以及提交和比较代码版本(慢速网络和远程异地工作的程序员的痛),以及当服务或者网络出现问题的时候很多人员就会无法工作。
不支持local branch,导致branch创建管理复杂,并且一旦创建就很难修改(快速迭代开发中的程序员的痛)
由于只有一个中心端服务器,一旦发生灾难性问题,那么所有日志都会丢失,所以需要经常做备份(备份需要不小的成本)
如果软件代码量过于庞大,一般会出现速度缓慢的情况,因为每次的日志查询、不同版本之间的代码比较和代码提交等操作都需要和服务器通信,造成服务器端的负载过大。
第三代:分布式
这代主要的特点是提供分布式代码版本控制,比如Git(2005), Mercurial(2005)等。
这代结合了第一代和第二代的优点并实现了分布式的代码版本管理。
这代的优点:分布式管理,在没有和服务器有连接的情况下仍然可以查看日志,提交代码,创建分支;支持local branch,可以快速方便的实现各种分支管理;支持分布式,从而可以实现分块管理,以及负载分流管理。
缺点是有一定的学习曲线,比如分布方式下的代码同步,local branch的理解与运用,分布式代码管理的理解与运用等。详细的比较可以参考:这里。
二、大型分布式团队
曾经有这样一个分布式团队,他们在多个城市都有小分队,并且正在开发一个大型项目,见下图
总结:
分布式代码版本管理系统并不一定适合所有团队,比如中小团队可能更关心的只是成本更低,简单易用,那么SVN等这类集中式版本管理工具还是更为适合。但是不管团队最终选用什么代码版本管理工具,只要适合自己的团队的开发流程和工作方式,并且代码管理顺畅就可以了。
⑺ 版本控制工具共有哪些各有什么区别
常见的版本控制软件有Visual SourceSafe,SourceAnywhere,Concurrent Version System(简称CVS),StarTeam和Subversion(简称SVN)。具体区别可以参考文章:常见版本控制软件汇总
⑻ 谁能推荐一款代码管理工具
推荐Sublime Text 2 + Gist的组合。
能够打造出一个能够很方便的进行创建、搜索插入、更新以及版本控制的代码片段管理器。
⑼ cvs,svn,git,github,maven这些都是版本管理工具吗
maven不是项目管理工具,maven出现的目的是为了解决当前jar依赖,冲突的问题。项目管理由cvs到svn到git一步步完善,svn和git差不多,只是git在代码冲突上有更好的处理
⑽ 请问什么是代码管理工具
即版本控制工具。
比较有名的有CVS、Source Safe、Clear Case等。
版本控制主要是协助在多人团队中控制代码,防止代码管理混乱、代码冲突,对代码拥有者进行权限控制等,是规范化软件开发不可或缺的重要工具