博客文章已转移到新地址,本地址暂时保留,新文章仅在新地址更新。[置顶]

linux安装SVN和配置

作者:小宝 2019-05-08 21:05:00

在window下面安装了svn后,可以在服务器进行版本控制、协作项目等,重点是还可以直接用GitHub提供的库地址进行svn版本控制,打算在linux服务器安装一个svn,用来同步我的代码以及版本控制。好习惯还是必要的,之前用git控制版本,可是换系统后git安装有点慢,所以打算用SVN试试,不喜欢再换成git吧。再Windows(win7-64)安装了svn后我在Ubuntu server安装一个svn。下面是在我的Ubuntu server下安装过程:

1.安装svn,我是管理员权限(su):

apt-get install subversion

2.安装后创建一个版本目录

mkdir /var/www/svn

svnadmin create /var/www/svn

3.配置svn服务器

上一步执行svnadmin后会在svn目录下面生成4个文件夹和2个文件,如下:

conf  db  format  hooks  locks  README.txt

进入到conf文件夹,里面有4个配置文件:

root@lan:conf# ls
authz  hooks-env.tmpl  passwd  svnserve.conf

3.1修改svnserve.conf文件,将下面5行前面的#去掉(红色部分为修改内容,可以按照自己需要设置),并去掉空格(否则无法正常使用):

[general]
anon-access = none
auth-access =write
password-db = passwd
authz-db = authz




3.2修改passwd文件,设置用户和密码(我设置两个用户lan和weibingsheng,密码分别为lan123和123456):

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
lan = lan123
weibingsheng = 123456 
3.3  配置authz权限 

给用户分配读写权限(给weibingsheng管理权限,可以读写,给lan读取权限):

[aliases]

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
# [/foo/bar]
# harry = rw
# &joe = r
# * =
admin = weibingsheng
user = lan
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
@admin = rw
@user = r

这样就完成配置了,最后启动svn服务即可:

root@lan:conf# svnserve -d -r /var/www/
-d表示守护线程后台运行,-r表示指定目录。注意:不要写成svnserve -d -r /var/www/svn,否则虽能启动服务,但是只是启动一个项目,假如有多个不同的项目(比如project1,project2等)启动上一个目录可以包括下面的全部项目,多方便啊。

可以查一下服务是否启动了:

root@lan:conf# ps -ef |grep svnserve
    root      1908     1  0 02:29 ?        00:00:00 svnserve -d -r /var/www/
    root      1910  1778  0 02:29 pts/0    00:00:00 grep --color=auto svnserve

可以看到两个进程,那么表示运行正常了。

4. 客户端连接(我的服务器地址172.168.128.128)

在电脑资源管理器中右键,选择SVN checkout,在弹出的窗口的Url处填写SVN服务器上版本库的访问地址,之后直接点确定。
  svn地址:svn://192.168.128.128/svn  然后输入用户名lan和密码lan123确认。
  如果没有连上,那么清理旧的数据信息。
  清除旧数据方法:右键->tortoisesvn->setting->Saved Data,都清理掉。


连接成功后在文件夹里面有一个隐藏的.svn文件夹

5. 设置开机启动svn:

编辑rc.local文件

sudo vi /etc/rc.local

加入下面的代码

/usr/bin/svnserve -d -r /var/svn

上面的路径记得补全了,不能直接就是svnserve,手动启动可以这么写,但是设置开机启动要写全部路径。不知道svn安装的位置可以用whereis命令查看一下,比如:

brisk@lan:svn$ whereis svn
svn: /usr/bin/svn /usr/share/man/man1/svn.1.gz

这样就出来了。

其实想要改变位置的时候可以直接用mv移动位置即可,很方便。


但是,很多时候都是利用SVN做一个版本控制,然后同步更新到网站,那么就要开启相关的设置:

svnserve -d -r /var/svn/lanlan  --listen-port 5550    //监听一个5550端口,我lanlan项目所在地

创建一个同步更新commit文件,用来实时监听文件更新到网站:


      vim   post-commit  (在hooks文件夹下,内容如下几行)

#!/bin/bash
        export LANG="zh_CN.UTF-8"        #//防止乱码
        svn update /etc/www/lan  --username lan--password  lanlan44451WB    ##同步更新到我的网站目录/etc/www/lan/
        
         chmod 775 post-commit  //给权限这个文件,否则不能同步


然后在Linux服务器checkout一次就可以了:


        svn checkout svn://172.168.128.128:5550 /var/www/lanlan --username lan  --password lanlan44451WB




©BRISKLAN;备案信息:桂ICP备16004757号-1