第一步:快速上手 Linux 安装svn
安装:apt-get install subversion(apt-get安装)
安装 : yum install subversion(yum安装)
测试是否成功
svnserve --version
svnserve,版本 1.6.6 (r40053)
编译于 Dec 12 2009,05:04:54
Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
下列版本库后端(FS) 模块可用:
* fs_base : 模块只能操作BDB版本库。
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。
Cyrus SASL 认证可用。
第二步:建立根目录
svnadmin create /backup/svn/newrepos
ls repos
conf/ dav/ db/ format hooks/ locks/ README.txt
测试一下
mkdir /test
vi /test/a.txt
输入 aaaaaa1
import导入文件
svn import /test file:///backup/svn/newrepos/some/project
svn: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options
svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR is set, and no 'editor-cmd' run-time configuration option was found
产生原因:
没有设置svn编辑器的环境变量,主要是import、commit中填写comment要用
解决方法:
编辑 /etc/bashrc 文件,加入如下一行:
export SVN_EDITOR=vim
温馨提示:
编辑完以后一般需要让配置文件立即生效,可执行命令:
source /etc/bashrc
启动SVN
锁定一个分支
svnserve -d -r /backup/svn/newrepos/ --listen-host 211.124.27.20
直接在所有SVN下得目录都起效,且不分域名
svnserve -d -r /backup/svn/
SVN mac系统在建立以后,不需要import东西进去直接checkout 就行了。
svn checkout svn://java-er.com/lxm/ lxm
然后就会checkout一个空目录,自己加东西 就好了。
svn add * --force
如何弹出vim让你写东西,别紧张,那是需要写一个注释,写完wq
但是在导入后,用来的目录树并没有转换成工作拷贝,为了开始工作,还是需要运行svn checkout导出一个工作拷贝。因为导入后,文件在版本库中是以特殊的形式存在db文件夹中的,不能以明文的方式查看。必须使用svn checkout导出工作副本(workcopy)才能以正常方式查看。
解惑:月小升初次看到file:// 这个结构以为是别人搞错了。file://这个模式以前在windows下老看见这路径,心想linux怎么会有这个东东,结构发现这个结构还就是SVN的用法。
服务器上执行的导入脚本
svn checkout file:///backup/svn/newrepos/some/project /workcopy
根目录下多了一个workcopy
成功了。
第三步:本地读取
本地试试直接命令行模式
svn checkout svn://211.124.27.20/ test
下载成功了。
第四步:密码
用户和密码的设置
#去掉#[general]前面的#号
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库的路径,去掉前面的#
password-db = passwd
注意:所有的行都必须顶格,否则报错。
建议:为了防止不必要的错误,建议你直接用我上面的内容覆盖掉文件原来的内容
修改配置文件passwd。
代码
[users]
yuexiaosheng = *******
authz文件控制权限
[groups]
admin = tom1,tom2,yuexiaosheng
[/]
@admin=rw
*=r
重启SVN
不输入密码读取下
svn checkout svn://211.124.27.20/ test1
Authentication realm: 9d495645-ebf4-41af-b4cf-beee4fe0f067
显示没用权限。
带着用户登陆,需要这样写
svn --username=yuexiaosheng checkout svn://211.124.27.20/ test1
提示输入密码输入我的密码******
文件顺利下载了。
第五步
防火墙设置
svn默认端口是3690,你需要在防火墙上开放这个端口。
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT
/sbin/service iptables save
停止SVN服务器:killall svnserve