使用SVN一定要用服务器吗?

使用SVN一定要用服务器吗?,第1张

SVN是C/S架构的,不过你可以把同一台电脑即做服务器又做客户端

SVN服务器端安装完成后,接着就是创建一个版本仓库,可以使用svn命令行模式创建,使用create子命令

再下来就是把这个版本库checkout出来,然后在里面增加、修改文件,操作完了执行commit提交

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。

svn存储版本数据也有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。

所有的文档都显示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管家对svn进行远程管理,svn管家推出了windows版本和linux版本,部署很方便,不用安装额外的环境如mysql、PHP或JAVA。svn管家不仅可以方便的远程修改用户密码,更可以对svn进行远程管理,极大地方便了SVN的用户。

所以虽然说SVN有缺点,但是对于使用者来说还是有继续使用下去的价值的。它的优势比它的缺点更耀眼,所以才会有那么多人还使用SVN

svn5800vt配置?

一,intel版本,带显示器,键盘鼠标

cpu+主板:i59400f+华硕b365m-plusgamings(京东1729元)

显卡:铭_rx5808g(京东939元)

SSD:西部数据sn550512g(京东599元)

内存:威刚ddr42666x2(京东2292=458元)

散热:乔思伯CR-1000(京东88元,4热管带灯)

机箱:银欣PS15B(京东219元,双U3)

电源:长城500w(京东249元)

显示器:戴尔u2417h(京东1299元)

机械键盘:ikbcc87(京东288元)

鼠标:罗技g102(京东109元)

全京东总价:5977元

二,AMD版本,带显示器,键鼠

cpu+主板套装:微星破击炮b450mMortarmax+3600(京东1749元)

显卡:铭_rx5808g(京东939元)

SSD:西部数据sn550512g(京东599元)

内存:十铨ddr43200x2(京东519元)

散热:原装散热

机箱:银欣PS15B(京东219元,双U3)

电源:长城500w(京东249元)

显示器:戴尔u2417h(京东1299元)

机械键盘:ikbcc87(京东288元)

鼠标:罗技g102(京东109元)

全京东总价:5970

其中cpu+主板,ssd如果走淘宝,可以控制总价在5800以内。

若办公需求:显示器推荐u2417h

若游戏需求:显示器推荐AOC144hz238寸24G2,(京东价1169元)

如何在eclipse中配置svn插件?

在Eclipse下安装SVN插件步骤:

1、打开Eclipse,点击菜单Help—>InstallNewSoftware

2、进入安装窗体后,点击安装窗体的Add按钮,然后在弹出的窗体中输入插件安装地址http://subclipsetigrisorg/update_18x

3、等待Eclipse读出安装内容后,勾选需要安装的内容,这里Subclipse是必须安装内容,SVNKit为可选内容(建议全部勾选)

4、点击安装窗体下方的Next按钮,进入下一页后继续点击Next,然后需要手动同意安装许可

5、安装过程中可能会出现安全警告,直接点击OK继续安装即可

6、安装完成后Eclipse会提示是否重启软件,点击Yes重启Eclipse就完成SVN插件的安装了

30怎么安装和使用svn?

SVN,即subversion,是一个开源的版本控制系统,版本控制器。是CVS的派生版。

它是一个C/S模式的软件,既有SVN服务器,也有SVN客户端。利用它可以将数据更新到最新版本,也可以找回历史版本,可以检查文件的修改历史。

1SVN的基本功能

根据文件修改的次数,自动增加版本库的版本号(库中所有的文件共用一个版本号),以便找回历史文件。

防止团队开发时,多人同时修改同一文件导致文件被覆盖或删除。

2软件的安装

服务器的安装(建议先安装服务器)

Setup-Subversion-1617msi

客户端的安装

TortoiseSVN-161621511-win32-svn-1617msi

装完客户端后,需要重启电脑。

安装完毕以后,在桌面右击鼠标,如果出现两个SVN相关的选项,说明SVN安装成功

3服务器的搭建

a创建一个空文件夹,作为SVN服务器的目录例如E:server文件夹的名字可以随便取

b进入该文件夹,右键,选择TortoiseSVN菜单,单击里面的Createrepositoryhere(创建版本库)。系统就会自动在该目录中生成一些文件和文件夹

c修改conf文件夹中的passwd配置文件,添加代码yangjun=123456即添加用户和设置密码

d修改conf文件夹中的svnserveconf主配置文件,去掉#password-db=passwd所在行的注释。(目的是让passwd配置文件生效)

这样,SVN服务器就搭建好了。

4服务器的启动

