qadrsung 2008-5-7 13:43
Firefly和svn在使用上主要有哪些区别?
从deluxe网站的Firefly介绍看,它和svn差不多,几乎是采用了svn的全部设计理念,只是在下面几个方面有所改进:
第一:支持服务器同步
第二:权限不仅可以做到目录级,还可以做到文件级。
第三:基于java,可以安装到任意平台。
愿与大家共同探讨
==================================
Firefly产品技术特点
以下为Firefly的功能特色介绍。
跨平台使用
汉星天的所有产品都是基于Java1.2开发的。 它可以在支持JDK1.2或更高版本的任何一个平台上运行,如Window NT,Windows 2000, Linux, Solaris, HP-UX, AIX等,其移植非常方便,设想用户以前是在Windows 2000 Server上使用该系统,而现在要运行在Solaris平台上,不需作任何改动,只需简单的拷贝和配置,在短短几分钟之内就可以完成。对于使用多个不同的平台进行软件开发、测试、运行的公司来说,一个统一、支持多平台的配置管理系统是最理想的。如果使用的配置管理系统只支持单一平台,那么势必给开发、测试、发布的各环节带来很大的不便,大量的时间将被浪费于代码的手工上传、下载中。
并发版本控制
Firefly支持多用户并行开发。它是一个基于Copy-Modify-Merge(拷贝、修改、合并) 的并行开发模式,团队的开发人员之间无须好象排队一样等待修改代码。开发人员可以并行开发、更改代码。并行开发可能会带来代码冲突,如两个同时修改了同一个文件,工具可以自动检测到代码冲突,并自动合并,或帮助开发人员手动解决。并行开发使团队开发快速、高效。
异地开发支持
Firefly 通过在每个开发地点建立复制、能自动或手动同步的存储库,为地理分布的开发团队提供很好的支持。支持两种异地开发模式:并行开发——每个地点在自己的工作空间中进行开发工作,互不干扰,然后通过归并的手段集成所有的开发工作;连续开发模式——开发团队在同一工作空间工作,通过控制权限的转换,实现顺序开发。
基于TCP/IP协议,支持不同的LAN或WAN
客户端和服务器端的程序完全通过TCP/IP协议来通信,因此不依赖于象NFS那样的共享文件系统,SCM系统更加安全可靠,能在任何局域网(LAN)或广域网(WAN)中正常工作。如果依赖于NFS等文件系统,则需要将存储区共享出来,客户端才能使用,这样使得存储数据极不安全,前段时间广泛蔓延的尼姆达(Nimda)和尼姆达二号病毒就是专门攻击网络上的共享文件夹,致使很多配置管理系统瘫痪,数据严重损坏。
一旦将文件从服务器上复制到用户自己的机器上,普通的用户操作是无需访问网络的,如编译、删除、移动。支持脱机工作、移动办公,在不同网络环境中提供100%的兼容性,所以无论在什么样的操作系统下,所有客户端程序和服务器端程序都是兼容的。
原子事务
在产品中引入了原子事务的概念。对于一个包含多个文件改变的入库操作都有一个单一的提交点,保证原子级的事务交易。例如,您为了修改一个Bug而修改了三个文件,当您提交这些改变时,会确保您在服务器端同时改变了这三个文件,或者一个都没改变,服务器的workspace能够保证数据的一致性。这样能够处理一些操作过程中的异常情况,比如提交过程中网络中断等。大多数SCM系统尚不支持这一功能,一个不完整的putback将有可能导致同事无法build。
Defect 跟踪的整合
Firefly完全整合于Butterfly(汉星天公司的错误跟踪系统)。在Firefly上的每一个改变,都能与Butterfly中的一个Defect、RFE (建议请求Request for Enhancement) 或Task相联接。这两个系统都提供了基于浏览器的用户界面,当你修改了一些文件,在putback到Firefly时提供了相应的Bug ID, 那么两个系统中都会建立相互的链接。此时,Butterfly中全面记载了整个开发的历史过程,包括谁作了修改,修改了什么,为什么修改;便于管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化。
Visual Studio集成
Firefly支持Microsoft SCC API, 用户能够在Visual Studio中直接使用Firefly进行源代码版本控制。
快速标记(标签)
在Firefly中标记一个workspace是极快的,并且对于数据库来说大小几乎是没有改变的。在workspace中建立一个检查点(Checkpoint)也是相当容易的。 标记Workspace有很多作用,如保存一个基线版本或发布版本。有了标记,查找一个文件的某一历史版本,如/src/main.c在alpha1版中的内容,将非常容易。
易于代码检验
Firefly在服务器上可以跟踪所有客户端的workspace,在putback到父workspace之前,用户可以把local workspace中的修改先上载到服务器端的镜像中。这样代码检验的人甚至不用离开座位,就可以通过使用浏览器浏览这些代码,检查哪些文件修改了、新加了、删除了、移动位置了,及修改哪些内容。
跟踪workspace的改变
Firefly中一个workspace的修改可以记录一系列的文件改变,并不只针对某一单一文件的改变。每个workspace修改基本上是为了完成一件工作,并且相应的有一个详细的描述。Firefly中workspace的修改记录着相关文件的新建、删除、移动、复制以及更新。这样我们可以从整体的角度了解项目的变化,例如可以迅速列出为了增加一个新功能而改动或新添的文件列表。
跟踪branch的改变
Firefly中一个branch的修改可以记录一系列的文件改变,并不只针对某一单一文件的改变。每个branch修改基本上是为了完成一件工作,并且相应的有一个详细的描述。Firefly中branch的修改记录着相关文件的新建、删除、移动、复制以及更新。这样我们可以从整体的角度了解项目的变化,例如可以迅速列出为了增加一个新功能而改动或新添的文件列表。
安全性
Firefly支持身份验证和访问控制。用户需要一个用户名/密码来访问Firefly的服务器,并且Firefly的服务器workspace能对权限进行配置,诸如以下操作update、bringover、putback和admin。这些都能帮助企业保护机密数据。
处理二进制文件
Firefly不仅可以处理文本文件,并且也可以管理二进制文件,修改后的二进制文件只存储其不同的部分,大大节省了存储空间。
文件的重命名
Firefly允许文件重命名和移动位置。这些操作也能象文件的修改操作一样传播给其他关联workspace。 大多数SCM系统对于文件改名、移动和删除的处理能力很低,而且使用繁琐。Firefly对这些操作有极好的支持。这个功能对于代码的组织是极为重要的。
数据的完整性
Firefly可以对于每个文件和每个delta(文件修改的部分)进行校验。因为这些数据很重要,每一个文件Firefly都提供冗余校验,使用MD5作为文件的校验和。文件的内容错误可能是由坏的存储(DIMM),出错的NFS,或是SPARC/Linux的缓存别名中的Bug所导致。这些错误都可以被Firefly发现。
Email通知
对于每一个workspace用户可以针对bringover/putback操作设定Email通知。这样,当一个开发人员putback了一些修改,系统可以自动通知其他相关人员。
qadrsung 2008-5-7 13:46
我以前用过VSS、CVS,最近一直再用SVN+Apache+TSVN+Trac,因为svn 1.5版即将发布,支持服务器同步。
偶想了解一下,FireFly和svn相比有哪些优势呢
daiqiang 2008-5-7 20:09
[quote]原帖由 [i]qadrsung[/i] 于 2008-5-7 13:46 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=89400&ptid=12338][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
我以前用过VSS、CVS,最近一直再用SVN+Apache+TSVN+Trac,因为svn 1.5版即将发布,支持服务器同步。
偶想了解一下,FireFly和svn相比有哪些优势呢 [/quote]
管理成本/学习成本/维护成本 SVN都比较高,宜用性明显比SVN好,如果你要详细点的,我可以传一份给你
qadrsung 2008-5-13 21:06
谢谢版主,给我发一份比较详细的吧。
[email]dxnb007@yahoo.com.cn[/email]
=============
今天我试着安装了一下Firefly,安装失败。可能与我的机器软件配置有关。
因为其他软件需要的.Net Framework 2.0已经先期安装,今天,我直接安装.net 1.0后,再安装Firefly的客户端时失败。
daiqiang 2008-5-13 22:39
[quote]原帖由 [i]qadrsung[/i] 于 2008-5-13 21:06 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=90837&ptid=12338][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
谢谢版主,给我发一份比较详细的吧。
[email=dxnb007@yahoo.com.cn]dxnb007@yahoo.com.cn[/email]
=============
今天我试着安装了一下Firefly,安装失败。可能与我的机器软件配置有关。
因为其他软件需要的.Net Framework 2.0已经先期安装,今 ... [/quote]
要安装.NET 1.1以上的框架,但必须统一,都是1.1,或者都是2.0,2.0可以用
vivixd 2008-5-22 18:20
帮楼主纠正一些Firefly功能介绍的错误:
1,Firefly不仅具有Copy-Modify-Merge的检出模式,也具备Lock-Modify-Unlock的检出模式,用户可以自由选择;
2,快速标签中提到的workspace是不是说错了,标签的英文表达应该是label才对啊?
3,跟踪workspace,这里的workspace在Firefly叫做变更集,workspace是工作区的意思,这和变更集可不是一个概念哦!
暂时就想到这么多。
hj_4936 2008-7-31 22:40
请部楼主,我以前用的是SVN,以后我们公司将正规化,想引进Firefly.请问如何将原有SVN中的版本库转到Firefly中。
daiqiang 2008-8-12 11:44
好像没提供这个功能,如果你们需要,可以让HANSKY公司的工程师帮你们定制处理这个问题
vivixd 2008-8-12 14:42
[quote]原帖由 [i]hj_4936[/i] 于 2008-7-31 22:40 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=107416&ptid=12338][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
请部楼主,我以前用的是SVN,以后我们公司将正规化,想引进Firefly.请问如何将原有SVN中的版本库转到Firefly中。 [/quote]
把SVN的版本库迁移到Firefly是可以实现的,只是实际操作步骤不是那么简单。Hansky的工程师应该能帮你解决这个问题,不过前提是你要用Firefly啊!