SVN教程(Eclipse中使用)

一、Windows下安装SVN

安装过程直接点击下一步即可,不想用默认位置的话,可以更改安装位置。
SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)

二、检查安装是否成功

1、检查环境变量中是否自动配置了系统变量。(默认是自动配置的)。
SVN教程(Eclipse中使用)
2、安装根目录
其中bin目录下是一些可执行文件(.exe)

SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)
3、打开cmd窗口,输入命令 svn --version检查版本号,查看安装是否成功。
由于已经配置了环境变量,所以可以在任何位置使用svn命令。
SVN教程(Eclipse中使用)

三、配置SVN

1、配置版本库

①为什么要配置版本库?
Subversion 是将文件数据信息保存到版本库中进行管理的, 为了满足用户的不同需求, Subversion 允许用户对版本库目录进行定制。
②在一个非中文无空格目录下创建一个文件夹,作为版本库的根目录。
例如:D:\fourthsoftware\SVN-responsitory
③在版本库根目录下创建与具体项目对应的子目录——这样做的目的是使一个SVN 服务器能够同时管理多个项目,而不是为每一个项目搭建一个SVN 服务器——这显然太浪费资源了。
例如:D:\fourthsoftware\SVN-responsitory\Test
D:\fourthsoftware\SVN-responsitory\ERP
D:\fourthsoftware\SVN-responsitory\OA

命令:svnadmin create D:\fourthsoftware\SVN-responsitory\Test

SVN教程(Eclipse中使用)
创建成功以后在对应目录下会生成这些文件或文件夹
SVN教程(Eclipse中使用)

三、启动SVN服务

启动SVN有两种方式

1、通过命令行启动

svnserve -d -r D:\fourthsoftware\SVN-responsitory\Test
svnserve 表示命令
-d 表示后台执行
-r 表示版本库根目录 D:\fourthsoftware\SVN-responsitory\Test

验证是否启动成功

SVN教程(Eclipse中使用)

2、注册windows服务

四、在Eclipse中安装SVN

1、在Eclipse中安装SVN插件

其实就是把插件复制到dropins目录下,当然也可以在线安装
(我这里的sts其实和Eclipse差不多)
SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)

2、启动Eclipse,查看是否安装成功

SVN教程(Eclipse中使用)

五、在Eclipse中使用SVN

1、准备工作:

启动两个Eclipse,使用不同的工作空间,分别是Tom、Jerry。以此来模拟不同的用户。

2、Jerry创建Java Project

SVN教程(Eclipse中使用)

3、提交

右键单击项目-- Team-- share project
SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)
svn 一种协议的格式,类似于http协议
localhost 本地使用,如果是远程需要改成具体ip
Test 是SVN服务器上的一个子库
SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)

认证失败的原因

打开svnserve.conf这个文件
SVN教程(Eclipse中使用)

# anon-access = read 匿名访问

我们将# anon-access = read前面的#去掉,开启匿名访问并且赋予write权限anon-access = write,再次重复上述步骤即可。

# auth-access = write 认证访问

但是通常情况下我们是不允许匿名访问的,这就需要开启认证访问auth-access = write
password-db = passwd
authz-db = authz
passwd、authz分别对应conf目录下的db和authz文件
SVN教程(Eclipse中使用)
编辑passwd文件,创建3个用户
Tom = 123456
Jerry = 123456
ceshi = 123456
编辑authz文件
kaifa = Tom,Jerry 表示一个kaifa组的成员有Tom和Jerry
[/] 表示访问根目录下的所有文件都需要认证
@kaifa=rw 表示kaifa组有rw权限
ceshi=r 表示用户ceshi有r权限

  • = 表示其他用户没有权限
4、Jerry提交

SVN教程(Eclipse中使用)
修改后,对应的项目和文件上会有 * ,表示本地和远程服务器上的不一致。
右键单击需要提交的文件或整个项目-- 提交,此时需要输入用户名和密码
SVN教程(Eclipse中使用)
输入Jerry 123456 点击OK
SVN教程(Eclipse中使用)
提交成功后,项目上有提示黄色的标识。

5、Tom检出

点击file - import - SVN
SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)
拉取成功。
SVN教程(Eclipse中使用)

SVN教程(Eclipse中使用)

6、更新

直接在项目上或需要更新的文件上点击 Team - 更新 。

7、版本冲突

版本冲突原因
SVN教程(Eclipse中使用)
<1>两个开发人员, Harry 和 Sally, 分别从服务器端下载了文件 A。
<2>Harry 修改之后, A 变成了 A’, Sally 修改之后, A 变成了 A’’。
<3>Harry 先一步提交,使服务器端文件的版本也变成了 A’
<4>Sally 本地的文件 A’’已经过时了, 此时她已无法提交文件,服务器会要求她先进行一次更新操作。
<5>此时 Sally 的更新操作有两种可能
(1)Sally 所做的修改与 Harry 不是同一个位置, 更新操作尝试合并文件成功。
(2)Sally 所做的修改与 Harry 恰好是同一个位置, 更新操作尝试合并文件失败,发生冲突。

Jerry修改后提交成功
SVN教程(Eclipse中使用)
Tom修改后提交,失败(版本冲突)
SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)

解决方法

在项目上或文件上点击 Team - 更新
SVN教程(Eclipse中使用)
这里显示了哪里冲突了
在冲突的文件上点击 Team - 更新
SVN教程(Eclipse中使用)
右半部分是别人提交的内容,无法更改,左半部分是自己的可以更改。
我们要做的就是合并不同的内容。
然后保存。之后如果觉得没问题了,点击Team - 标记为解决
SVN教程(Eclipse中使用)
SVN教程(Eclipse中使用)
此时再去提交即可。

8、时光机(历史版本)

点击 Team - 显示资源历史记录
SVN教程(Eclipse中使用)

解决方法

修改svnserve文件
SVN教程(Eclipse中使用)
再次点击 Team - 显示资源历史记录
SVN教程(Eclipse中使用)
可以双击打开各个版本,想要回到哪个版本就右键单击 Switch to revision x