打开Windows的命令行,执行命令svnserveexe-d-rE:server

之后,SVN服务器的目录(版本库)E:server就可以被SVN客户端访问了。需要注意的是,命令行界面(DOS界面)不能关闭,否则服务就停止了。

5客户端的使用

a新建一个空文件夹作为SVN客户端的目录。例如F:user1

b进入该文件夹,右键,选择TortoiseSVN菜单,单击里面的Repo-browser(浏览版本库),会弹出URL的输入框,输入svn://127001或svn://localhost(前面的表示访问服务器的协议,后面的表示服务器所在主机的ip)。

c右键,选择SVNCheckout(检出),连接服务器(第一次连接服务器的时候,需要检出,以后就不需要了)。

以后,就把SVN客户端的目录F:user1作为自己项目文件的目录,通过SVN服务器进行文件的上传、修改、下载和删除等操作。

6SVN客户端的目录中的文件的图标及含义

问号表示该文件是刚引入的新文件,还未被SVN版本库识别

加号表示该文件已经添加至服务器的观察名单,但还未上传至服务器

对号表示该文件的版本和服务器中的版本是一样的

感叹号表示该文件的内容和服务器中的文件内容不一样,也就是从版本库同步之后,该文件又作了修改,但还未上传至服务器

锁表示该文件已被锁定

客户端目录中新添加的文件,由于还未被服务器识别,所以是以问号标识的。

选择问号标识的文件,右键,选择TortoiseSVN菜单,单击里面的Add选项,添加至服务器的观察名单。这时,问号就变成了加号。

选择加号标识的文件,右键,选择SVNCommit(提交),执行上传。会弹出一个对话框,输入用户名和密码即可。这时,加号就变成了对号。

把对号标识的文件内容进行更改后,对号就变成了感叹号。

选择感叹号标识的文件,右键,选择SVNCommit(提交),执行上传。之后,感叹号就变成了对号。

选择对号标识的文件,右键,选择TortoiseSVN菜单,单击里面的Getlock(锁定)。之后,对号就变成了锁。

选择锁标识的文件,右键,选择TortoiseSVN菜单,单击里面的Releaselock(解锁)。之后,锁就变成了对号。

7远程用户下载SVN服务器中的文件的步骤

这里在F盘新建一个空目录F:user2进行模拟。

进入该文件夹,右键,选择SVNCheckout(检出),连接服务器,输入正确的URL。就会自动把版本库中的所有文件下载到当前目录。

以后,如果版本库中的文件有改动,右键,选择SVNUpdate(更新),就可以和版本库中的文件同步。即当前客户端目录中的文件和版本库中的一致。

可以理解为用户第一次下载用SVNCheckout(检出),以后下载就用SVNUpdate(更新)。

8文件的删除

进入客户端目录F:user1,直接删除你想要删除的文件(这时,只是客户端的文件被删除)。

要想把服务器中的对应文件也删除,可以右键,选择SVNCommit(提交),弹出一个对话框,勾选刚才删除的文件,点击确定。之后服务器中的对应文件也被删除了。

服务器上的某个文件被删除后,当其他客户端的用户,执行SVNUpdate(更新)时,就会和服务器中的文件同步。(对应的文件也会被删除)

9历史版本的找回

如果误删除了服务器上的某个文件,想要找回该文件,可以恢复到历史版本。

在客户端目录F:user1中,右键,选择TortoiseSVN菜单,再单击Updatetorevision,弹出一个对话框,选择revision,输入你想恢复到的版本号(一般是上一个版本号),确定。

10历史版本间的差异对比

如果某一个文件被多个人依次更新修改过,之后,大家也都同步了服务器的版本库。发现,某一个文件被别人更新过,可以通过以下方法查看差异。

选择被更新的文件,右键,选择TortoiseSVN菜单,再单击Diffwithpreviousversion,会对比显示出该文件的历史版本和当前版本的差异。

左边的是历史版本,右边的是当前版本。

11冲突的解决

冲突指定的是,当多个人同时对同一个文件进行修改后,某一个用户(user1)先进行了提交(更新了服务器的版本库),其他用户(user2)后进行的提交,此时,就会出现文件过时而无法提交的现象(因为user2修改的文件版本不是最新版本,所以会提示文件过时,导致无法提交)。

冲突的产生是SVN版本控制器的一个保护措施,可以有效防止客户端中低版本的文件覆盖服务器中高版本的文件。

如何解决冲突?

选择出现冲突的文件,右键,选择TortoiseSVN菜单,再单击Editconflicts,会对比显示出该文件的服务器版本和自身版本的差异。

