目录
前言
windows
服务端
客户端
linux CentOS
第1章 CentOS下搭建SVN服务器
1.1 SVN简介
1.2 SVN安装
第2章 通过客户端进行连接
2.1 下载客户端并安装
2.2 中文设置
2.3 使用说明
报错记录
Please execute the ‘Cleanup‘ command.
前言
本文随时更新,源地址:
windows
(2021-05-15 00:00:40)
VisualSVN server 服务端和 TortoiseSVN客户端搭配
服务端
Windows下安装Subversion服务端和TortoiseSVN客户端详细教程:https://wenku.baidu.com/view/a1a15b3443323968011c9258.html - 百度文库
VisualSVN Server的下载:http://www.visualsvn.com/server/download/
TortoiseSVN 的 下载:http://tortoisesvn.net/downloads.html
在网页下面还有一个Language packs,你可以选择简体中文,下载后直接安装,最后勾选立即使用即可。
一 、安装Visual SVN
首先下载VisualSVN Server
【1 】打开后一路下一步,有协议点同意
【2】 选择 visualVSN服务器和管理控制台 或只有管理控制权限
选个标准版或企业版
【3】选择程序安装的路径、Subversion Repository(库)的路径和所使用的协议和端口以及备份路径
Location是指VisualSVN Server的安装目录,
Repositorys是指定你的版本库目录,
Server Port指定一个端口,
Use secure connection勾上表示使用安全连接。
继续【Next】到【Finish】。
选择HTTP或HTTPS两种协议,
HTTPS的端口号默认可以选择443和8443
HTTP默认可以选择80、8080和81
在1.4版本后,Subversion加入了Service运行的功能。端口号可以任意定义。
个人偏向于使用HTTPS的8443端口,因为HTTPS安全性比较高,虽然443端口是标准HTTPS端口,但如果做WEB开发那肯定就有麻烦,同时Skype也会使用这个端口进行某些通讯。
还有就是下面的用于验证的身份,一个是windows验证,一个是Subversion身份验证,这里默认是Subversion身份验证。
【4】接着就是安装过程
【5】安装完成后会询问你是否需要运行VisualSVN Server Manager
【6 】点finish,打开“ VisualSVN Server Manager ”,如下:
右侧状态区包括:
Status:服务运行状态
SubversionAuthentication:账户信息
Respositories:代码库信息
二、配置SVN
1.创建远程仓库
修改URL:
如电脑IP是:192.168.100.100
右键 VisualSVN Server选择Properties
选中NetWork输入IP即可
添加一个代码库【Repository】,左侧Respositories上右键菜单中选择创建一个代码库,如下图:
之后会提示选择仓库类型:
- FSFS:根据标准的FSFS数据存储创建一个常规的Subversion存储库。
- VDFS:基于VisualSVN分布式文件系统创建分布式Subversion存储库。VDFS存储库充当标准的Subversion存储库,允许在地理分布的站点之间复制数据。
选择FSFS,输入仓库名字
- 选Empty,只创建空的代码库FirstRep;
- 选Single,则在代码库FirstRep下面会创建trunk、branches、tags三个子目录。
我们选Single
选择仓库的使用权限,选择所有用户
点击create之后带你finish,创建成功
2.创建用户并添加
在左侧的Users上点击右键:
输入信息,点击OK,我们就创建一个用户了。
按照上面的过程,分别添加用户其他用户就可以了。
下面我们开始添加这些用户到我们刚才创建的项目里。
点击刚才创建的库,右击选择属性(Properties)
点击上图中的"Add..."按钮,在下图中选择我们刚才添加的用户,
选中添加的用户还可以配置权限
注意这里的权限设置,要选择好。
点击"确定"按钮,上面的用户就具有了访问代码库的不同权限。
右键创建的仓库,选copy url ,然后到网页打开连接
之后会让你输入账号密码,然后就可以登陆了。
客户端
方法:
1.安装tortoiseSVN,过程不赘述。
2.桌面右键-->tortoiseSVN-->Repo-browser ,连接到原有的svn仓库。连接上之后显示如下:
3.在你想要存放新项目的文件夹上右键,选择Create Folder,输入文件夹名字。
4.输完之后会弹出一个提示框,让你输入这个文件夹的备注。注意,这里最好不要写汉字,我一开始输入的汉字,但是报了access denied错误,改成英文成功创建。
5.找一个空的文件夹,最好不要乱找,就在你平常存项目的地方新建一个就行。然后右键这个文件夹-->svn checkout如下图:
svn的路径就选择你刚才在svn中创建的你要放项目的那个文件夹,然后OK。
6.将你要上传的项目放在这个文件夹里面。
7.右键你放进来的项目-->svn add
8.选择select all 点击ok
9. 等待add成功后点击OK
10.右键你的项目-->svn commit。
11.选择all 点击OK
至此,就算完成了。
linux CentOS
2019-10-18 01:42:59,转自:
第1章 CentOS下搭建SVN服务器
1.1 SVN简介
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的
1.2 SVN安装
官网下载: Apache Subversion Binary Packages
SVN客户端TortoiseSVN :Downloads · TortoiseSVN
1.2.1 系统环境
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1.2.2 安装
使用yum命令安装svn
1 |
|
新建svn存储目录
1 |
|
新建一个测试仓库
1 2 3 4 5 6 7 8 9 |
|
以下关于目录的说明:
hooks目录:放置hook脚步文件的目录
locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端
format目录:是一个文本文件,里边只放了一个整数,表示当前文件库配置的版本号
conf目录:是这个仓库配置文件(仓库用户访问账户,权限)
1.2.3 配置SVN配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
1.2.4 配置访问用户及密码
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1.2.5 配置新用户的授权文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
说明:
[repo0:/] 代表对repo0所有版本库设置权限权限
[repo0:/21yunwei] 代表对repo0版本库下的21yunwei项目设置权限
[repo0:/21yunwei/demo] 代表对repo0版本库下的21yunwei项目的demo目录设置权限
admin = lqb,test2 创建admin组,组成员为:lqb,test2
user = test1 创建用户组,用户成员:test1
[test:/] 赋予根权限,为了便于管理和权限的控制,可以把权限细化到版本库中相应的目录,如[test:/test]这就是test项目下的一个目录
@admin = rw admin组有读写的权限
@user = r user组只有读的权限
*= 表示除了上面设置的权限用户组以外,其他所有用户都设置空权限,空权限表示禁止访问本目录,这很重要一定要加上
1.2.6 启动svn
1 |
|
注意:更改svnserver.conf时需要重启SVN服务,更改authz,passwd文件时则不需要重启服务
第2章 通过客户端进行连接
2.1 下载客户端并安装
首先安装SVN客户端,windows一般选择乌龟客户端Downloads · TortoiseSVN。
根据系统位数选择相应客户端进行安装
如果你喜欢用命令行操作,请务必记得勾选command line client tool
为will be install on local hard driver
,不用命令行的跳过这一步
然后一路next即可安装。安装完毕后,在任意地方右键查看快捷菜单。发现TortoiseSVN即表示安装成功。
如果勾选了安装命令行工具,那么输入命令SVN,有如下提示也表示安装成功
2.2 中文设置
但是此时菜单全是英文的,如果你不习惯英文,可以去下载语言包,记得下对系统位数
官网下载,上面有地址
安装完语言包之后,可以右键进入setting
设置
选择你喜欢的语言(比如中文),然后确定,不出意外,现在的语言已经切换到中文了
安装教程到此结束,下面开始介绍SVN的使用
2.3 使用说明
2.3.1 检出项目
假如项目已经在服务器的仓库里,那么现在你要做的就是把它检出到本地。
首先创建一个空文件夹。在空文件夹内右键,选择SVN检出
现在你看到应该是这个界面,填入版本库地址,选择确定
此时会弹出一个对话框让你输入账号密码,输入你的账号密码即可。记得勾选保存认证,不然每次操作都会让你输入。
等几分钟就可以检出完毕
此时在你的目录下就能看到你的项目,现在可以开始愉快的工作了
2.3.2 导入项目
但是有时候你已经在本地建立好了项目,需要把你项目推到SVN上,此时应怎么做呢?
右键选择版本库浏览器。
在相应目录下,右键,加入文件/加入文件夹,选择相应目录即可
比如我现在有个项目叫SVNProject,我想把它传到SVN上
那么我只需选择加入文件夹即可。
务必要输入提交信息。这样别人才能知道你干了什么
导入成功就能看到目录。
但是,不要以为导入成功就可以了。你还得重新检出,重新检出的项目才是受SVN控制的,务必记得检出
在SVNProject上右键检出到本地,然后在里面进行修改。现在就可以愉快的工作了。
检出过后的右键菜单变成了这样。
绿色表示当前文件没有被修改过(看不见颜色的重启下电脑就好了)。
假如我现在在我是新项目
.txt
中加了一行字,然后保存
发现现在变成了红色,红色表示已修改
怎么提交修改?
在根目录下,右键选择提交。
务必记得输入提交信息(虽然不输入也能提交),提交信息可以方便日后查看。
提交完毕后,可以发现又恢复到了绿色
假如现在加入了一个新文件。可以看出是蓝色的。蓝色表示不属于版本库的未知文件,未知文件是不能提交的。
记住选择增加把它加入到版本库里面去
增加完毕后,变成了蓝色加号,表示新增加的版本库文件
接下来,只需写代码,然后提交即可。
删除文件也应该右键提交,如下。
记得随时检查你的文件状态,如果没有添加到版本控制里要及时添加进去,不然你的文件提交不上去。
2.3.3 更新
假如你和B同学在协作。B同学写完代码提交到了SVN上,如果你想获取最新修改,就需要选择更新(如果服务器上已经有别人提交过的新的,你是提交不上去的,必须先更新再提交)。
怎么知道服务器有没有更新?你可以直接选择更新,有没有更新一下就知道。或者右键检查修改,然后检查版本库,就能看到服务器上改了哪些文件
右键选择HEAD和BASE比较。
左边的表示你的代码,右边的表示服务器上的代码
如果有修改记得及时更新到本地然后再继续工作
但是有时候更新会冲突,比如你和服务器上的改了同一个地方。
这时候你需要更新下来解决冲突。
它会提示你哪个文件冲突,你只需打开那个文件,按照需求解决冲突即可
<<<<<<.mine到====表示你的代码,其他表示服务器的代码。你只需改成你想要的
然后选择解决,告诉SVN我已经解决冲突了就行了
剩下的就是团队协作间的更新提交操作,这里不做赘述
2.3.4 查看日志
选择显示日志,可以看出团队里面的人干了什么
可以看出谁谁谁,什么时间,干了什么事。最后那一列信息是自己提交的时候写的。建议大家提交时务必要填写提交信息,这样别人一看就知道你干了什么。提交信息对于自己也是有好处的,时间长了也能看到当初做了什么。
2.3.5 版本回滚
如果你改了东西,但是还没有提交,可以使用还原功能。
但是如果我们写错了东西并且提交了上去怎么办?通过版本回滚可以将文件恢复到
以前的版本。右键更新至版本,通过查看日志来选择版本,然后回滚即可
有时候我们需要查看以前版本的代码。此时我们可以新建个文件夹检出到指定版本
2.3.6 版本控制
版本控制有好几种方法,如下。
在提交发布版本时添加版本信息,这是最简单的一种方法。
打标签
每次发布版本时应该打标签。右键选择分支/标记。在至路径以版本号打上标签即可
这样你就有了一个v1.0版本的标签。
以后如果你想查看某个版本的代码,只需切换过去就行
部分摘自这位大佬的博客:
报错记录
Please execute the ‘Cleanup‘ command.
2021-06-22 01:53:42
项目有个新的bug,我需要提取一个新的分支,但是提取之后,更新分支出现了这个问题
Please execute the ‘Cleanup’ command.
原因
由于使用SVN更新文件出错,导致SVN中断
解决方案
方案一:
点击TortoiseSVN
选择Clean up
选择Break write locks
ok
方案二:
如果方案一不行的话,可能是你的SVN操作挂起了
下载sqlite3工具
将sqlite3.exe文件解压缩到.svn目录的同级目录
打开命令行工具,切换到.svn的同级目录,执行如下命令
sqlite3.exe .svn/wc.db "select * from work_queue"
//该命令可以查看当前挂起的svn操作sqlite3.exe .svn/wc.db "delete from work_queue"
//该命令可以删除当前挂起的svn操作
之后进行方案一
方案三:
checkout一个新的.svn文件,替换旧的.svn文件