svn技术(SVN特点)

本文导读目录:

什么是SVN以及SVN的作用

SVN = 版本控制 + 备份服务器简单的说,您可以把SVN当成您的备份服务器,更好的是,他可以帮您记住每次上传到这个服务器的档案内容。并且自动的赋予每次的变更一个版本。

通常,我们称用来存放上传档案的地方就做Repository。用中文来说,有点像是档案仓库的意思。不过,通常我们还是使用Repository这个名词。基本上,第一次我们需要有一个新增(add)档案的动作,将想要备份的档案放到Repository上面。日后,当您有任何修改时,都可以上传到 Repository上面,上传已经存在且修改过的档案就叫做commit,也就是提交修改给SVN server的意思。针对每次的commit,SVN server都会赋予他一个新的版本。同时,也会把每次上传的时间记录下来。日后,因为某些因素,如果您需要从Repository下载曾经提交的档案。您可以直接选择取得最新的版本,也可以取得任何一个之前的版本。如果忘记了版本,还是可以靠记忆尝试取得某个日期的版本。

如何利用Netbeans连接SVN之技术分享

一.版本:

1.

Netbeans连接SVN的版本是Subversion1.4.6,简称svn,是鼎鼎大名的cvs的继任者,使用方法和cvs几乎一样,而且在管理二进制文件、目录方面比cvs更胜一筹,其作者就是cvs之父,所以完全不用担心从cvs转移到svn上会有任何困难。

2.Netbeans6.1中文版

用6.0总是出错,不知道为什么,换了6.1就不会出现问题。

二.安装Subversion1.4.6

Netbeans连接SVN时要安装Subversion1.4.6,具体步骤如下:step1:首先下载最新的subversion的windowssetup安装文件,按照提示一路next下去就可以了。这个安装包就包含了client和server的全部文件,安装后就可以在命令行下使用svn,svnadmin,svnserve等程序了。

step2:设置注释编辑器。在系统变量里添加SVN_EDITOR变量,值为任意一个文本编辑器的名字,比如notepad.exe。

step3:创建svnrepository。比如选择d:\svn_repo作为我们的目录在命令行下输入:

svnadmincreated:\svn_repo注意,这个repository只是一个仓库而已,你可以在里面创建“虚拟文件夹”,每个文件夹下就可以存放不同的module了。

step4:修改repository配置文件。进入到刚才创建的d:\svn_repo,用记事本打开conf\svnserve.conf。

去掉auth-access=write前的#(#代表注释,注意要顶格),让认证用户有读写权限;

anon-access=***是匿名用户访问权限,如果需要匿名访问,那就去掉前的#;去掉password-db=passwd前的#,该参数指向用户和密码文件。

step5:设置用户名和密码。还是在上边目录下,打开passwd文件。

按照已有的例子,添加可访问的用户名及其密码,这和cvsnt的做法很不一样,cvsnt要求可访问用户在cvsrepository所在机器上必须有windows帐户,这实在太苛刻了……,还是svn的做法更简单,虽然明文密码不是很安全……

step6:为SVN创建系统服务。在cmd下运行命令:“sccreatesvnbinpath="D:\ProgramFiles\Subversion\bin\svnserve.exe--service-rD:\svn_gxq"displayname="SubversionServer"depend=Tcpipstart=auto”。这样就可以直接用管理工具中的服务来启动和关闭SVN,不用在cmd中使用命令,服务名是SVN。以后如果要删除该服务,停止该服务后,运行命令scdeletesvn即可。

下面介绍如何从网络上访问你的repository。

svn的地址采用url的方式,如果通过svnserve创建网络可访问的服务器,那url地址就是svn://your_ip/module_dir。如果你只想在本地文件系统上访问你的svnrepository,那url地址就是file:///c:/svn_repo/module_dir(按照上面例子)。以后不管你import还是checkout,都只需要这个url作为地址,而且登陆一次后,只需要输入一次url地址,svn会自动记住你的url地址,简单吧。

三.NetbeansSVN操作

再来看一下Netbeans连接SVN时的一些具体操作。注:需要安装一个SVN客户端,否则显示错误"SVN命令失败",下载地址http://www.collab.net/netbeans。

1.将本地代码导入到SVN服务器上

选中工程

选择版本控制-导入资源库中;

2.将SVN服务器上代码导出到本地的工作目录下

选中工程

选择版本控制-签出;

 