左边的是服务器的版本,右边的是自身版本。

冲突的解决,是靠人为手动来解决的,一般是冲突相关的多个用户之间商量后,决定以某个文件版本为主。比如,经过大家商量后,决定以服务器中的版本为主。接下来,就应该这样操作:在左边区域(服务器的版本),右键,选择usethiswholefile或者在产生冲突的行,右键,选择usethistextblock来各取所长,依次处理完所有有冲突的行,之后,点击保存,关闭窗口。

然后,选择出现冲突的文件,右键,选择TortoiseSVN菜单,再单击Resolved(已解决)。告诉SVN冲突经大家商量后,已经解决。

这时,该文件就可以正常提交了。选择它,右键,选择SVNCommit(提交),上传至服务器。最后可以看到文件的标识变为对号。

12将SVN服务器安装至系统服务

前面我们说过,SVN客户端操作的过程中,开启SVN服务的命令行窗口不可以关闭,否则,SVN服务也会终止,导致客户端无法连接服务器。

这里,我们可以把SVN服务添加到系统的自启动服务当中。操作方法如下:

重新打开cmd命令行,在命令行中执行以下命令

sccreatesvnservebinpath="D:ProgramFilesSubversionbinsvnserveexe--service--rootE:server"

如果提示“CreateService成功”,则表明创建系统服务成功。此时,添加的服务名为svnserve,状态默认是关闭的,启动方式为手动。

之后,我们就可以利用Windows系统自带的服务管理界面进行管理,比如开启SVN服务,设置为自启动等。而不用通过命令行来控制了。

删除系统服务scdeletesvnserve(如果删除了系统的svnserve服务,我们就又只能通过命令行来开启SVN服务,且不能关闭命令行窗口)

13取消记住的用户名和密码

如果在进行身份验证的时候,我们勾选了记住用户名和密码。那么,当我们需要使用别的用户名进行操作时,便会出现无法更改账号的情况,这时,我们可以取消记住的用户名和密码。下次进行身份验证的时候,我们就可以选择输入其他的用户名和密码。

取消记住用户名和密码的方法:

删除身份验证时保存在系统中的相关文件(auth文件夹)即可。进入C:UsersAdministratorAppDataRoamingSubversion这个目录,删除里面的auth文件夹。

14权限管理

SVN的默认权限设定是匿名用户也可以连接到服务器,访问服务器中的文件,还可以进行下载。也就是说,任何一个人只要知道了SVN服务器所在主机的ip,就可以下载版本库中的所有文件。这种默认的权限设定是不安全的。因此,我们有必要进行SVN服务器的权限管理。

打开SVN服务器的主配置文件E:serverconfsvnserveconf,将这行代码

#anon-access=read

修改成

anon-access=none

保存即可。

之后,匿名用户对服务器就没有读的权限。也就是说,用户在浏览版本库和下载文件时,需要输入用户名和密码。

15权限分配

权限分配指的是,给不同的用户分配不同的权限,比如,需要设定某些用户(管理员)对所有的文件都有读和写的权限,其他用户(普通用户)只有读的权限或者只对服务器目录中的某个文件夹有读和写的权限时,就可以用到权限分配。

这时,我们需要修改服务器配置文件目录(E:serverconf)中的三个配置文件:svnserveconf、passwd和authz。

详细操作方法可自行查阅相关文档·

如何在myeclipse上配置svn插件?

在myeclipse中安装svn图解:

步骤如下:

1找到MyEclipse10在安装目录下的dropins文件夹

2打开dropins文件夹,新建一个svn文件夹

3解压缩下载好的压缩包

4把features和plugins文件夹拷贝到dropins文件夹下的SVN文件夹中

5这样就可以在MyEclipse10中安装好SVN插件了。

这个事情分成两步:

1、架设SVN服务器

2、开通外网访问

对于第一步,网上有很多的文档了,在我的百度文库里也有两篇SVN服务器的架设指导,建议安装Collabnet Subversion Edge版SVN服务器,安装配置很简单,基本装好就能用。

对于第二步,至少有两种方案:

1、架设***,外网通过***连入内网后,就和在内网完全一样了;

2、在公司的路由器上做个端口映射,将SVN服务器的访问端口(如Collabnet Subversion Edge版SVN服务器采用的是http协议,默认是80端口)映射到公司外网IP的相应端口上,这样访问公司外网IP+SVN服务端口,就等于访问公司SVN服务器。

第二步的两种方案虽然也不复杂,网上也能找到很多文档参考,但还是建议你找网络专业人员帮你配置吧。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 使用SVN一定要用服务器吗?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情