使用Subversion版本控制工具

本文详细介绍了如何安装和配置Subversion服务器,包括SVNSERVER和Apache组件的选择,资源库的创建和访问用户设置。接着讲解了Subversion客户端TortoiseSVN的使用,包括浏览资源库、导入文件、迁出、更新、提交、锁定和解锁操作。还提到了异常处理和冲突解决方法,以及与MyEclipse的集成步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:下载Subversion

CollabNetSubversion-server-1.8.5-1-Win32.exe    点击exe文件

1)安装时,会出现两个组件 SVNSERVER  Apache ,前者是Subversion的服务器,而Apache是可选的。
2)svn_repository是初始的资源库,可以随意指定一个文件夹  , 最后选择SVN软件安装路径


3)创建资源库(Respository)

C:\Users\Administrator>svnadmin create F:\SVN\svn_repository

其中svnadmin是svn的管理命令,create表示创建资源库,而 F:\SVN\svn_repository 表示资源库所在文件夹路径

4)设置访问用户

在 conf\passwd 文件夹中,最后增加一行代码 wanhao = 123456

即"用户名=密码"方式

5)配置认证和授权文件

svn_repository\conf\svnserver.conf 文件取消 password-db=passwd 这一行前面的 '#'。(注意,这一行前面一定不能留空格!

6)启动SVN服务

  svnserve -d -r F:\SVN\svn_repository

  svnserve 是SVN服务管理的命令  -d 表示该服务是由守护线程启动的(也叫后台线程) ,-r F:\SVN\svn_repository 表示启动资源库所在的根目录。

只要不关闭命令行窗口,SVN的服务就一直存在。


第二步使用Subversion 客户端 TortoiseSVN

1)下载   TortoiseSVN-1.8.5.25224-x64-svn-1.8.8.msi 

直接双击,安装的位置可以改变,然后全部使用默认的配置。

安装完毕后,需要重启一下电脑。

在任意文件夹下点击右键就可以使用TortoiseSVN菜单了。

2)浏览资源库(先确保启动了服务器端Subversion服务)

在快捷菜单中选择 TortoiseSVN|Repo-browser 将弹出输入资源库地址的对话框。

输入URL  svn://localhost/   svn就是访问SVN服务器的协议,localhost为服务器的地址。若是服务器在局域网中,也可以设置局域网的IP地址。若是装了Apache服务器,则可以通过 http://  访问。


左侧为资源库中所有文件,右侧是文件夹和文件夹的详细信息,可以通过左侧来浏览资源库中各个文件。

3)在资源库中增加文件夹

在跟路径下创建三个文件夹  trunk目录  branches目录  tags目录

trunk目录:程序的主目录,通常源代码的一些文件会保存在这里。

branches目录:保存的是主程序的分支文件,比如同一个软件,可能出现分支开发的情况,可以把分支代码放在这里。

tags目录:保存的是源代码每个版本的备份,比如当软件版本从version1.0到version2.0时,需要有一份代码的备份,以备未来能够随时找回原来的版本。

4)导入文件到资源库(import)

选中一个文件夹,右键TortoiseSVN  import ,  便会把这个文件导入到项目中了。被导入的文件便成了共享文件,其他用户(你赋予权限的用户)便可以通过客户端获得这些共享文件了。

注意,URL of respository 应该填写具体路径 如 :     svn://localhost/trunk/GreatHomeWork

5)从资源库中迁出(check out)

先要建立一个与待迁出文件同名文件夹GreatHomeWork  在此文件夹上右键SVN Checkout 


点击OK,完成迁出。

发现迁出的文件夹和文件都使用了带有对勾的绿色图标,表示从SVN中迁出的,并不仅仅是文件的备份。

6)更新(update)-修改-提交(commit)

一个用户把项目导出,更改了部分内容,修改完提交。与此同时,另一位朋友也在修改项目,就会发生冲突。但是这样做效率得到提高,一般都使用这种方式。

先点击导出的项目,右键 SVN Update ,更新资源库。这样可以保证在修改之前使用的是最新的版本。

更新的文件游玉友不同的更新类型,所以会使用不同的颜色标识。

紫色:资源库中新建的文件。

深红色:资源库中的是一个删除或替换的文件。

绿色:资源库中与本地的文件的合并。