四.SVN命令

1.上边是通过建立自动启动服务的方式来启动SVN服务,亦可以通过命令启动svnserve。在命令行下输入svnserve--daemon--root"C:\svn_repo",不过svnserve会一直block在命令行上。所以建议使用(二)step6的方法。

2.创建module的虚拟文件夹。新开一个命令行窗口,输入

svnmkdirsvn://192.168.2.168/proj1

如果你是第一次登陆服务器,则会提示你输入用户名和密码。

3.import你的工程。进入到c:\proj文件夹,在命令行下输入:

svnimport.svn://192.168.2.168/proj1

表示把当前目录下的所有文件(及其子目录)都import到url地址所指定的位置上。

4.checkout你的工程。进入到任意一个文件夹下,输入:

svncheckoutsvn://192.168.2.168/proj1testdir

proj1模块就下载到testdir下了。之后的项目管理方式就和cvs一样了。本节Netbeans连接SVN内容介绍完毕,请关注本节其他相关报道。

一个IT公司的招聘职位中SVN,这个术语指的什么产品技术

用于控制版本的一个工具软件

可以独立安装,也可以当成eclipse插件来安装

安装好SVN客户端后可以通过该工具链接到SVN://服务器IP

来下载更新项目工程的代码或提交你的代码

对于不同客户端的用户每次提交,SVN服务器都会记录一个版本,

来保证每个人下载的代码都是最新的

方便项目组合作开发一个项目

哪里可以提供svn技术支持?

Wandisco作为现在subversion项目的主力开发者和领导者,提供官方技术支持,包括中国。另,Wandisco刚刚在美国,欧洲举办了SVN世界用户大会,发布了svn 1.8新功能。

SVN服务器是什么

提供svn服务的机器.

svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。

工作流程

集中式管理的工作流程如下图:

集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:

开始新一天的工作:

1、从服务器下载项目组最新代码。

2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。

3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。

这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。

缺点

1、服务器压力太大,数据库容量暴增。

2、如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。

3、不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。

优点

1、管理方便,逻辑明确,符合一般人思维习惯。

2、易于管理,集中式服务器更能保证安全性。

3、代码一致性非常高。

4、适合开发人数不多的项目开发。

5、大部分软件配置管理的大学教材都是使用svn和vss。[3]

编辑本段安全性

SVN站在更高层次上对安全产品,从系统和控制的角度进行了"有机"和"无隙"的整合。

SVN是一个安全虚拟网络系统,它将系统整体的信息安全功能均衡合理地分布在不同的子系统中,使各子系统的功能得到最大限度的发挥,子系统之间互相补充,系统整体性能大于各子系统功能之和,用均衡互补的原则解决了"木桶原理"的问题。

SVN能在跨接Internet,Intranet,Extranet间的网络所有端点实现全面的安全,而且还能提供基于企业策略的信息管理机制以充分有效地利用有限的带宽。SVN可以满足各种企业VPN的要求,通过为公司内部网络、远程和移动用户、分支机构和合作伙伴提供基于Internet的安全连接。所以,我们可以将SVN看成是VPN、防火墙、基于企业策略的信息管理软件集成在一起的Internet安全的综合解决方案。在这样一个网络系统中,所有互联网服务器端和客户端都是安全的,并有一个信息管理机制以不断地通过这个外部网络环境动态地分析及满足客户的特定带宽需求。SVN提供了基于网络实现的eBusiness 应用的安全服务,它包含:

对多种应用进行全面的安全认证;

支持多种认证及PKI;

功能强大并对用户透明的通讯加密;

面向用户的集中安全策略管理;

统一跨接Internet、Intranet、Extranet的通讯。

编辑本段体系结构

带有防火墙的VPN网关,它是一个将防火墙和VPN技术紧密结合的网关产品;

SVN安全远程客户端软件包,一个功能强大的VPN客户端软件,支持台式机用户、远程用户和移动用户,具有集中化管理的个人防火墙功能和VPN用户的安全认证功能;

SVN证书管理模块,一个用于SVN的完整PKI解决方案,它将完善的CA和LDAP目录服务器技术集成在一起;

SVN硬件加密卡,可以通过硬件技术实现功能强大的各种算法以提高VPN的速度和性能;

SVN智能带宽管理模块,一个基于企业策略的带宽管理解决方案,可以智能地管理有限的带宽资源,以确保用于企业重要应用的VPN性能可靠;

