Windows 下搭建 使用SVN,以及在eclipse中配置使用SVN服务

Windows 下搭建 使用SVN,以及在eclipse中配置使用SVN服务


目录

一、安装Visual SVN

二、配置SVN

三、安装TortoiseSVN

四、上传项目到远程仓库

五、从远程仓库下载项目

六、检出项目

七、版本回退

九、在Eclipse中安装插件subclipse

十、上传项目到svn服务器

十一、提交项目

十二、从svn检出项目到eclispe

十三、eclipse代码提交到svn服务器上

十四、从svn更新eclipse代码

十五、错误整理


 一、安装Visual SVN

 下载VisualSVN Server:http://www.visualsvn.com/server/download/

 

安装过程如下:

 

 

 

Location是指VisualSVN Server的安装目录

Repositorys是指定你的版本库目录

Server Port指定一个端口,推荐8443端口

 

 

在这选择免费使用45天 

 

 

等待进度条完毕 

 

安装完成后点击finish,打开软件

 

右边表示的状态信息 

 


二、安装TortoiseSVN

下载TortoiseSVN :http://tortoisesvn.net/downloads.html 

此处我下载的是10版本,推荐下载12版本,因为后面汉化会出问题 

 

下载汉化包 

 

安装过程如下 

 

 

 

汉化包安装,安装过程很快 

 


三、配置SVN 

配置仓库url,地址为本地物理网络地址,我的是192.168.239.1 

 

 

添加一个代码库,左侧Respositories上右键菜单中选择创建一个代码库 

 

选择仓库类型,选择第一种就可以了 

 

设置仓库名字 

 

 

仓库使用权限设置 

 

创建仓库的所有信息 

 

创建完成后,进入server软件,刷新后可以看到刚刚创建的仓库 

 


这里有个排错,可以看到我的server软件侧边栏中缺失了user 和group两项

解决方法如下图:

选择use subversion authentication即可解决 

 


 在侧边栏user 右键新建用户

 

设置用户名和密码 

 

 

将用户添加到刚刚创建的仓库中 

 

 

复制仓库的url链接 

 

在浏览器中粘贴url访问仓库,有些浏览器可能不能正常显示,多选择几个浏览器就可以 

 

 


四、上传项目到远程仓库

在本地创建两个TXT文本文档进行测试使用

 

本地右键FirstRep目录,选择TortoiseSVN,导入 

 

将仓库URL填入,下面空白处可以填写日志信息,需自己手动输入,后面需要输入自己创建的用户名和密码 

 

 

 

刷新后可以看到两个txt文件已经被加入仓库 

 

 


 五、从远程仓库下载项目

首先右键点击自己创建的(cangku)文件夹,右键选择copy URL toCLipboard备用

然后再进入自己创建的test文件夹,在电脑的空白处单击右键,选择export导出 

 

 


 六、检出项目

看见检出文件夹下文件上有绿色对号即为成功 


在此可能会遇到检出后文件夹无绿色对号

 


 七、版本回退

查看仓库日志

可以看到两个版本信息 

选择较早的一个版本,点击复原 

 

 

 


 八、在Eclipse中安装插件subclipse

Eclipse-->Help-->install new software --> 点击Add按钮,输入下载地址:http://subclipse.tigris.org/update_1.10.x 点击ok;

 

 

安装成功后进入view查看svn服务 

 

 点击SVN资源库

 

 

在空白处右键新建资源库位置 

 

复制仓库url 

 

 

新建成功 

 


九、提交项目

右键点击项目,选择team->share project

 

 

再次右键点击提交 

 

刷新后提交成功 


十、 检出项目

 点击右键 import

选择检出项目 

 

因为之前提交的时候文件夹里已经存在同名文件所以有以下提示,点击是即可

 


十一、 eclipse代码提交到svn服务器上


错误整理

1.eclipse中SVN插件搭建无响应

2.Tortoise SVN汉化无效

3.检出后不显示绿色对勾 

4.配置svn时侧边栏不显示user项目

5.在eclipse中使用svn时项目侧边栏消失 


LINUX下svn搭建

客户端svn(大家见到的小乌龟)下载地址为:http://tortoisesvn.net/downloads.html

1)安装svn服务器

# yum install subversion

这里写图片描述

2)创建一个目录用来存放所有的svn版本库(后期客户端更新时,有优势,后面会提到)

# mkdir /svn

这里写图片描述

3)在svn目录下创建一个版本库 repositoryA

# svnadmin create /svn/repositoryA

这里写图片描述

4)查看并分析生成的文件

