各位老铁们,大家好,今天由我来为大家分享svn服务器,以及SVN服务器是什么的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

一、SVN服务器是什么

提供svn服务的机器.

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

工作流程

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

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

开始新一天的工作:

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

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

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

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

缺点

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

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

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

优点

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

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

3、代码一致*非常高。

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

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

编辑本段安全*

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

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

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

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

支持多种认证及PKI;

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

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

统一跨接Inter、Intra、Extra的通讯。

svn服务器 SVN服务器是什么

编辑本段体系结构

带有防火墙的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(当时是一名活跃在WebD*/Delt*规范过程的自由程序员)很多创意的帮助下,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++和J*a。很明显CVS和SVN都远比SourceSafe强大的多,如同C++和J*a比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服务器端的常见类型包括Apache SVN服务器、VisualSVN服务器和CollabNet Subversion Edge服务器等。

详细解释如下:

Apache SVN服务器:Apache SVN服务器是一种开源的版本控制系统服务器,广泛应用于各种软件开发环境中。它支持多种操作系统平台,包括Windows、Linux和Mac OS等。Apache SVN服务器提供了丰富的版本控制功能,包括文件版本管理、分支管理、权限管理等。开发者可以通过它实现对代码版本的有效管理和协作开发。

VisualSVN服务器:VisualSVN服务器是一种易于安装和使用的SVN服务器软件。它提供了图形化界面,简化了配置和操作过程。VisualSVN服务器支持多种语言,并且支持多种开发环境,是开发者们常用的版本控制工具之一。它的优势在于简单易用,适合于中小型团队的开发项目。

CollabNet Subversion Edge服务器:CollabNet Subversion Edge服务器是一种商业化的SVN服务器软件,它具有强大的功能和管理工具。除了基本的版本控制功能外,还提供了一系列高级特*,如报告工具、网络化管理界面和集成的变更管理功能等。这种服务器适合大型企业和复杂开发环境的需求。它提供了可靠的*能和安全保障,确保了代码版本的安全*和可靠*。

以上三种SVN服务器端软件各具特色,开发者可以根据项目的需求和团队的规模选择合适的SVN服务器来管理代码版本和协作开发。

三、如何打开SVN服务端如何快速登录SVN服务器

首先,要要打开SVN服务端,需要使用svnadmin命令来创建和管理存储库;而快速登录SVN服务器,则可以通过svn co命令来完成。

关于如何打开SVN服务端,我们首先要了解SVN服务端的组成。一般来说,SVN服务端包括一个或多个存储库,这些存储库用来存储所有的版本控制数据。为了打开SVN服务端,我们需要使用svnadmin命令来创建一个新的存储库。例如,我们可以使用以下命令来创建一个名为“myrepo”的存储库:svnadmin create/var/lib/svn/myrepo。这个命令将在指定路径下创建一个新的存储库,并在其中生成一些必要的文件和目录。

创建了存储库之后,我们需要配置SVN服务端,以便用户可以通过网络访问它。这可以通过编辑存储库的配置文件来实现。SVN服务端的配置文件通常位于存储库的conf目录下,其中包括三个主要的文件:svnserve.conf、passwd和authz。svnserve.conf文件用于配置SVN服务端的基本设置,如访问控制和日志记录等;passwd文件用于存储用户的用户名和密码;authz文件用于定义用户的访问权限。通过编辑这些文件,我们可以设置用户的账户信息、访问权限和安全设置等。

完成配置之后,我们就可以启动SVN服务端了。这可以通过运行svnserve命令来实现。例如,我们可以使用以下命令来启动名为“myrepo”的存储库:svnserve-d-r/var/lib/svn/。这个命令将以守护进程模式启动SVN服务端,并将根路径设置为/var/lib/svn/,这意味着用户可以通过网络访问该路径下的所有存储库。

关于如何快速登录SVN服务器,我们可以使用svn co命令来完成检出操作。例如,要使用用户名“user”和密码“password”从SVN服务器检出一个名为“myproject”的项目,可以使用以下命令:svn co svn://svn.example./myproject--username user--password password myproject。这个命令将从指定的SVN服务器检出一个名为“myproject”的项目,并将其保存到本地目录“myproject”中。在检出过程中,SVN客户端会提示用户输入用户名和密码进行身份验证。如果用户名和密码正确,则检出操作将成功完成。