SVN冗余管理模块,通过冗余网关集群和防火墙VPN内的SVN冗余模块,对执行重要任务的VPN和防火墙应用在出现故障时实现无缝切换。

自动地址转换模块,一个自动管理IP地址和命名的解决方案,通过提供IP地址服务的跟踪和集中化管理,确保可靠地控制地址分配和提高TCP/IP管理效率;

SVN安全服务器软件包,专门保护单个应用服务器安全的VPN网关软件,它可以保护进行敏感操作的服务器免受攻击和未授权的访问,使客户端建立与服务器间的安全认证和支持交换加密数据的连接;

SVN安全客户端软件包,它将基于状态检测的防火墙和基于IPSec的VPN客户端软件集成在客户端机器上,通过提供集中管理的个人防火墙和对所有企业VPN用户的安全认证,增强客户端机器的安全性。它与 SVN安全远程客户端软件功能相比,增强了客户端的安全功能,如访问控制和安全初始化控制等。

编辑本段发展历史

在2000年初,开发人员要写一个CVS的自由软件代替品,它保留CVS的基本思想,但没有它的错误和局限,保留CVS的基本特性但去除CVS的bug和不好的特性。

在2000年2月,他们联系《使用CVS开发开源项目》(Open Source Development

with CVS)(Coriolis, 1999)的作者Karl

Fogel,并征求了他是否愿意在这个新的项目中担任一个角色。巧合的是,当时Karl已经和他的朋友Jim Blandy讨论了一个关于新的版本控制系

统的设计。在1995年,这两人就成立了Cyclic

Software,一个提供CVS的商业支持的软件公司。虽然他们经营商业服务,但是仍然在每天都在工作中使用CVS。使用CVS的挫折感使得Jim认真

思考更好的方法来管理数据,不但确定名字为“Subversion”,而且完成了Subversion档案库的基础设计。

当CollabNet的电话到来时,Karl立即答应了加入项目中,而且Jim让他的雇主RedHat Software同意让他在这个项目中不定期工作。CollabNet雇用了Karl和Ben Collins-Sussman,并在5月开始了详细设计工作。在得到了来自CollabNet的Brian Behlendorf、Jason Robbins和Greg Stein(当时是一名活跃在WebDAV/DeltaV规范过程的自由程序员)很多创意的帮助下,Subversion很快地引起了一个活跃开发者社区的注意。它找出并欢迎很多同样在CVS上受到挫折的社员能来为这个项目做点什么。

Subversion 最初的设计Team定下了几个简单的目标。 它必须在功能上可取代 CVS,也就是说,

所有 CVS 可做到的事, 它都要能够作到。 在修正最明显的瑕疵的同时, 还要保留相同的开发模式。 还有, Subversion 应该要和

CVS 很相像, 任何 CVS 使用者只要花费少许的力气, 就可以很快地上手。

经过十四个月的编码后, Subversion 于2001年8月31日开始实现 “自行管理”。 也就是说, 开发人员不再使用 CVS 来管理 Subversion 的代码, 而以 Subversion 自己来管理。

2009年11月,Subversion被Apache Incubator专案所接收。

2010年1月,正式成为Apache软件基金会的一个顶级专案,所以为Apache Subversion.[4]

目前Apache Subversion的主席为Greg Stein, 项目领导者Release manager为Wandisco公司。[4]

编辑本段优缺点

所有的文档都显示SVN可以取代CVS,同时SVN的问题和缺点都被隐藏了。不幸的是,我们并不认为SVN是CVS的替代品,尽管很多缺陷都被修改了。更有甚者,它甚至让人重回CVS。

CVS和SVN的比较类似于比较C++和Java。很明显CVS和SVN都远比SourceSafe强大的多,如同C++和Java比Basic强大的

多。CVS代表了几乎代码控制系统的所有功能项,尽管有时他的实现并不很方便。SVN修正并添加了一些CVS并不拥有功能。例如,创建标志和分支

dubious,你在编辑文件时其他人不会有任何通知。SVN并不是CVS的替代品,只是个不同的系统,类似于CVS。它有些特有的功能,足以作为采用它

的理由。这些功能使他更适合于开发环境,例如对PowerBuilder。下面你可以找到两者的相对优势、劣势。

1 存储类型格式