# ls /svn/repositoryA

这里写图片描述

conf目录:版本库的配置文件,包含用户访问账号、权限等
db目录:存放数据
format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号(可以用vi打开看一下)
hooks目录:放置hook脚本文件的目录
locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端
README.txt文件:说明文档

 

5)修改svnserve.conf 配置文件

# vi /svn/repositoryA/conf/svnserve.conf

这里写图片描述
这里写图片描述

打开并修改下面几个注释(或者直接添加,原来的注释就不用打开)
[general]  # 如果是直接添加到最后面,不要忘记加这条,否则客户端更新的时候会不用权限直接检出,提交时又报没权限
anon-access = none # 匿名不可读写,可以为write,read,none,默认为read,建议为none
auth-access = write # 验证用户可读写
password-db = /svn/repositoryA/conf/passwd # 指向用户名和密码的数据文件,地址不要写错,不然会报authorization failed
authz-db = /svn/repositoryA/conf/authz # 指向用户的权限配置文件,地址不要写错,不然会报authorization failed
realm = repositoryA         #客户端检出时,提示信息

 

6)添加访问用户及密码

# vi /svn/repositoryA/conf/passwd

这里写图片描述
这里写图片描述

testUser1 = 123456 # 前面是用户名,后面是密码
testUser2 = 123456 # 这里建两个用户,为了说明配置权限时,可以分组管理
保存退出: wq

 

7)管理用户权限

# vi /svn/repositoryA/conf/authz

这里写图片描述
这里写图片描述

[groups]
admin = testUser1,testUser2    # 可以通过一个变量管理多个权限一样的用户,用户之简用逗号“,”隔开
[/]                # 这里 / 表示对根目录(即/svn/ProjectA目录)下的所有子目录范围设置权限;
@admin = rw                 # rw表示可读写, r表示只读 
* =                         # 这一行很重要,表示除了上面设置的权限用户组以外,其他所有用户都设置空权限,


如果有多个groups,要先把用户分组变量全部赋值,比如
admin = testUser1
art = testUser2
后面再分组给权限
[/]
@admin = rw
[/]
@art = rw

而不能将用户分组变量分开写
admin = testUser1
[/]
@admin = rw

art = testUser2
@art = rw

这样检出的时候会提示配置错误

8)开启svn服务
到这里,我们已经完成了svn服务端软件的下载,创建了版本库,并添加了用户以及相应的权限,最后我们只要开启svn服务即可。
这这里我们要考虑后期添加新的版本库问题,这里提供两种方法开启svn服务。

第一种: 直接开启对应的版本库,一个端口指向一个版本库(默认svn对应的端口为3690)

#svnserve -d -r /svn/repositoryA  

这里写图片描述

这时重复2-7步,再添加一个版本库repositoryB。这里用

#svnserve -d -r /svn/repositoryB 

  开启版本库repositoryB时,会提示svnserve: Can’t bind server socket: Address already in use
因为svn默认使用的端口是3690,而之前在开启版本库repositoryA已经使用,所以这里提示已经使用
所以我们应该换个端口,这里假设端口3691未被使用,则可以使用

#svnserve -d -r /svn/repositoryB --listen-port 3691

注意: 这时客户端检出时,只要指定端口,就能检出对应的版本库,因为
svn://192.168.10.50:3690 对应 服务端的 /svn/repositoryA目录
svn://192.168.10.50:3691 对应 服务端的 /svn/repositoryB目录
(这里192.168.10.50是服务端的ip,你们根据自己服务器信息填写ip)

这里写图片描述

第二种: 开启版本库所在的目录(建议使用这种)

#svnserve -d -r /svn/

这时在客户端检出的时候,不用关心端口(默认3690),只要加入对应的版本库名就可以了,因为
svn://192.168.100.50:3690 对应 服务端的 /svn目录

svn://xxx.xxx.xxx.xxx/repositoryA
svn://xxx.xxx.xxx.xxx/repositoryB

补充:这里每个版本库都用自己的配置,每增加一个版本库就要重新配置一份,显然不够便捷,下次补充如何让多个版本库共用一份配置

svn 相关命令补充 :

  • 查看svn程序监听的所有端口以及PID信息:
netstat -anp |grep svn
  • 查看svn进程信息:
ps -ef|grep svnserve
  • 杀死svn进程:(根据上面查看svn进程信息,根据进程ID杀死指定进程)
kill -9 PID
      <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-258a4616f7.css" rel="stylesheet">
              </div>

猜你喜欢

转载自blog.csdn.net/qq_23090489/article/details/90902798
今日推荐