SVN版本库搭建

一 、svn for linux 服务器端配置

1.安装svn服务
# yum -y install sv

2.创建svn根目录,用来存放代码仓库
# mkdir /home/svn

3. 创建代码仓库
# svnadmin create /home/svn/project

4. 修改代码仓库的配置文件
4.1 修改仓库的svnserve.conf配置文件, 需要注意的是svnserve.conf文件配置中各参数之前不能含有空格。否则更新上传文件时却提示“svnserve.conf:12: Option expected”错误
# vi /home/svn/project/conf/svnserve.conf
anon-access = none //匿名用户不可读
auth-access = write //授权用户可写
password-db = /home/svn/project/conf/passwd //账号文件路径
authz-db = /home/svn/project/conf/authz //权限文件路径
4.2 添加svn账号
比如我添加了一个用户名为test密码为test的svn账号
# vi /home/svn/project/conf/passwd
[users]
# harry = harryssecret
# sally = sallyssecret
test = test
4.3 赋予svn账号权限
在代码仓库project的authz配置文件的末尾添加两行
# vi /home/svn/project/conf/authz
[/]
test = rw
这两行的意思是,目录[/](代码根目录)下的所有文件,如果没有特殊约定的话,test用户将具有读(r)和写(w)的权限。

5. 启动svn版本库
# svnserve -d -r /home/svn/project
# netstat -antple | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LIST //看到3690端口说明svn启动成功
# killall svnserve //关闭svn服务,再次启动的时候需要执行svnserve -d -r /home/svn/project

6. 制作svn服务svnserve快捷启动并设置为开机自动启动
yum安装的subversion自带svnserve控制脚本 /etc/init.d/svnserve,在该文件第一行加入存放代码仓库的根目录变量。
# vi /etc/init.d/svnserve
OPTIONS='--root=/home/svn'
保存配置,就可以使用svnserve脚本来控制svn服务的状态了
# service svnserve stop
Stopping svnserve: [ OK ]
# service svnserve start
Starting svnserve: [ OK ]
# service svnserve restart
Stopping svnserve: [ OK ]
Starting svnserve: [ OK ]
# chkconfig --add svnserve
# chkconfig --level 235 svnserve on
# chkconfig --list |grep svnserve
svnserve 0:off 1:off 2:on 3:on 4:off 5:on 6:off
关于linux中的7种启动级别解释
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
0和6一般不用

二、TortoiseSVN客户端使用方法

1. 在客户端电脑上安装TortoiseSVN软件
windows7上不显示TortoiseSVN快捷图标解决办法
打开注册表找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\
将跟Tortoise相关的目录(大概9个),重命名这些目录,不要删除原来目录的名字,在各个目录前面添加一个数字序号,从0开始,0到8
修改了注册表之后,重启下电脑就可以了。

2. 本地文件夹SVN Checkout配置
仓库URL地址填写 svn://服务器ip 或者svn://服务器ip:3690
chekout directory设置为本地文件夹路径
点击OK
输入svn用户和密码(如上面我创建的test用户)即可连接到linux svn服务器 ,开始下载仓库中的数据了。
下载成功后,文件夹前面会有个绿色的对号。

3.如果文件修改了,文件图标上会变成叹号。
如果要提交修改的文件,可以右击该文件或者选中多个修改的文件,选择“SVN Commit”,在弹出的对话框中必须填写注释信息Message,否则会提交失败。

4.新添加的文件或者文件夹前面会是问号。
如果要提交这样的文件,可右击文件,选择TortoiseSVN->Add,也需要填写Message项。

三 、 Windows服务器上svn使用

1. 在windows服务器上安装 VisualSVN-Server软件包
2.在VisualSVN-Server软件里面创建代码仓库 创建svn账号
打开VisualSVN Server Manager 右键 Repository 在弹出的快捷菜单中选择Create New Repository 根据向导的默认提示完成仓库的创建。
在VisualSVN Server Manager窗口,左侧Users ,右键Users 在弹出的快捷菜单中选择Create New User选项 完成svn账户的创建 。
版本仓库数据路径:SVN软件安装目录\版本仓库目录\db\revs\ 下
3.客户端安装TortoiseSVN 进行checkout ,其中url地址为 https://服务器ip/svn/仓库名字

四、TortoiseSVN客户端重新设置用户名和密码

解决办法:
在TortoiseSVN的设置对话框中,选择“已保存数据(saved data)”,在“认证数据(Authentication data)”那一行点击“清除(Clear)”按钮,清楚保存的认证数据,再检出的时候就会重新跳出用户名密码输入框。

五、SVN恢复被TortoiseSVN del 删除掉的数据

进入版本库里面的东西,仓库不坏事删不掉的,每一次的commit实际上就是产生一个新版本,旧版本的文件都在的。
恢复方法如下:
1. 本地进行TortoiseSVN update操作,会显示Completed At revision:X , 点击show log查看版本库的历史记录 , show all查找所有版本库历史记录。
2. 找到删除该文件或者文件夹的版本,在Log message里右键Revert the changes from this revision
3. 该文件或文件夹就被恢复到本地的working copy中了。如果是误删除的,commit到Repository里就行了。
更多相关内容,点击此处

六、取消本地文件夹的SVN关联

通过windows注册表的方式来实现取消svn关联
1. 创建一个名字为取消svn关联.reg文件
文件内容为
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="取消SVN关联"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""

2. 双击这个svn关联.reg文件,将其导入系统注册表中去
3. 在需要取消svn关联的目录上右键,快捷菜单中有“取消SVN关联” ,点击“取消SVN关联”即可。

相关新闻

联系我们

全国服务热线

400-033-9553

电子邮件:admin@example.com
工作时间:09:00-17:00 周一至周五

在线客服
关注微信
关注微信
分享本页
返回顶部