在linux服务器上安装SVN
一、安装SVN
用命令查看是否安装
svnserve --version
表示安装成功,如果出现command not found,执行
yum install -y subversion
再用命令,检查是否安装成功
svnserce --version
二、创建svn版本库
svnadmin creat /data/svn/repositories
已生成了配置文件,需要我们进一步修改
三、修改svn版本库配置
cd /data/svn/repositories
ls
cd conf
ls
①修改版本库配置
vim svnserve.conf
删掉一些#,anon-access = read修改为anon-access = none
②添加用户
vim passwd
③添加用户权限
vim authz
四、启动svn服务,设置开机自启
①启动服务
svnserve -d -r /data/svn/repositories
如果出现 svnserve: Can’t bind server socket: Address already in use报错
先杀死svn服务,再开启
killall svnserve
svnserve -d -r /data/svn/repositories
②设置开机自启
vim /etc/rc.local
添加一行
svnserve -d -r /data/svn/repositories
至此,服务器端的svn配置就完成了~
在windows下安装SVN客户版
一、下载SVN安装包和汉化包
链接: https://pan.baidu.com/s/1NO4fR_n388RULQVHyFHL5Q
提取码: nenu
二、安装
双击TortoiseSVN
无脑next,安装成功,不需要配置环境,简单方便。
三、汉化
双击中文包,安装
设置为中文
使用手册
一、svn检出
检出的目的是把服务器的代码,下载至本地
初次使用,可能会弹出登录界面
把刚刚在服务器配置的用户名和密码输入进去,勾选保存,下次自动登录
可在设置里面清除用户数据,下次登录切换用户
检出成功
二、svn提交
在test文件夹里面创建三个目录
trunk:保存主干任务
branch:保存分支任务
tags:保存标志性任务,对于每一个重大内容的突破,可以把版本存放于此
在trunk目录下继续创建目录trunk_project,里面添加一个测试文档test.txt,内容为“trunk_project的测试文档”
右键test文件夹,提交
完成!
打开版本库浏览器确认无误
三、加入
如果在文件夹内添加了文件,右键这个文件是不能直接提交的,需要先把它加入版本库中
之后右键,就有了提交的选项
四、更新
如果你和同事B在协作,同事B已经提交了一个“新建文本文档.txt”在服务器上,而你的文件夹只有你的工作成果“文本文档.txt”。这个时候就需要更新,把服务器上面的内容更新到本地,然后再提交,而自己的“文本文档.txt”不会被替换掉
服务器内容:
本地内容:
更新之后:
这样就可以提交了
所以先更新再提交,是一个好习惯
五、冲突
如果你和同事B同时改了同一个文件的不同的地方,同事B先提交,那么你提交时就会报错,发生了冲突
同时文件夹内多出一些文件,用来对比两个版本的不同之处
双击文件名,查看冲突内容
在解决冲突前,需要两人协商得出解决方案,不能一个人操作,只管自己的,这就是svn体现团队协作的功能之一
使用此文本块:接受一行
使用整个个文件:接受全部
已合并的文本会显示出最终的内容
改完之后,点一下“标记为已解决”,就可以正常提交了
六、版本回溯
显示日志,查看历史版本
1 . 复原到此版本
直接跳到某个版本,会把那个版本没有的文件删掉
2 . 复原此版本进行的操作
如果提交之后,后悔删除某个文件,点此选项可以把删除文件重新加到本地文件夹里面,原文件不变
七、创建分支
右键主干项目,点击分支/标记选项,创建分支
创建成功,实际上是吧trunk文件夹里面的项目“复制”到branch里面,而不是“剪切”
我们去版本库浏览器里面验证一下“复制”的这个想法
系统刚刚提示我们,使用切换命令
完成之后,本地文件夹,就会更新分支的项目
八、合并分支
我们分别在主干和分支上先放一些文件上去,分别提交
右键主干项目,合并
这里有两种合并方式,分别作介绍
1 .合并一个版本范围
转自:SVN三种合并类型
一、合并一个范围的版本(Merge a range of versions)
此类型应用最为广泛,主要是把分支中的修改合并到主干上来。在主干上点击右键选择合并,然后选择合并类型:合并一个范围的版本。合并的源URL填写的是要合并的分支的URL,待合并的版本范围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到分支当前最新版本的所有演变。如果只是选择其中一个版本,或者几个版本,那么就表示只是将制定的n个版本的变化合并到主干上。如果只是选择其中一个版本,那么表示只是选择那个版本的修改,之前或之后的修改将不被采纳。
合并成功之后,本地文件夹内的主干目录会加入分支的文件
用版本库浏览器查看服务器上的文件,还是原样。要重新提交才会更改
2 . 合并两个不同的树(慎用!)
此类型功能最强大,上一种类型可以选择分支合并的版本,主干不能选择版本;而这种类型则是无论是主干还是分支都可以选择合并的版本,即可以选择过去的一个主干版本与分支的某个版本进行合并。合并的时候以选择的分支版本为主,如果选择的主干版本与分支版本有不同的地方,合并时主干部分将被放弃。
·
起始URL:选择主干目录的URL(应当和当前工作副本的URL一致,这个是所谓的合并点)
结束URL:选择要合并的分支的URL。
·
起始和结束的版本:一般起始版本应当找到最后一次同步时的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合并进主干的话,也可以选择一个合并点。
回溯到合并前的版本,我们再来做尝试
看到已删除,有点可怕
果然原来属于主干的文件都没了,只有分支的文件