1 安装
sudo apt-get install subversion
2 配置和部署
创建用于存放版本库的目录
mkdir /var/svn
并在创建的目录下创建一个新的文件夹,文件夹的名称与将要上传至svn的项目名称一致(本例中为cglt3_1):
sudo svnadmin create /var/svn/cglt3_1
创建完成后,cglt3_1目录下会生成一些文件,进入conf目录下。conf目录中authz文件是权限控制文件,passwd是帐号密码文件,svnserve.conf是SVN服务配置文件。
【1】 修改passwd文件,加入用户,格式就是“用户名=密码”,如:zhaodaxin = zhaodaxin;
【2】 修改authz文件,加入用户权限:
[/]
zhaodaxin = rw
注意“[/]”不能少,且不是反斜杠。zhaodaxin 为用户名,rw表示赋予该用户读写的权限。若配置失败,可能会出现“svn: E220003: Invalid authz configuration”错误。
【3】 修改svnserve.conf(很重要),将下图中白色字体原有的注释删除。
【4】 启动svn服务:
svnserve --listen-port=8899 -d -r /var/svn
,
可通过ps -ef|grep svn
查看是否存在svn进程已确定svn是否启动成功。
3 SVN的使用
在导入项目前,首先需给/var/svn/cglt3_1文件夹赋予权限,否则会报“svn: E000013: Can’t open file ‘/var/svn/cglt3_1/db/txn-current-lock’: Permission denied”错误,赋予权限的方式为:
sudo chmod -R 777 /var/svn/cglt3_1
发现文件夹有绿色底纹(如下图)时成功。
3.1 项目导入
打开终端,将工作目录切换到所用上传的项目的目录(本例中cglt3_1放在桌面:cd Desktop),导入项目:
svn import cglt3_1 svn://localhost:8899/cglt3_1
3.2 项目更新提交
打开终端,将工作目录切换到所用上传的项目的目录,更新提交项目:
svn ci -m “comment”
-m “comment”为该版本代码添加注释。
3.3 项目导出
使用svn co svn://localhost:8899/cglt3_1 ./cglt3_1
命令将导入的项目导出到根目录的cglt3_1文件夹下。
注意:必须要导出,否则会报非工作目录的错误,导出之后将eclipse中的项目引向导出的文件夹(为了在eclipse中更改项目时同步更改文件夹内容),之后可使用svn add、svn ci等命令更新svn。
3.4 项目导出某个版本
SVN提供Command来完成这项工作,Command格式为:
svn co URL[repository URL] -r [version num]
其中version number为参数,可以为数字型的,也支持时间,SVN会自动Check Out最接近这个日期的版本。
例如
svn co svn://localhost:8899/buddle -r 29 ./buddle
4 在实际应用中遇到的问题
-
无法提交、导出(如下图)
解决办法:出现该问题时,可检查svn服务是否开启,在未开启服务的情况在是无法进行提交、导出等操作的。 -
Password for ‘(null)’ GNOME keyring错误
解决办法:rm ~/.gnome2/keyrings/login.keyring
-
svn log
解决办法:在svnserve.conf 文件中, 设置 anon-access = none