红色:资源库中的文件与本地的文件有冲突,需要解决冲突。

黑色:其它的默认文件。

红色表示有冲突的文件,需要自行查找。

新建文件,然后 TortoiseSVN|Add 选项。客户端便会认为这是一个新建的文件,但注意到此时并没有真正添加到资源库中。

删除文件,选中待删除的文件,TortoiseSVN|Delete 命令。

修改文件,修改后的文件,会使用一个红色的圆点标注,这样便可以看到每个文件与资源库文件的状态了。

在未提交之前,用户所有的操作都只是针对本地的操作,而并没有真正地更新到资源库中。

一旦完成修改,用户要尽早提交,这样可以尽量避免冲突。

提交右键SVN Commit...  ,然后会弹出一个Check确认对话框,在这个对话框中,选中的为打算提交的,没选中的为不提交的。


7)锁定(lock)-修改-提交-解锁

锁定:选中待锁定的文件夹,右键TortoiseSVN|Get Lock命令。

被锁定的文件,只有被解锁,其他的用户才会继续修改这个文件。

解锁:选中已经锁定的文件 , 右键TortoiseSVN|Release lock 命令。

文件被锁定的过程中,其他的用户不知道文件已被锁定,只有当其他用户提交时才会知道被锁定。所以为了避免其他用户修改一个已经被锁定的文件,用户应当尽量多执行Update操作,这样才能获取到最新资源库中的文件状态。


8)异常处理

有两个人同时修改了文件,第一人先提交,第二人提交便会发生错误。因为提交时已经不是最新版本了,需要提交之前Update一下。

一旦发生冲突,SVN会在冲突的文件中这样标注:

<<<<<<< .mine
#这是我做的修改=======
#这是我为sceond做的修改>>>>>>> .r11
========前的内容是用户自己修改的,后面的为版本库中已经有的。

同时,会在冲突的文件下自动生成三个文件

以下的 “。” 实际指 “.” ,为了使其更明显

1. 冲突的文件名。冲突的文件类型。mine                           里面放着第二个人已经修改过的文件。

2. 冲突的文件名。冲突的文件类型。更新备份前的基础版本      这就是两个人修改之前的文件。

3. 冲突的文件名。冲突的文件类型。第一个人更新后存在版本库的文件                                  也就是第一个人修改完的文件。     

比如我第二次修改了log4j.properties commit发生错误。mine表示第二个人修改后的文件   r12表示最开始的文件    r13即代表版本库最新的文件。

    

解决冲突的办法:

选中第二个人已经修改的文件(版本最新的文件)和我(.mine)的文件, TortoriseSVN | Diff 命令。


此时会弹出 TortoiseMerge 工具,把两个文件不一致的地方显示出来,然后便可以找出冲突的原因。

可以手动修改合并冲突的文件,然后设置为已解决(Resolved),然后便允许提交。

或者将冲突的文件恢复(Revert)到最新版本,然后在最新版本的基础上将解决冲突后的代码放进去,然后提交。但需注意,更新本地文件版本时,本地的修改会丢失,所以要事先备份下文件。

注:更新(Update)与恢复(Revert)都是从资源库中获得最新版本,但他们之间最大不同是恢复不会保存本地的修改,所以要慎用。


some tips:

查看修改日志,在要修改的文件上右键  TortoiseSVN|Show log ,便可以查看修改日志了。

建议每次上传都写上log,对他人,对自己都有好处,也就耽误自己1分钟时间。

可以比较日志,同时选中两个日志记录,Compare revisions

恢复到以前版本,在要恢复的文件上右击,选择Update to revision ,然后便可以选择自己想要恢复的版本号进行恢复。

设置功能,任选一个文件,右键 TortoiseSVN|Settings 命令。


与MyEclipse集成

1.下载 site-1.10.9.zip ,然后解压到 MyEclipse 10\dropins 重启myeclipse即可。

2.切换视图到 SVN Repository Exploring 。

3.将myeclipse中的项目与资源库中的文件同步。

①  File ->New ->Other->SVN->Checkout Projects From SVN

②选择之前创建过的资源库,并选择资源库中的项目名,单击Finish

③然后便可以使用Subclipse其他的客户端功能了。比如提交,右键点击项目,选中team,commit等。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值