svn学习笔记

0、安装

1
yum install subversion

1. SVN的使用

1552751588707

1552751555530

1.1 服务端创建仓库

1
2
3
4
#创建版本库目录
svnadmin create <path仓库目录>
#启动svn服务器
svnserve -d -r <path仓库目录>

如在Windows下:

1
2
3
4
5
6
7
8
9
10
#建版本库
svnadmin create D:\DevelopmentTools\SVN\mysvn
#修改D:\DevelopmentTools\SVN\mysvn\conf\svnserve.conf
anon-access = write

#启动服务
#启动的路径决定svn://的路径
#如果启动的路径为D:\DevelopmentTools\SVN,那么svn://ip/mysvn
#如果启动的路径为D:\DevelopmentTools\SVN\mysvn 那么svn://ip
svnserve -d -r D:\DevelopmentTools\SVN\mysvn

1.2 版本仓库权限配置

(1)授权访问设置

修改具体版本库对的config/svnserve.conf

1
2
3
4
anon-access = none  #匿名访问权限, read表示只读,write表示读写,none表示无权访问
auth-access = write #开启授权可读写入
password-db = passwd #表示授权的用户名和密码放在passwd文件里
authz-db = authz #设置权限文件

(2)配置svn用户用户名和密码

修改config/passwd

1
2
3
[users]
zhangsan = 123456
lisi = 123456

(3)配置权限文件(设置svn用户和用户组的具体访问权限)

修改config/authz

1
2
3
4
5
6
7
8
9
10
11
12
13
[aliases]

#配置用户组
[groups]
dev = qcmoke,zhangsan,lisi

#配置用户组或用户对某个目录的执行权限
[/]
#用户组具有读写操作
@dev = rw

#配置其他用户没有任何权限
* =

客户端(命令行方式)

1
2
3
4
5
svn checkout svn://127.0.0.1 mysvn   #将服务端检出(下载)到本地的mysvn目录

svn update #同步服务端到本地
svn add svn.txt #添加至版本控制
svn commit -m "first commit" svn.txt #提交

1.3 Eclipse使用SVN

(1)eclipse安装svn插件

下载subclipse的site-1.10.13-1.9.x版本,并将site-1.10.13-1.9.x.zip将解压后放到***/eclipse/dropins里,并重启eclipse

1552788798683

(2)提交

首先创建好一个项目

1552800702548

1552791110090

添加svn服务仓库地址

1552791149595

如果是svn服务器设置允许匿名访问,那么就能成功。如果不能访问,可输入配置文件中的用户名和密码后即可完成提交。

1552795560589

登录提交的方式可以方便看到提交文件的具体用户

1552795693633

提交到svn服务器

1552789058502

添加提交信息

1552789112217

(3)SVN资源库研究

目的:查看svn服务器的版本仓库情况以及历史版本

1552789305337

1552789635316

(4)检出

目的:从svn服务器导入(下载)项目

1552791044545

1552791074752

1552791110090

添加svn服务仓库地址

1552791149595

如果是svn服务器设置允许匿名访问,那么就能成功。如果不能访问,可输入配置文件中的用户名和密码后即可完成检出。

1552791191237

点击finish

1552791248889

(5)解决冲突

设有两个人打开了不同的eclipse,分别对同一个版本的项目的DEMO.java进行修改

(张三)第一个人:

原版本(版本为6)

1
2
3
4
5
6
7
package demo;

public class DEMO {
public static void main(String[] args) {
System.out.println("hello world!");
}
}

修改:

1
2
3
4
5
6
7
8
package demo;

public class DEMO {
public static void main(String[] args) {
System.out.println("hello world!");
System.out.println("I am zhangsan");
}
}

修改好后提交(版本变为7)

(李四)第二个人:

原版本(版本为6)

1
2
3
4
5
6
7
package demo;

public class DEMO {
public static void main(String[] args) {
System.out.println("hello world!");
}
}

修改:

1
2
3
4
5
6
7
8
package demo;

public class DEMO {
public static void main(String[] args) {
System.out.println("hello world!");
System.out.println("I am lisi");
}
}

修改好后提交

提交后发现失败,这就是所谓的提交冲突

1552791869094

原因:

原因是服务端仓库的版本比李四当前的版本新,李四的当前版本已经过时了。

如何解决?

需要跟新李四的冲突文件。

1552792135999

1552792668415

编辑冲突:

1552792720865

1552792851536

1552792965540

修改好后ctrl + s 保存

标记已解决冲突

1552793051066

1552793114582

我们发现多出来的文件不见了,并且版本也与服务端版本一致了,也就是说可以正常提交了。

1552793174518

李四提交完成后打开SVN资源库研究即可发现服务端仓库的版本变成了更新的版本(原本服务端版本为7,现在变成了8)

1552793469132

(6)恢复到历史某个版本

1552796845370

右键某个版本,然后选择获取内容当前本地就会恢复到选择的版本

1552797190882

恢复后再提交的话,服务端的仓库也会"恢复到历史版本",这里打双引号的原因是服务端仓库只是恢复代码,但实际版本是再更新到了更加新的版本

(7)提交忽略文件设置

选择Team–> Git下面的Ignoreed Resources –>Add Pattern –>一个一个的添加输入要忽略的文件

  • .classpath

  • .settings

  • .project

  • target

最后点击Apply– >OK

(8)避免冲突

  1. 开发之前先更新,完成工作之后立即提交
  2. 团队合作时不同人之间应该自己修改自己的文件,尽少编辑公共文件


----------- 本文结束 -----------




如果你觉得我的文章对你有帮助,你可以打赏我哦~
0%