LYWILL设计运营 - 网站运营与推广、开发技术、成功项目展示。

VSS与SVN比较

 

vss是微软收费的,svn是开源免费的。
vss必须有客户端,svn可以用客户端,也可以用命令行模式,还可以用网页方式只读访问。
vss只支持windows,svn支持windows和linux。
vss是锁定-编辑-解锁模式,svn虽然也支持锁定,但默认是修改-冲突-合并模式。
vss的版本号对应的是单个文件,svn的版本号对应的是整个版本库。

目前用的最多的是svn,因为它开源、免费、有众多其它软件支持配合。

 

 详细对比表格:

项目

VSS

SVN

备注

原子性提交

Atomic commit

不支持

支持

SVN无论批量提交包含多少文件修改,只有当全部文件修改都成功入库,该提交才变得有效,才对其他用户可见;否则,无论任何原因造成中断,SVN都会自动“回滚”(rollback)操作。换一个说法,SVN保证所有的修改要么全部入库生效,要么个也不入库,即对版本库不作任何修改。

重命名

不支持

支持

这对Java和C#开发很重要,为了得到更好的代码,开发中需要经常进行重构,重构就经常涉及到文件的重构名,有时会对文件重命名再提交。

最小提交块

文件

smallest commit block is a file

a line is the smallest commit block

最小提交块是文件,这样通过看历史很难找出某次checkin到底checkin了什么东西

安全性

基于文件系统共享实现对服务器的访问,需要共享存储目录

SVN服务器有自己专用的数据库,文件存储不采用“共享目录”方式,所以不受限于局域网。客户端可以是不同的平台,都是通过tcp/ip和特定端口来访问SVN服务器,有不同安全等级的访问协议可供选择

是不是每次使用VSS的时候得登记一次服务器?麻烦了吧

离线开发操作

需要执行几个步骤也可以安全入库,但麻烦

不需要另外操作

 

模式

主要采用独占模式(checkout,modify,checkin)也可以使用(multi_checkout,modify,checkin,merge)模式。

使用update,modify,commit方式。每个人可以修改自己可以访问的任意代码,代码不会被一个人单独占用。可以多人修改同一份代码,并且每个人的修改结果都不会丢失。如果提交时SVN没有发现冲突,则代码可以直接入库。否则SVN会让你手工合并

 

Inte.net网络和远程协作

VSS8.0支持

更适合基于互联网协作开发,速度快

 

支持平台

Windows

Windows,Linux,Unix

works on windows, linux, unix, and even macs and also java which makes it ultimaly portable

 

支持开发工具

VS6,

VS.NET2005,

VS.NET2008(不过有个bug)

VSS Plugin for Eclipse

SVN for VS.net 2005 Plugin-AnkhSVN,

也支持vs.net2008,

SVN for Eclipse

 

客户端

VSS client

Windows下:TortoiseSVN,Linux下:RapidSVN

 

自动合并

据说VS2005中也支持了?

提供,如果不能自动合并,可以手工修改冲突

 

 

 

多版本分支的合并

 

版本分支

但在操作中VSS首先要做项目共享,引入要分支的项目或文件然后做分支操作

自动建立分支

 

异地开发

支持

支持

 

操作的便利性

安装、配置、使用均简单,很容易上手使用

安装、配置较复杂,但使用简单,只需对配置管理做简单培训即可

 

版本管理

手工

通过label来自定义一个版本号,可以解决部分项目管理的问题,但这是远远不够的,当一个产品根据用户需求产生一系列不同的项目版本时使用VSS将难以管理

提交时记录版本号,自动分支管理

VSS版本发行时只能手工挑选对应的版本文件进行发布。

与外围工具集成

 

各种各样的外围工具(主要是服务器端),满足多种需要。如果有需要也可以自己写插件或管理脚本,开放的架构,允许我们这样做。

 

费用

商业

proprietry

开源免费

open source (Apache/BSD-style license.)

 

标签: vsssvn

作者:lywill 分类:开发技术 浏览:2771 评论:0