步骤一:下载
下载安装
#下载
yum install -y subversion
运行以下命令查看SVN版本。
svnserve --version
步骤二:配置SVN
-
运行以下命令创建版本库根目录。
mkdir /var/svn
-
依次运行以下命令创建版本库。
cd /var/svn
svnadmin create /var/svn/svnrepos
-
依次运行以下命令查看自动生成的版本库文件。
cd svnrepos
[root@web01 svnrepos]# ls conf db format hooks locks README.txt
Subversion目录说明如下表:
目录 | 说明 |
---|---|
db | 存放所有的版本控制数据文件。 |
hooks | 放置hook脚本文件。 |
locks | 用来追踪存取文件库的客户端。 |
format | 一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号。 |
conf | SVN版本库的配置文件(版本库的访问账号、权限等)。 |
4.设置SVN版本库的账号和密码。
- 运行
cd conf/
命令。 - 运行
vi passwd
命令,打开用户配置文件。 - 按
i
键进入编辑模式。 - 移动光标至
[users]
下,添加用户账号和密码。
#说明
添加账号和密码的格式为:账号 = 密码。例如,userTest = passWDTest,如下图所示(注意等号两端要有一个空格)。
- 按
Esc
键退出编辑模式,并输入:wq
保存并退出。
5.设置账号的读写权限。
- 运行
vi authz
命令,打开权限控制文件。 - 按
i
键进入编辑模式。 - 移动光标至文件末尾,并添加如下代码(其中,userTest表示账号,r表示读权限,w表示写权限)
[/]
userTest=rw
- 按
Esc
键退出编辑模式,并输入:wq
保存并退出。
6.修改SVN服务配置。
- 运行
vi svnserve.conf
打开SVN服务配置文件。 - 按
i
键进入编辑模式。 - 移动光标找到如下配置行,删除行前面的注释符#和空格
#说明
每行不能以空格开始,且等号两端要有一个空格
anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos #认证空间名,版本库所在目录
- 按
Esc
键退出编辑模式,并输入:wq
保存并退出。
7、运行以下命令启动SVN版本库。
本文示例中,启动命令直接指定到版本库。
svnserve -d -r /var/svn/svnrepos/
#说明
运行killall svnserve命令可停止SVN服务。
8、运行命令ps -ef |grep svn
查看SVN服务是否开启。
如果返回结果如下图所示,表示SVN服务已经开启。
步骤三:使用Windows客户端测试
-
在本地下载并安装TortoiseSVN客户端。
-
在本地项目文件夹内的空白区域单击鼠标右键。
本示例中,项目文件夹为C:\Test。
-
在弹出菜单中,选择SVN检出。
-
填写如下信息后,单击确定。
5.验证
远端查看
[root@web01 ~]# svn list svn://10.0.0.7/
搭建SVN.txt
客户端命令:
-
Checkout(CO):将代码库的副本(工作副本)下载到本地文件系统。
svn checkout URL [PATH]
-
Add:将新创建的文件或目录添加到版本控制。
svn add [FILE/DIR]
-
Commit(CI):将本地更改提交到代码库,以便在版本历史中记录。
svn commit [FILE/DIR] -m "Commit message"
-
Update(UP):将代码库中的最新更改更新到本地工作副本。
svn update [PATH]
-
Status:显示工作副本中文件的状态,如是否修改、已添加等。
svn status [PATH]
-
Log:显示指定文件或目录的提交历史。
svn log [PATH]
-
Diff:显示文件之间的差异,可以比较工作副本与代码库中的版本。
svn diff [FILE]
-
Revert:还原工作副本中的更改,使其与代码库版本保持一致。
svn revert [FILE]
-
Delete(DEL):从版本控制中删除文件或目录。
svn delete FILE/DIR -m "Deletion message"
-
Move(MV):在版本控制中移动或重命名文件或目录。
svn move SOURCE TARGET -m "Move/Rename message"
-
Info:显示有关工作副本或文件的详细信息。
svn info [PATH]
-
Export:将指定版本的文件导出到指定目录,不包含版本控制信息。
svn export URL [PATH]
远端命令
add: 将新创建的文件或目录添加到版本控制。
blame: 显示文件每一行的最后一次修改信息(文件注解)。
cat: 输出文件的内容。
changelist: 将文件添加到指定的变更列表。
checkout: 将代码库的副本(工作副本)下载到本地文件系统。
cleanup: 清理工作副本中的锁定和临时文件。
commit: 将本地更改提交到代码库,以记录在版本历史中。
copy: 复制文件或目录。
delete: 从版本控制中删除文件或目录。
diff: 显示文件之间的差异。
export: 将指定版本的文件导出到指定目录,不包含版本控制信息。
help: 获取帮助信息。
import: 将本地文件或目录导入到代码库。
info: 显示有关工作副本或文件的详细信息。
list: 列出目录内容。
lock: 对文件或目录加锁。
log: 显示提交历史日志。
merge: 合并不同分支之间的更改。
mkdir: 创建新目录。
move: 移动或重命名文件或目录。
patch: 应用补丁文件。
propdel: 删除文件或目录的属性。
propedit: 编辑文件或目录的属性。
propget: 获取文件或目录的属性。
proplist: 列出文件或目录的属性。
propset: 设置文件或目录的属性。
relocate: 修改工作副本的 URL。
resolve: 解决冲突。
resolved: 标记文件冲突为已解决。
revert: 还原工作副本中的更改。
status: 显示工作副本中文件的状态。
switch: 切换工作副本到不同的分支或目录。
unlock: 对文件或目录解锁。
update: 将工作副本更新为代码库中的最新版本。
upgrade: 升级工作副本到新的格式