安装
幸运的,Subversion 已经包含在 main 仓库中。所以,要安装 Subversion,您只需要简单的运行:
$ sudo apt-get install subversion $ sudo apt-get install libapache2-svn
如果系统报告了依赖关系的错误,请找出相应的软件包并安装它们。如果存在其它问题,也请自行解决。如果您是再不能解决这些问题,可以考虑通过 Ubuntu 的网站、Wiki、论坛或邮件列表寻求支持。
服务器配置
您应该已经安装了上述的软件包。本节将阐述如何创建 SVN 文件仓库以及如何设置项目的访问权限。
创建 SVN 仓库
许多位置都可以放置 Subversion 文件仓库,其中两个最常用的是:/usr/local/svn 以及 /home/svn。为了在下面的描述中简单明了,我们假设您的 Subversion 文件仓库放在 /home/svn,并且你的项目名称是简单的“myproject”。
同样的,也有许多常用的方式设置文件仓库的访问权限。然而,这也是安装过程中最经常出现错误的地方,因此我们会对此进行一个详细说明。典型的情况下,您应该创建一个名为“Subversion”的组来拥有文件仓库所在的目录。下面是一个快速的操作说明,有关内容请参考相关文档的详细说明:
- 在 Ubuntu 菜单上选择“系统->系统管理->用户和组”;
- 切换到“组”标签;
- 点击“添加组”按钮;
- 组名为“subversion”;
- 将您自己和“www-data”(Apache 用户)加入组成员中;
- 点击“OK”以确认修改,关闭该程序。
或者使用命令完成上述功能(增加组,并且把用户加到组里):
sudo addgroup subversion sudo usermod -G subversion -a www-data
再或者直接使用命令编辑组文件"sudo vi /etc/group",增加组和成员(不推荐):
$ sudo vi /etc/group
结果看上去,像这样。
$ cat /etc/group|grep subversion subversion:x:1001:www-data,exp
您需要注销然后再登录以便您能够成为 subversion 组的一员,然后就可以执行签入文件(Check in,也称提交文件)的操作了。
现在执行下面的命令
$ sudo mkdir /home/svn $ cd /home/svn $ sudo mkdir myproject $ sudo chown -R root:subversion myproject
下面的命令用于创建 SVN 文件仓库:
$ sudo svnadmin create /home/svn/myproject
赋予组成员对所有新加入文件仓库的文件拥有相应的权限:
$ sudo chmod -R g+rws myproject
如果上面这个命令在创建SVN文件仓库之前运行,你可能在后续Check in的时候遇到如下错误:
Can't open '/home/svn/myproject/db/txn-current-lock': Permission denied
查看txn-current-lock文件的权限和用户以及组信息,应该类似于:
$ ls -l /home/svn/myproject/db/txn-current-lock -rw-rwSr-- 1 root subversion 0 2009-06-18 15:33 txn-current-lock
除了权限以外,用户及其组如果不对,则仍然会遇到上述问题,可以再次运行命令:
$ sudo chown -R root:subversion myproject
证书登陆方法(推荐)
下载pageant.exe, plink.exe, putty.exe, puttygen.exe
(http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
用自己的账号登录到.192.168.0.159.运行ssh-keygen生成公共密钥和私人密钥,公共密钥以.pub结尾,过程中会提示用户输入passphrase, 这是密钥的密码
将公共密钥重命名为authorized_keys, 放在~/.ssh目录下
cd ~/.ssh
mv id_rsa.pub authorized_keys
将私人密钥拷贝到共享目录
mv id_rsa /home/share/program/yourname_rsa
然后去//192.168.0.159/data下载到本机
为了安全性记得删除linux上的yourname_rsa
打开Puttygen.exe, Conversions->import key
选择yourname_rsa(你的私钥)
然后Save private key
打开putty,在session,hostname中输入192.168.0.159.connection type 选ssh; saved session输入要保存的会话名,如tracesvn.在connection->data的auto-login username 中输入自己的用户名。在connection->ssh->auth中的private key for authentication中选择转换的私人密钥。然后回到session中,点save
打开pagent,点add-key,添加转换的私人密钥,Pagent会提示输入密码
用putty载入保存的mysession会话点open,看能不能自动登录而不需要密码,如果不能自动登录说明配置有问题
在任意文件夹中点右键会出现tortoiseSVN的菜单,点check out菜单。在url of repository中输入svn+ssh://tracesvn/home/svn/trace/ tracesvn是putty中保存的会话的名字。可以看到svn开始检出文件了,而不再需要输入用户名跟密码了
使用SVN进行文件版本管理
Update:从服务器下载最新的文件版本
Commit:将本地的文件提交到服务器
添加文件:拷贝到trace目录后,右键TortoiseSVN->add…
删除文件: TortoiseSVN->Delete
改名: TortoiseSVN->Rename…
所有的操作必须commit后才会提交到服务器
Commit界面
Message填写此次修改的内容,以后需要历史版本时方便查找
下面的文件列表可以选择想要提交的文件
更详细使的用方法请查看 /trace/SVN服务器使用说明/ TortoiseSVN-1.6.7-en.pdf
感谢程波师兄,此文部分引用自他的文档
参考文献:http://wiki.ubuntu.org.cn/SubVersion