最近在公司里,我们几个新人成为了一个项目组,需要共同完成一个项目,头头让我弄个svn,方便大家维护代码。于是,在过了多少年用u盘拖代码的时光后,终于要走上正规军的道路了,自己折腾了半天,终于搞定,写个blog分享一下。
1.首先自然是下载svn啦
$ sudo apt-get install subversion
2.下载好后,个人推荐使用ubuntu软件中心里的kdesvn来进行日常使用,毕竟图形化的界面看上去舒服点。
ubuntu软件中心里有好几个图形化界面的svn客户端,要是kdesvn用不了,也可以用别的,功能都差不多。
kdesvn下载好后,个人觉得为了配置方便,暂时还是回到命令行里操作。
3.创建仓库文件夹:
$ cd /home
$ sudo mkdir MySVNRepo
$ sudo chown -R root:subversion MySVNRepo$ sudo chmod -R g+rws MySVNRepo
4.接下来,将刚才创建的文件夹设置为 SVN的版本仓库:
$ sudo svnadmin create /home/MySVNRepo
5.然后修改修改仓库里的配置文件,仓库目录里的conf下的svnserve.conf和passwd文件。
svnserve.conf里可以配置权限,具体操作可以看文件中的英文提示信息。
在passwd文件里,[users]下添加 “用户=密码”,例如我设置用户名是ritterliu,密码是123456:
[users]ritterliu=123456
此处可以添加多个用户信息。
6.然后将项目导入版本仓库中去
$ svn import -m “New import”/home/target file:///home/MySVNRepo
格式为 “$ svn import -m “Log信息”/项目路径 file:///仓库路径 ”
权限不够时,使用sudo执行。
7.此时,svn版本库就弄好了,下面要做的就是从版本库中下载代码到本地了。
首先启动svn服务
$ svnserve -d -r /home/MySVNRepo
d 表示在后台运行,r 是选择仓库,后加仓库路径。
如果要设置开机自动启动,只需要写一个简单的脚本,例如,在/home里写一个svn.sh的脚本,内容如下:
#!/bin/bash
svnserve -d -r /home/MySVNRepo
然后给它赋予执行权限
$ chmod +x svn.sh
接着,再用root权限打开/etc/init.d/rc.local文件
$ sudo gedit /etc/init.d/rc.local
在文件最后加上 ./home/svn.sh 即可。
通过 ps -A 命令可以查看svnserve是否启动。
8. svn服务启动后,就是从版本仓库中下载下来项目了,如果是本机下载,使用
将项目下载到目标文件夹中即可,我设置的是/home/workCopy中。如果是局域网内其他机子,如果启用svnserve的机子ip是192.168.1.123,使用
$ svn co svn://192.168.1.123 /home/workCopy
以 “$ svn co svn://svnserve机ip地址 本机存放目录” 的格式,就可以将svnserve上的项目下载到局域网内机子的目录里了。
一开始可能要求你输入ubuntu系统权限的密码,然后要求你输入svnserve的用户名和密码,输入在/home/MySVNRepo/conf/passwd里设置的用户和密码即可。
9.现在,就该图形化界面的kdesvn上场了,在本机和其他机器里都打开kdesvn,在open里打开workCopy目录(就是从svnserve里co下来代码的目录),然后可能要求你输入用户名和密码,输入在/home/MySVNRepo/conf/passwd里设置的用户和密码即可,workCopy里的文件就显示在kdesvn里了。
一台机子里随便做个修改,然后commit,然后去另外的机子上update看下,修改就同步了。