vss,svn,cvs工作机制
cvs与SVN的区别
1、版本编号方面例如,我们的版本库为A,其中有文件a,b,c。
在SVN中,新版本的版本号不是针对某个特定文件的,而是针对整个库而言的。
提交了5次和提交了6次,文件a有可能不同,也有可能相同,即1.0版和1.1版可能相同。
因为第6次提交有可能是因为文件b或c进行了修改。
而在CVS中则相反,每次更新可能只对文件的版本号进行修改,即a文件的1.0版和1.1版是肯定不同。
(在这里纠正一个概念,“文件a的第2版本”这个说法是错误的,应该是“文件a的第2次修改,即第二次Commit”)SVN的全局性版本编号为SVN带来了诸多的优势:如对目录或文件执行拷贝,无论涉及多少文件,SVN不需要对单个文件依次执行拷贝命令,仅仅需要建立一个指向相应的全局版本号的一个指针即可。
2、目录的版本控制CVS只能对文件进行版本控制,不能对目录进行版本控制,这就导致CVS失去了很多功能:1)没有移动操作CVS里没有移动(move)这个操作,当人为进行文件移动操作时,CVS只能注意到,一个文件在一个位置被删除了,而在一个新位置创建了另外一个文件。
由于它不会连接两个操作,因此也很容易使文件历史轨迹丢失。
所以使用CVS时,每个文件的位置一定要谨慎的选择。
2)没有重命名操作CVS里没有重命名(rename)这个操作,人为的对文件进行重命名会使得命名前后的文件失去历史联系,而记录历史本来是版本管理的主要目的。
3)没有拷贝操作CVS中没有拷贝(copy)这个操作,人为的拷贝对CVS而言,只能看到新的文件的增加,而不能记录拷贝源文件和目标文件之间的联系。
而SVN从很大程度上避免了这些不足,SVN将目录作为一类特殊的文件来处理。
当目录中的子目录/文件被删除、重命名、或新的子目录/文件被创建时,目录的内容将发生改变。
因此,SVN象记录普通文件的修改历史一样记录对目录的修改历史,当发生文件/目录的移动、重命名或拷贝操作时,SVN能够准确记录操作前后的历史联系。
Java+EE编程技术(二)结课论文
Java EE编程技术(二)结课论文题目: SVN技术设计者:王专业班级:计应150学号:4115200102016年 11月20日河南理工大学计算机学院绪言SVN是一个安全虚拟网络系统,它将系统整体的信息安全功能均衡合理地分布在不同的子系统中,使各子系统的功能得到最大限度的发挥,子系统之间互相补充,系统整体性能大于各子系统功能之和,用均衡互补的原则解决了"木桶原理"的问题。
SVN能在跨接Internet, Intranet, Extranet间的网络所有端点实现全面的安全,而且还能提供基于企业策略的信息管理机制以充分有效地利用有限的带宽。
SVN可以满足各种企业VPN的要求,通过为公司内部网络、远程和移动用户、分支机构和合作伙伴提供基于Internet的安全连接。
所以,我们可以将SVN 看成是VPN、防火墙、基于企业策略的信息管理软件集成在一起的Internet安全的综合解决方案。
在这样一个网络系统中,所有互联网服务器端和客户端都是安全的,并有一个信息管理机制以不断地通过这个外部网络环境动态地分析及满足客户的特定带宽需求。
SVN提供了目前基于网络实现的eBusiness 应用的安全服务目录绪言 (1)目录 (2)1.SVN简介 (3)2.SVN技术背景 (3)3.技术要点 (3)4.环境搭建 (4)5.SVN工作周期 (5)6.应用实例 (13)7.附录 (15)1.SVN简介S VN全名Subversion,即版本控制系统。
SVN是一个跨平台的软件,支持大多数常见的操作系统。
作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。
这些数据放置在一个中央资料档案库(repository)中。
这个档案库很像一个普通的文件服务器。
不过它会记住每一次文件的变动。
这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。
Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括了程序源码。
常见的版本控制软件
就离不开版本控制软件,在开发过程中采用版本控制软件,能够完整地保存开发中对应用程序每一个源文件所有的修改记录,充分地利用版本控制软件能够对软件开发进行
它在全球中小型软件企业中得到了广泛使用。不过CVS的部署比VSS要复杂一些。
SVN(Subversion)作为CVS的重写版和改进版,其目标就是作为一个更好的版本控制软件,取代CVS.总的来说,CVS在发展的过程中逐渐失去优势,已经不再适合现代开发,目前,
绝大多数CVS服务已经改用SVN.
以外,版本库非常像普通的文件服务器。用户可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。
下载TortoiseSVN
TortoiseSVN的官方下载地址是 /downloads ,普通Windows用户下载32位软件即可,下载地址后面还有中文语言包(Language packs)提供,安装完后可
卓有成效的管理。
常见的版本控制软件有VSe Safe)为微软的产品,较为易学易用,使用微软的产品进行开发通常都用这个,但是VSS只能在windows平台上运行,并且不是免费软件,安全性也不高,
因此应用并不太广泛。
CVS(Concurrent Version System)是免费开源的配置管理工具,其源代码和安装文件都可以免费下载。由于其简单易用、功能强大,跨平台,支持并发版本控制,而且免费,
目前流行的Google Code开源项目托管平台就是使用SVN进行版本控制。
Windows下的SVN客户端
TortoiseSVN是Windows下的SVN(Subversion)版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改
cvs与svn二
SVN1。
它本质上是一个文件共享系统(有人往里面放东西,有人在里面拿东西).2.它最重要的功能,就是在文件共享系统的基础之上,记录每一次的修改历史。
Harry锁定文件,Harry读取文件,Sally因而无法锁定并修改文件Harry修改文件,Harry解锁文件,Sally锁定,并看到最新的修改SVN和CVS一样,都是以“拷贝-修改-合并”模型为基础的。
但是SVN也提供了“锁定-修改-解锁”的方式(对于二进制文件的处理特别有用,这类文件必须序列化修改)关键词:Repository 、Working Copy、Check-out、Commit(或Check-in)、Update、Merge、Conflict3.SVN的版本是基于完整目录树的而CVS是基于单个文件的4.SVN可以记录目录的移动、复制、删除而CVS无法管理目录,只能用-p参数控制:当目录没有文件时,不要checkout它。
5.SVN的提交是原子操作(要么全成功,要么全失败),而CVS提交一个目录时,可能只成功了一半,导致状态不一致,很难恢复。
6.SVN可以记录文件、目录的修改、移动、复制、删除,而CVS只能够记录文件的修改和删除7.SVN支持元数据(Properties),并记录其历史。
在SVN中,元数据非常有用,而CVS不支持元数据。
8.SVN的比较算法是基于二进制的,而CVS必修区别二进制和文本,前者必须指定-kb,后者-kk,否则二进制文件很容易被破坏,却没有任何警告。
SVN的实践使用:在Windows下安装(Subversion命令行客户端),安装TortoiseSVN资源管理器集成客户端在Linux下安装Subversion命令行客户端和Eclips集成安装SubClipse插件。
基本命令:1.在自己的硬盘上建一个repository(库)svnadmin create c:/myrepos2.在新的repository中创建一个新的项目svn mkdir file://myrepos/myproject(这是个romote操作)。
cvs介绍
简介CVS 是 Concurrent Version System(并行版本系统)的缩写,用于版本管理.如果大家曾经参与过多人协作开发的项目,大家肯定有这样的痛苦经历:由于多个人同时修改同一个文件,自己辛辛苦苦修改的程序被别人彻底删除了.另外,如果你的软件/程序已经发布了三个版本,而这时候用户需要你修改第二个版本的东西,也许你会因为只保留了最新版本而痛哭流涕。
还有就是你对程序做了一些修改,但是修改很少,你只想给远方的同事发一个两个版本之间的差别文件,这样可以免于邮箱不够大,网速太慢之类的问题.为了解决类似这样的问题,以及诸如生成补丁文件,历史版本修改等,一帮黑客(褒义)在原先 Unix 体系里很成熟的 SCCS 和 RCS 的基础上,开发了 CVS。
(SCCS:Source Code Control System,RCS:Revision Control System)。
CVS 的基本工作思路是这样的:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序。
由仓库管理员统一管理这些源程序.这样,就好象只有一个人在修改文件一样.避免了冲突.每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。
用户做的任何修改首先都是在本地进行,然后用cvs 命令进行提交,由 cvs 仓库管理员统一修改.这样就可以做到跟踪文件变化,冲突控制等等.由于 CVS 是典型的 C/S 结构的软件,因此它也分成服务器端和客户端两部分。
不过大多数CVS 软件都把它们合二为一了。
我们这里就分别从服务器和客户端的角度讨论cvs的使用。
Cvs服务器安装首先确保系统安装有cvs:[root@mailxinetd.d]# rpm -qa|grepcvscvs-1.11.1p1-3如果命令输出类似于上面的输出则说明系统已经安装有cvs,否则就需要从安装光盘中安装cvs的rpm包。
一创建CVS属主用户:# useradd -d /cvsrootcvs# chmod 771 /cvsroot二、建立CVS仓库(初始化cvs)# sucvs$ cvs -d /cvsrootinit$exit#四、启动cvs服务器在/etc/xinetd.d/目录下创建文件cvspserver,内容如下:# default: on# description: The cvs server sessions;service cvspserver{socket_type = streamwait = nouser = rootserver = /usr/bin/cvsserver_args = -f --allow-root=/cvsrootpserverlog_on_failure += USERIDonly_from = 192.168.0.0/24}其中only_from是用来限制访问的,可以根据实际情况不要或者修改。
CVS工作规范(完整)
公司关于cvs的统一规定一、总体要求1.公司所有项目都要实现cvs的控制。
2.项目在公司立项时确定cvs的目录和权限,目录及其权限分配具体由配置管理员实现。
3.所有项目都应设置工作库、受控库和基线库。
4.客户测试版本只能由测试部提供,测试部进行内部测试的版本只能从基线库中获得。
二、Cvs密码及服务器密码的管理1.cvs密码由配置管理员王娜负责创建及修改。
2.cvs管理员密码只有技术总监、测试及质量部经理和配置管理员掌握,每月修改一次,并及时通知相关人员。
3.技术总监、需求经理、测试经理、技术经理及项目经理等人的个人cvs密码,由配置管理员每月修改一次,并通知相关人员。
4.项目组重要成员离职后,重设全部cvs密码。
三、目录设置1.基线库(1)设置售前、需求、开发、测试、实施、中间件及基础软件这7个文件夹。
(2)基础软件包括在公司内部的测试服务器上安装的每期使用的软件,包括操作系统、应用服务器软件、数据库服务器软件、第三方软件。
2.受控库设置制度规范、计划和监控、风险管理、沟通管理、培训管理和人员管理文件夹。
3.工作库(1)如果项目分期进行,则按项目的进展阶段在工作库中设置每期的文件夹,并且设置一个项目总体的文件夹。
如果项目不分期进行,则设置项目整体的一个文件夹。
(2)在每期中设置售前、需求、开发、测试、实施等文件夹。
(3)项目开始前或者每一期的每一个阶段开始前由各小组负责人设计出该小组工作库的目录和权限,由配置管理员实现目录及其权限。
四、权限设置1.基线库(1)所有文件夹只有配置管理员王娜具有读写的权限,需要经过正式评审并且由技术总监和测试部经理审批之后才能安排配置管理员入库。
(2)“售前”、“需求”、“开发”、“测试”、“中间件”文件夹,只有需求经理、技术经理、测试经理、项目经理、技术总监具有读的权限。
(3)“基础软件”文件夹,只有测试经理和技术总监具有读的权限。
(4)“实施”文件夹,只有项目经理和技术总监具有读的权限。
CVS介绍
2006-07-24 12:51一、CVS(Concurrent Version System)简介1、CVS机制CVS是RCS的前端工具,它是用于多用户并行开发的版本控制工具,它的最大特点是使用了“copy-modify-merge”机制而不是“lock-modify-unlock”。
通过使用 CVS生成一个存储文件的仓库(repository),存储在仓库中的每个目录叫做模块(module),在修改时将相应的模块检出到工作目录中(working directory)生成对应的目录,所有的修改都在工作目录中完成,修改完成后再提交到仓库中生成新的版本号,并加以保存。
CVS把文件保存在一个名叫仓库(repository)的地方,仓库中保存的文件并不是每个版本的副本,而是可以从任意版本回溯到初始版本的一些代码的主控信息,这样,就节省了大量的存储空间风靡全球的LINUX操作系统就是在大型分布式CVS系统上开发成功的。
全球最著名的软件工程软件提供商Rational Sofdtware的ClearCase是CVS 的替代产品,比CVS稍有增强2、CVS的版本编号分为系统编号和用户编号系统编号是CVS自动给版本编的号码。
CVS自动管理系统编号。
单分支版本演化以1.0->1.1->1.2-...的方式顺序进行。
用户编号是用户为了自己控制版本号码,或者统一版本号码,而对某一版本指定的编号。
二、CVS建议开发流程为避免其他人更新时导致无法编译的错误,建议先在开发环境中开发,编译通过后在没有大的改动情况下放入CVS中进行管理,然后发布到测试及生产环境。
以总公司网站开发为例,流程如下:开发环境(192.168.16.33) -> CVS(192.168.16.38) -> 生产环境(192.168.16.34)三、WinCvs的使用1、如何设置本地工作目录:admin -> preference -> WinCvs -> HOME folder2、如何列出CVS服务器上的modules?admin -> Macros admin -> Get the cvs modulesCVSROOT 模块下的文件modules控制着modules的显示,由系统管理员管理。
vss是什么意思vss相关含义
VSS是什么意思VSS相关含义想必大家都不怎么常见“VSS”这个词吧,那不如一起来看看为大家精心整理的“vss是什么意思vss相关含义”, 欢迎大家阅读,供您参考。
全称:Visual Source Safe任务:负责项目文件的管理适用于:负责项目文件的管理概述:VSS的全称为Visual Source Safe。
作为Microsoft Visual Studio的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用任何软件项目。
管理软件开发中各个不同版本的源代码和文档,占用空间小并且方便各个版本代码和文档的获取,对开发小组中对源代码的访问进行有效的协调。
基本介绍VSS即Var Sect Sweep,就是可变剖面扫描,也就是常说的变截面扫描,是PR0E的一种建模工具。
2. Cisco VSS既虚拟交换系统是一种络系统虚拟化技术,将两台Cisco® Catalyst®6500E/7600系列交换机组合为单一虚拟交换机,从而提高运营效率、增强不间断通信,并将系统带宽容量扩展到。
在初始阶段,VSS将使两台物理CiscoCatalyst 6500系列交换机作为单一逻辑虚拟交换机运行,称为虚拟交换系统1440 (VSS1440)。
Volume Shadow copy ServiceVSS (Volume Shadow copy Service,卷映射拷贝服务),最初是在Windows Server xx SP1中引入的存储技术。
它通过在卷管理模块上加入快照功能,在此基础上就可以创建基于时间点(Point-In-Time)的映像(Image),从而实现数据的快速备份和恢复,用户也无需害怕因无意删除数据而造成的困扰,这就是VSS的关键所在。
由于VSS所表现的优良特性, 因此在Microsoft最新的Vista操作系统中,也加入了该功能。
VSS能够让存储基础设备(比如磁盘、阵列)创建高保真的时间点映像,就是映射拷贝(Shadow Copy) o它可以在多卷、或者单个卷上创建映射拷贝,同时不会影响到系统性能。
vss、svn……都属于同一种工具: VCS(Version Control System)
TortoiseSVN图标
normal
modified
conflict
added
deleted
non-versioned
ignored
readonly
locked
SVN日常操作
• Checkout • Update • Commit
Case 1
Case 1(2)
Case1(3)
SVN日常操作(2)
• 解决冲突 • 查看log
Case2
Case2(2)
Case2(3)
《盟军》项目svn提交规则
• 必须保证本地编译通过,包括Debug、 Release版本 • 必须保证程序运行、退出正常;保证退出 时没有内存泄漏 • 可以不保证版本没有运行时错误(谁能保 证没bug?) • 对于比较大的修改或者新写的整个模块, 要由主程进行过代码检查后再提交 • 周末下班前一小时完成代码提交
• 优点:
– 使用简单 – 与MS开发工具整合较好 – 较适合二进制文件/Word文件管理
• 缺点:
– 只能在内部局域网环境下访问 – 不适合需要很强合作性的程序开发团队
VSS日常使用
• • • • • 设置“工作文件夹(Working Folder)” 添加新文件 添加新文件夹 删除文件/文件夹 / 文件/文件夹重命名
100Βιβλιοθήκη 合并 修改105查看同时别人所做的修改 更新到服务器最新的版本
VCS基本术语
• • • • • • • • 基线(Baseline) 档案库(Repository) 工作版本(Working Copy) 取出(Checkout) 更新(Update) 提交(Commit) 变更(Change) 变更列表/变更集(Change List)
svn 工作原理
svn 工作原理Subversion(SVN)是一个版本控制系统,用于跟踪和管理文件和文件夹的变化。
它具有集中式的工作原理,其中有一个中央版本库存储所有文件和变更历史记录。
以下是SVN的工作原理:1. 版本库:SVN使用一个称为"版本库"的中央储存库来存储文件和变更历史记录。
版本库位于服务器上,并存储为一个仓库文件夹。
2. 检出:要开始使用SVN,用户需要将版本库的副本(工作副本)下载到本地计算机上。
这称为"检出"操作。
检出操作将在本地计算机上创建一个工作副本,该副本包含与版本库相同的文件和文件夹。
3. 提交:一旦用户对工作副本进行了修改,他们可以选择将这些变更保存回版本库中。
这称为"提交"操作。
提交将会将工作副本中的变更上传到版本库,以便其他用户可以查看和应用这些变更。
4. 更新:其他用户可能会在版本库中进行提交操作,这些操作会导致工作副本变得过时。
为了获取最新的更改,用户需要使用"更新"操作,将版本库中的变更合并到他们的工作副本中。
5. 冲突解决:当多个用户对同一个文件进行修改并提交时,在更新时可能会发生冲突。
冲突会导致更新操作失败,并需要手动解决。
用户需要比较不同版本之间的变更,并手动合并冲突。
6. 分支和合并:SVN支持创建分支,这是从版本库中创建的并行开发线。
分支允许团队在不影响主线开发的情况下进行独立的工作。
用户还可以使用"合并"操作将分支中的变更合并回主线或其他分支中。
7. 历史记录:SVN记录每个文件和文件夹的完整变更历史记录。
用户可以查看以前的版本,并比较不同版本之间的差异。
总的来说,SVN的工作原理涉及通过检出副本和对副本进行修改和提交来管理文件和变更。
不同的用户可以在同一版本库中进行并行工作,在需要时合并他们的更改和解决冲突。
CVS简介
CVS[编辑本段]CVS系统CVS是一个C/S系统,是一个常用的代码版本控制软件。
主要在开源软件管理中使用。
与它相类似的代码版本控制软件有subversion。
工作模式如下:CVS服务器(文件版本库)CVS(Concurrent Version System)版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。
实际上CVS可以维护任意文档的开发和使用,例如共享文件的编辑修改,而不仅仅局限于程序设计。
CVS维护的文件类型可以是文本类型也可以是二进制类型。
CVS用Copy-Modify-Merge(拷贝、修改、合并)变化表支持对文件的同时访问和修改。
它明确地将源文件的存储和用户的工作空间独立开来,并使其并行操作。
CVS基于客户端/服务器的行为使其可容纳多个用户,构成网络也很方便。
这一特性使得CVS成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的首选。
所有重要的免费软件项目都使用CVS作为其程序员之间的中心点,以便能够综合各程序员的改进和更改。
这些项目包括GNOME、KDE、THE GIMP和Wine等。
CVS的基本工作思路是这样的:在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序。
由源代码库管理员统一管理这些源程序。
每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地,然后用户可以在本地任意修改,最后用CVS命令进行提交,由CVS源代码库统一管理修改。
这样,就好像只有一个人在修改文件一样,既避免了冲突,又可以做到跟踪文件变化等。
CVS是并发版本系统(Concurrent Versions System)的意思,主流的开放源码网络透明的版本控制系统。
CVS对于从个人开发者到大型、分布团队都是有用的。
它的客户机/服务器存取方法使得开发者可以从任何因特网的接入点存取最新的代码。
它的无限制的版本管理检出(check out:注1)的模式避免了通常的因为排它检出模式而引起的人工冲突。
软件配置管理工具
软件配置管理工具1.软件配置管理基础随着计算机应用范围的日益广泛,应用软件的规模及复杂度日益广泛深入,应用软件的规模和复杂程度日趋大型化,复杂化,这就导致软件开发的方式越来越强调团队的协作开发,而在这种开发方式下,会遇到很多问题,例如:需要将整个软件的版本恢复到以前的某一时间的状态,限制随意修改程序,或者控制某一程序在同一时间内只能一个开发人员修改等等。
为了解决这些问题,提高软件产品和软件项目的质量及软件开发过程中的管理水平,更好地为以后的软件开发工作提供有效的服务,必须采用先进的管理手段,实现软件产品和软件项目源码的科学管理。
软件配置管理工具应运而生。
2.软件配置管理工具软件配置管理工具有很多,例如:Starteam、ClearCase、VSS和CVS等。
Starteam和ClearCase更适合庞大的团队和项目,并且价格不菲,所以并不常用。
目前使用比较广泛的是VSS和CVS。
两者在使用上有各自的优势和不足。
VSS的全名是VisualSourceSafe,是微软公司开发的VisualStudio开发套件中的软件配置管理部分,有非常好的技术支持和非常详尽的技术文挡。
VSS适合在局域网范围内,以Windows平台为主的中、小项目,以文件管理为主要功能,使用方便,学习成本低,对服务器仅需要快速大容量的存储器也是它的优势。
CVS的全名是ConcurrentVersionSystem,是一种可以并发的版本控制系统。
它是一个开源项目,可以直接从网站下载最新的原代码。
CVS可以满足局域网和广域不同的网络条件,提供不同级别安全性选择,在一台专门的服务器配合下,客户可以使用任何平台开发项目。
CVS本身是在unix系统上开发的,在unix下提供的是命令行使用模式。
在Windows平台下你可以选择用CVSNT搭建服务器,用WinCvs作为客户端。
CVS对于已经完成了开发过程进入项目维护阶段,或者进入项目升级阶段的项目,可提供完善的软件配置管理的支持,不过在学习和操作上学习成本比较高。
VSS、CVS、SVN和ClearCase几种配置管理工具的评估和比较
VSS、CVS、SVN和ClearCase等配置工具的评估和比较版本 <1.0>修订历史记录目录1 概述 42 主要功能说明 42.1 Internet网络访问和远程管理 52.2 并行开发支持 62.3 跨平台开发支持 62.4 开发操作使用的便利性 62.5 信息安全性 73 性能详述 73.1 VSS 73.2 CVS 73.3 SVN 83.4 ClearCase 163.4.1 控制任何文件的版本 173.4.2 在版本树中组织元件发展的过程 173.4.3 使用常见的检出/编辑/检入范例 183.4.4 通过分支功能支持并行开发 193.4.5 自动的比较和版本间的归并 191 概述Visual SourceSafe:微软的版本控制工具,仅支持Windows操作系统。
虽然简单好用,但是仅适用于团队级开发,不能胜任企业级的开发工作。
Clearcase:IBM旗下Rational公司(2003年被IBM收购)的一款重量级的软件配置管理(SCM, Software Configuration Managemen)工具。
与CVS和VSS不同,Clearcase涵盖的范围包括版本控制、建立管理、工作空间管理和过程控制。
从最初的软件配置计划,到配置项的确立,从变更控制到版本控制,Clearcase贯穿于整个软件生命周期。
Clearcase支持现有的绝大多数操作系统,但它的安装、配置、使用相对较复杂,并且需要进行团队培训。
CVS:Concurrent Versions System。
CVS 是有着三十年以上的时间的考验。
CVS是开放源代码软件世界的一个伟大杰作,由于CVS功能强大,跨平台,支持并发版本控制,而且免费,所以它在全球中小型软件企业中得到了广泛使用。
CVS最大的遗憾就是缺少相应的技术支持,许多问题的解决需要自已寻找资料,甚至是研究源代码。
CVS是一个典型的服务器/客户端软件,有UNIX版本的CVS 、Linux版本的CVS和WINDOWS版本的CVS。
SVN使用手册(简易版)
SVN使用手册——命令行模式1SVN概述SVN的全称Subversion,和VSS一样用来有效地管理代码和版本。
同样我们可以进行修改、对比版本、获得版本的历史信息等操作。
1.1 SVN使用环境及安装SVN的使用环境:SVN可在Linux系统使用,安装系统时如果选择了自带Subversion,无需安装即可使用命令行。
Windows系统需安装Subversion以便在命令行中使用SVN命令;也可安装TortoiseSVN(“小乌龟”),不用敲SVN命令直接通过右键菜单执行。
目前北研所的SVN使用基于TCP/IP协议的Apache服务器,使我们可以通过http地址来访问版本库。
平台Linux系统Windows平台操作方法命令行浏览器命令行界面/右键浏览器安装方式安装Linux的时候选择“开发用”则自带,否则需另安装SVN包。
无需安装,直接在地址栏输入版本库的http地址安装Subversion安装TortoiseSVN(“小乌龟”)无需安装,直接在地址栏输入版本库的http地址优缺点能查看最新及历史版本,能修改只能查看最新版本,不能修改能查看最新及历史版本,能修改能查看最新及历史版本,能修改,右键直接操作。
只能查看最新版本,不能修改本文介绍在Windows平台下SVN命令行工具svn的使用。
安装文件:Subversion ——svn-1.4.6-setup.exe TortoiseSVN——TortoiseSVN-1.4.6.11647-win32-svn-1.4.6.rar文件的具体地址,请参考下文“2.1”章节的介绍。
1.2SVN工作原理说明1.2.1版本库(repository)SVN所有的数据都存储在版本库中并被任意客户端用户分享。
客户端用户通过网络连接到版本库,读写这些文件并使其他人可以看到这些修改。
1.2.2工作拷贝(workcopy)工作拷贝是版本库中文件和目录在本地的映射。
用户并行工作,各自修改本机的私有目录和文件,最终把修改“提交”至版本库成为最终的版本。
农行考试—复习资料整理
一、农行规章制度1. 为达到有效管理,软开使制度化、流程化和规范化三条主线贯穿始终。
2. 2008年,开发中心确定了“创新、服务、管理、发展”的工作理念,管理工作放在了突出位置。
3. 外协人员在入场前需与中国农业银行签订《外协服务人员保密协议》,服务期间接受中国农业银行的管理,履行考勤管理、安全管理、日常行为管理等方面的管理制度。
4. 晚到或擅自提前下班视为迟到或早退,以打卡系统记录为准。
5. 外协人员试用期为一个月。
6. 外协人员在试用期间迟到、早退累计5次者将提出外协技术人员资源池,并列入黑名单,外协服务商不得再以其他形式提供此外协人员。
7. 无故旷职天数达到项目总服务天数10%者,将剔除外协技术人员资源池。
8. 事假累计天数占项目总服务天数的10%为限。
9. 试用期外协人员事假天数累计达到10天者将剔除外协人员资源池。
10. 外协人员请假或出差,必须提前填写《外协人员请假/出差表》,由项目经理签字认可后,送外协服务资源管理部门备案,否则以旷职处理。
特殊情况,事后5个工作日内将《外协人员请假/出差表》补交外协服务资源管理部门,否则也视同旷职。
11. 外协服务信息管理系统正式运行前,外协人员在服务期间每周填写《外协服务人员工时周报》,记录每周工作内容,由所服务项目的农业银行项目经理签字确认后,交所属外协服务商汇总报送中国农业银行软件开发中心技术总监室。
12. 外协服务信息管理系统运行后,外协人员需每日正式工作前登陆外协服务管理系统,做签到操作,每日正常工作开始。
在每日工作结束,在外协服务管理系统中做签退操作,并填写本日工作内容,为自己核定工作时间,提交农行项目经理审批。
13. 对在历次服务考核中出现单次考核得分低于60分或累计两次考核得分低于70分的服务商(技术人员)取消其服务资格。
14. 一个季度内,考核不合格的外协人员人数占到外协服务商在资源池中总人数30%比例以上的外协服务商,取消服务资格。
SVN与VSS的对比
SVN使用指南1 引言在版本管理方面应用较为广泛的版本管理软件主要有SVN(CVS)和VSS两类。
其中SVN与CVS是Unix/Linux平台上广泛使用的版本管理软件,VSS则是Microsoft推出的版本管理器。
CVS是开放源代码软件,由于其简单易用、功能强大、跨平台支持,在全球中小型软件企业中得到了广泛使用。
其最大的问题就是缺少相应的技术支持,许多问题的解决需要自已寻找资料,甚至是读源代码。
CVS是一个典型Server/Client端软件,优点是CVS支持远程管理,项目组分布开发时用CVS。
SVN是CVS 的主要作者在CVS基础上进行开发的,用以替代CVS。
SVN的设计目的就是针对CVS的一些弱点进行改进。
SVN目前发布了1.6正式版,已经相当稳定可靠了。
VSS是微软的产品。
简单好用,局域网中用VSS。
用于Team级还可以,对于企业级就有些勉强了,另外,VSS仅支持Windows 平台。
2 版本管理工具的对比2.1 支持重命名为了得到更好的代码,开发中需要经常进行重构,重构就经常涉及到文件的重构名,重命名对Java开发来说非常重要,SVN支持重命名。
而重命名中VSS中是不被支持的。
2.2锁定文件锁定文件会导致重构不方便,另一方面,VSS不能离线开发,而SVN则不同,员工可以带回家或出差时继续开发,回来后提交就行了。
2.3 多平台支持SVN支持多个平台下的操作;VSS仅支持Windows平台。
2.4 外围工具的集成SVN有多种用于服务器端的外围工具,满足多种需要。
如果有需要,也可以自己写插件或管理脚本,开放的架构,允许我们这样做。
而VSS不具备这些优势。
2.5 客户端的易用性SVN客户端TortoiseSVN比VSS客户端更方便用户使用。
SVN配套的Tortoise SVN直接挂在了explorer的右键菜单功能上,方便用户操作,在每次刷新或者更改文件、目录等都会自动与SVN server比较,哪些目录下文件有更新一目了然,文件夹上面的惊叹号提醒用户Update,获得最新的修订版。
VSS权限管理系统
实用标准文案Visual SourceSafe中的权限管理如今随看软件项目规模的日益增大以及项目复杂性的不断加剧,软件配置管理(SCM )的重要性已越来越受到大家的认可。
许多优秀的软件配置管理工具也应运而生,使得我们能够轻松有效地管理我们的软件项目。
作为这其中的_员, Microsoft Visual SourceSafe具有简单易用、方便高效、与Windows操作系统及微软开发工具高度集成等优点。
今天,我们就来讲讲VSS中的权限管理。
首先我将讲解VSS中权限机制实现的原理,这里面涉及到VSS的默认安全访问机制、项目安全等内容,接看我将告诉实现权限机制的具体方法,最后我将结合一个软件移交项目的具体情况来谈谈权限管理如何应用到实际的项目过程中。
—、VSS默认的安全访问控制每次你安装VSS以后,系统自动激活默认的安全访问控制机制。
这套机制非常简单,它包括两个等级的权限:1.只读权限:用户可以查看VSS数据库中的所有对象,但是不能够修改;2.读写权限:用户可以查看和修改VSS数据库中的任何对象。
每次你增加新用户的时候,你可以决定该用户的权限等级。
在"Add User" 对话框中包含一个"Read Only"复选框,你可以通过它来确定用户具有的权限。
我们前面说过这只是个极其简单、粗线条的解决方案,但同时也是最简单的。
在实际过程中,你可能需要更细化的权限分配,甚至希望每个文件针对不同的用户都能设置不同的权限。
那我们就得亲自动手设置我们项目的安全机制。
注意:SourceSafe中的所有安全设置都是在Visual SourceSafe精彩文档.实用标准文案Administrator中进行的,所以在深入以下细节之前,你必须确认一件事情:你的Admin密码足够安全,除你之外没有任佢J人可以随心所欲地进入Visual SourceSafe Administrator,,否则,一切安全考虑都是徒劳。
代码管理工具SVN-CC-GIT-VSS-CVS详细使用说明书最终版
代码管理工具SVN、CVS、CC、VSS、GIT使用说明书1 简介Author :龙叔1.1 目标subversion的使用技巧很多,这里只总结了最小使用集,即主要的基本功能,能够用来应付日常工作。
svn是版本管理工具,譬如团队进行项目开发,项目代码都储存在服务器上,成员可用svn在本地获得并更新代码控制服务器有很多..ClearCase(成本低) SVN CVS.建议学CC SVN GIT VSS(*^__^*) 嘻嘻……TortoiseSVN安装双击...next--->>next ---->>finish 它会提示你是否重启电脑..最好重启一下...2 在eclipse上安装SVN插件1. 获取插件文件安装的方法(三个)方法一:把subclipse-1.6.17.zip文件夹解压之后的所有文件分别都丢入eclipse根目录下..出现提示是否覆盖文件时,选择“是”方法二|D:\devsoft\eclipse-j2ee的dropins目录下新建eclipse文件夹,再在eclipse文件里面分别新建features和plugins文件夹(推荐使用..不会有污染.其他插件)然后把subclipse-1.6.17.zip文件夹解压之后的所有文件分别都丢入刚刚你在eclipse文件夹features和plugins文件夹再重启Eclipse/Myeclipse..方法三、Help---->>Install New Software2. 验证安装插件成功安装插件成功后,可以在eclipse的windows->Preferences中的Team中看到SVN选项,如下图:3. SVN的权限分配如图所示三部曲passwd文件authz文件svnserve.conf3 SVN使用说明注意:要建一个代码库(资源库位置)网上下载TortoiseSVN-1.7.1.22161.msi工具双击安装即可.也可以安装一个命令版本新建资源库.Setup-Subversion-1.6.5.msi安装:Setup-Subversion-1.6.5.msi之后--->>>>建库....3.1 如何每次都要敲svnserve -d -r 加资源库名称解决每次启动都要敲svnserve -d -r 加svn资源库的问题运行cmd命令sc create svnserve binpath= "C:\Program Files\Subversion\bin\svnserve.exe --service --root D:\svn\svnrepos svnrepos是资源库名称进入你在那个盘建的库的svnresoucre的目录下conf的passwd给用户名和密码..找到svnserve.conf文件打开找到#password-db = passwd 把注释去掉..不去掉会报...Cmd命令窗体切记不要关闭否则报用svnserve -d -r 资源库文件夹回车即可启动启动svn命令就是那个给密码权限的svnserve.conf的名称加上 -d -r 加上库文件夹名称回车即可...3.2 如何向SVN服务器上传项目代码由于每个组只开发一套代码,因此不需要每个人把自己的代码上传服务器,最终选择一个人的代码框架上传SVN,其他人从SVN服务器下载代码框架如下图,右键项目工程,选择Team->Share Project如下图,选择SVN输入URL地址:说明:输入本地的svn的URL准备开始共享项目到SVN服务器-----本机的svn库如下图,提交代码到SVN服务器上如下图,注意选择src->java下的源代码提交到SVN服务器,本地产生的build,dist等文件夹不要上传到SVN服务器3.3 如何连接SVN服务器,从SVN服务器下载代码如果项目团队小组的代码已经上传到SVN,可以通过下面的方法把svn代码加载到eclipse中:新建项目,选择“其他”选项从SVN中签出项目,如下:输入自己组的URL地址:其他用默认从svn可以check out到eclipse选择你要的项目check out点击finish即可....(*^__^*) 嘻嘻……3.4 如何更新项目的代码文件如下图,更新代码,可以检查服务器上的代码是否有更新,如果有自动替换本地的代码3.5 如何查看历史版本的代码通过选择“查看资源历史记录”3.6 如何比较不同版本的代码差别右键代码文件,选择“比较”,可以选择和哪个版本的文件进行比较比较的结果显示3.7 如何删除SVN服务器上不用的SVN文件夹连接资源库,然后选择要删除的文件或文件夹,进行删除3.8 如何鉴别代码是本地代码,还是服务器代码3.9 如何把修改的代码上传到服务器3.10 通过IE查询项目代码在IE中输入自己URL地址,和自己的域用户名+密码,可以通过IE看到哪些代码在SVN服务器上。
cvn和cvs的区别许多牛人总结
开发SVN的理由是什么?上次在googletechtalk上看了Linus对于版本控释系统的评价,现在linux内核开发用git,以前用的是bitkeeper。
他对SVN的评价是,历史上最没有意义的一个项目。
大家用SVN的动机是啥?个人认为,也许svn在内核开发方面“最没用”,如果真的那么没用,为啥很多项目转向使用svn呢……呵呵……偶个人比较喜欢svn,偶觉得在某些方面它比cvs好懂,有些功能(比如对目录的处理)比较吸引人:)1:图标覆盖功能(仅限TortoiseSVN),方便的看出当前文件的版本控制状态。
2:提交时所有文件版本号统一增1(虽然有的文件一点都没有变),较之cvs每个文件一个版本,好记且提取历史版本方便。
3:便捷的文件操作功能(仅限TortoiseSVN)实现与Window无缝链接,目录操作就是一个优势)。
本人看重第2点....去年过的一个项目同时用到SVN和CVS当时代码是用CVS控制,项目资料及文档由SVN控制,应该说各有长处吧楼上小白了,svn就是用来取代cvs的,对代码的控制是做的最好的一部分。
能够重构,能够对目录进行操作。
就这两条就够让我转向svn了。
版本控制平民化应该是主要的原因。
linux下的版本控制配置一般人搞不了而subversion的配置方法很简单且强大,简单是说配置容易上手强大是说可以精确到目录级别的控制。
以前总结的:1、目录版本控制CVS 只能追踪单独档案的历史, 不过Subversion 实作了一个“虚拟” 的版本控管档案系统, 能够依时间追踪整个目录的更动. 目录和档案都被纳入版本控管. 最后, 客户端有真正可用的move (移动) 与copy 指令.2、不可分割的送交一个送交动作, 不是导致所有更动都送入档案库, 就是完全不会送入. 这让发展人员以逻辑区段建立更动, 并送交更动.3、纳入版本控管的描述数据(Meta-data)每一个档案与目录都附有一组隐形“性质(property)”. 你可以自己发明, 并储存任何你想要的键值对. 性质是随着时间来作版本控管的, 就像档案内容一样.4、选择不同的网络层Subversion 有抽象的档案库存取概念, 可以让人很容易地实作新的网络机制. Subversion “先进” 的网络服务器, 是Apache 网页服务器的一个模块,它以称为WebDA V/DeltaV 的HTTP 变体协议与外界沟通. 这对Subversion 的稳定性与互通性有很大的帮助, 而且额外提供了许多重要功能: 举例来说, 有身份认证, 授权, 在线压缩, 以及档案库浏览. 另外也有小而独立的Subversion 服务器程序, 使用的是自订的通讯协议, 可以很容易地透过ssh 以tunnel 方式使用.5、一致的数据处理方式Subversion 使用二进制差异运算法, 来表示档案的差异, 它对文字(人类可理解的) 与二进制档案(人类无法理解) 两类的档案都一视同仁. 这两类的档案都同样地以压缩形态储存在档案库中, 而且档案差异是以两个方向在网络上传送的.6、HackabilitySubversion 没有任何的历史包袱; 它主要是一群共享的C 链接库, 具有定义完善的API. 这使得Subversion 便于维护, 并且可被其它应用程序与程序语言使用.个人认为有几点:1.可以控制到目录(并可进行共享)2.每次提交的事务性3.统一的存储方式(二进制),并能智能比较差异。
增量开发软件项目版本管理关键问题解析
增量开发软件项目版本管理关键问题解析摘要:介绍了版本管理的概念、意义,提出了增量开发生命周期软件项目在版本管理过程中必须关注的两个问题及其解决对策。
关键词:软件产品;增量开发;版本管理1 版本管理概述一款软件产品在生命周期中会形成多个版本,当前版本软件发生功能变更、性能调优、修正bug等多种情况时,需通过版本升级来区分新旧、标识变化。
软件版本管理,是对软件不同版本进行标识、跟踪和控制的过程,是软件配置管理内容之一。
其手段包括集中管理、跟踪记录、访问授权、变更升级、并发保护和追溯比较等。
有效的版本管理,对于团队开发项目而言具有重要意义:①可避免未经授权的阅读和修改,保证安全;②可防止多人并发访问的冲突和相互覆盖,实现团队协同开发;③可防止意外的文件丢失、修改丢失;④提供区分和检索不同版本软件变化的手段,可对比排错和修改追踪;⑤可根据需要回退软件版本;⑥能对版本进行序列修改、分支合并。
2 版本管理工作准备版本管理贯穿软件项目始末,是项目顺利开展进行的有力支撑,甚至在一定程度上影响项目的成败。
要做好版本管理工作,需掌握基本的原则方法,根据项目需要选择并熟练应用版本管理工具,将管理意识落到实处。
要注意下列准备工作:(1)软件项目的版本管理是广义管理,其控制内容除包括源代码,还包括相关文档,这些要素均应纳入集中统一管理范畴。
(2)设立管理员,掌握版本管理服务器,拥有权限分配职能。
(3)制定规范,约束成员行为。
人是项目成败最为关键的因素,规范的行为可以有效避免不良后果,培养全团队的版本控制意识,改正不良习惯。
(4)选择适合的管理工具,开展工具使用培训。
常用的版本管理工具很多,包括VSS、CVS、SVN、PVCS、StarTeam、Clearcase、GIT、Mercurial、Monotone等,适用于不同规模的软件产品、开发团队,可根据实际需要作出选择。
下面简单介绍两种:(1)VSS,Visual SourceSafe。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SVN,CVS,VSS不同版本模型工作方式比较
VSS:采用锁定——修改——解锁模型。
该模型限制太多,用户必须线性单用户工作。
并发协作性差,如果两开发人员在同一时刻需要修改同一文件,则只能是等待某一开发人员修改并解锁后,再次从版本服务器获取最新更改并锁定。
CVS:采用复制——修改——合并模型。
该模型相比VSS有了较大改进,多用户可以同时协作开发。
并行性好。
多用户可同时获取版本控制服务器上最新的同一文件,建立私用工作副本。
并修改各自的副本,最终将各自的副本合并成最终版本。
不过麻烦之处就是必须手工核对合并操作的正误。
还有就是某些情况(虽然很少)比如需要同时修改一张图片等使得最终合并无法操作的情况,此时VSS 的锁定——修改——解锁模型单线工作相对可以解决该问题。
SVN:默认采用CVS 复制——修改——合并模型。
但是自从1.2版本以后同时支持VSS的锁定——修改——解锁工作模式。
兼并了两者的长处。
来看看SVN的工作副本是如何跟踪版本库的呢?
1.本地副本未修改且是最新的。
即本地文件中没有修改的内容,且版本控制服务器上也未有对此文件新提交的修改。
此时SVN的commit 和update操作都不作任何反应。
2.本地副本已修改且是最新的。
即本地文件有修改,但是版本控制服务器上没有对此文件新的提交修改。
此时SVN的commit操作会成功提交。
update操作不做任何事情。
3.本地副本没有修改且已经过时。
即本地文件没有修改,但是版本控制服务器上对此文件已经有新提交修改。
此时SVN的commit操作不作任何事情,update操作将会更新副本到最新的版本。
4.本地副本已修改,且也已经过时。
即本地文件已经有了修改,且版本控制服务器上的此文件也有人有了新的提交修改。
此时commit提交操作失败。
需要update 操作,获取新版本,此操作会自动智能合并新版本修改和本地版本内容修改。
此过程中如果出现冲突,如修改了同一个地方的内容,则此时需要用户手工解决冲突。