CVS是个基于RCS文件的版本控制系统。每个CVS文件都不过是普通的文件,加上一些额外信息。这些文件会简单的重复本地文件的树结构。因此,不必担心有什么数据损失,如果必要的话可以手工修改RCS文件。

SVN是基于关系数据库的(BerkleyDB)或一系列二进制文件的(FS_FS)。一方面这解决了许多问题 (例如,并行读写共享文件)以及添加了许多新功能(例如运行时的事务特性。)。然而另一方面,数据存储由此变得不透明。

2 速度

CVS比较慢。

整体而言,由于架构实现的不同, SVN的确比CVS快很多。在网络上它只传输很少的信息并支持更多的离线模式的功能。但这也是有代价的。速度的代价就是巨大的存储(完全备份所有的工作文件)。

3 标志分支

SVN把采用标志和分支而抛弃了其他三件东西,实际上这意味着他们把这个概念替换为在档案库内部复制文件或目录以便

保存日志。这样一来,无论标志创建还是分支创建都只是仓库内部的文件复制了。对分支而言:分支不过是在仓库内部的一个单独的目录而已了,不像早期还有些什

么交错。对标志而言:已经不能对代码加标志了。在某种程度上说,SVN全文件编号补足了这个缺陷,SVN里整个仓库都有版本号,但不是针对单个文件。

4 元数据

CVS只允许存储文件。

SVN允许一个文件有任意多的可命名属性,功能十分完全。

5 文件类型

CVS最初是为文本文件存储而设计的。因此其他文件类型(二进制,统一码)文件的支持几乎没有,如需要的话则要有其他信息,并且客户端服务器端都要调整。

SVN会关心所有的文件类型,不需要你来手工操作。

6回滚

CVS允许任意的回滚,在任意一个已递交的版本上,尽管这要花些时间(所有的文件都要分别处理)。

SVN不允许递交后回滚。建议把版本库里好的状态版本加到末尾,覆盖掉损坏的版本。而损坏的版本无论如何也是会存在数据库里的。(SVN的滚回操作实际上是merge操作)

7事务

CVS中的“零或一”事务原则根本没有实现。如果检入几个文件的话(加到服务器上),很有可能部分文件完成了,而另几个没有。作为一个潜规则,手工纠正这些并且对余下的文件 (而不是所有文件)一一重复检入。这样这些文件将在两阶段中被检入。SVN的确支持“零或一”事务原则,这是SVN的一大优势。

SVN(版本控制系统)是个什么东西?

一个版本控制软件,可以上传、下载自己的代码,同时SVN记载着修改、删除等记录,可以下载任何时候的上传代码。

为什么还有那么多人用SVN?

非纯技术开发公司更倾向于svn

1.服务器公司统一控制管理

2.安全机制, 不会每个人都拷贝一份, 可以对组员限制, 也可以分配不同组

3.团队合作开发起来传递的数据量不会过大, git因为都是镜像, 如果有个美工传个500mb的psd, 不相关的人员也要去下载, 很浪费流量和更新时间

  • 评论列表:
  •  断渊做啡
     发布于 2022-06-04 21:57:49  回复该评论
  • 成为Apache软件基金会的一个顶级专案,所以为Apache Subversion.[4]目前Apache Subversion的主席为Greg Stein, 项目领导者Release manager为Wandisco公司。[
  •  辙弃娇痞
     发布于 2022-06-04 20:30:00  回复该评论
  • 服务的方式来启动SVN服务,亦可以通过命令启动svnserve。在命令行下输入svnserve--daemon--root"C:\svn_repo",不过svnserve会一直block在命令行上。所以建议使用(二)step6的方法。2.创建module的虚拟文件夹。新开一个命令行窗口,输入sv
  •  慵吋风晓
     发布于 2022-06-05 00:24:03  回复该评论
  •  SVN安全远程客户端软件功能相比,增强了客户端的安全功能,如访问控制和安全初始化控制等。编辑本段发展历史在2000年初,开发人员要写一个CVS的自由软件代替品,它保留CVS的基本思想,但没有它的错误和局限,保留CVS的基本特性但去除CVS的bug和不好的特性。在2000年2月,他们
  •  可难鸢旧
     发布于 2022-06-04 21:56:40  回复该评论
  • ncubator专案所接收。2010年1月,正式成为Apache软件基金会的一个顶级专案,所以为Apache Subversion.[4]目前Apache Subversion的主席为Greg Stein, 项目领导者Release manager为Wandisco

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.