dd

Ubuntu12.04和Ubuntu14.04安装SVN、检出、更新、提交

jerry ubuntu 2016年04月09日 收藏

在向大家详细介绍SVN之前,首先让大家了解下Ubuntu SVN,然后全面介绍Ubuntu SVN,希望对大家有用。Ubuntu下使用Ubuntu SVN 作为日常开发中不可缺少的工具,今天终于开始在Ubuntu SVN下使用了。
1、首先介绍Ubuntu14.04安装Ubuntu SVN。Ubuntu下的SVN安装十分简单,

sudo apt-get install subversion

然后根据提示一步一步,就完成了Ubuntu SVN的安装;


2、检出文件(checkout)
使用命令:

svn co http://{svn repository url} /destination

然后系统会用当前的用户名登录,提示输入密码,如果第一次密码输入错误,会提示你输入用户名;
输入正确后,就可以检出文件了。

或者直接在后面加上用户名密码

svn co http://11.0.26.41:8080/svn/CODE/quartz --username  admin --password admin

3、提交文件(commit)
进入需要更新的目录,输入命令:

svn commit -m path-to-commit

其中path-to-commit可以为空,成功后会提示更新后的版本号。

4、更新文件(update)

svn update

在要更新的目录运行这个命令就可以了。

5、查看日志(log)。

svn log path


建立仓库文件夹

cd  /home  
sudo  mkdir svn  
/usr/local/svn# sudo chown -R 777 svn  
/usr/local/svn# sudo chmod -R 777 svn

最后的一条命令赋予组成员对所有新加入文件仓库的文件拥有相应的权限。正常情况下应该是添加相应的组权限的,但是既然是针对于新手段white paper,所以才简单点,就省略了那么一点,呵呵

3、创建仓库

$ sudo svnadmin create /home/svn


二、 配置SVN

1、配置/home/svn/conf目录下的 svnserve.conf文件
修改svnserve.conf文件

a、去掉#[general]前面的#号

[general]


b、#匿名访问的权限,可以使read/write/none,默认是read

anon-access = none


c、#认证用户的权限,可以使read/write/none,默认为write

auth-access = write


d、#密码数据库的路径,去掉前面的#

passw-db = passwd


注意:其中 anon-access 和auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限,但如果想拒绝匿名用户的访问,只需把 read 改成 none 就能达到目的。

2、修改/home/svn/conf目录下的配置文件passwd 文件
如修改成

[users]
root    =    123
hfkj    =    12345678
test1  =    test1
test2  =    test2

注意:这里设置了四个用户root,hfkj,test1,test2,密码分别为123,12345678,test1,test2

3、修改 /home/svn/conf/ 目录下的  配置文件authz  如下:

注意:这里设置了四个用户root,hfkj,test1,test2,密码分别为。。。

其中root,hfkj数据admin组,有读和写的权限;test1和test2数据test组只有读的权限。

三、启动与关闭SVN服务,并导入工程

1、启动 svnserve 服务

$sudo svnserve  –d  –r  /home/svn


描述说明:

-d: 表示 svnserve 以“守护”进程模式运行
-r: 指定文件系统的根位置(版本库的根目录),这样客户端不用输入全路径,就可以访问版本库:如:svn://192.168.12.118/svn


2、然后导入 svn  工程

#sudo  svn import -m "New import"  /home/test  svn://localhost/svn

这样 /home/test 文件夹下的项目就导入到了 svn 中了,而 –m 参数的意思是:message 也就是今后查看svn log 时候看到的东东了。

3、之后,我们测试一下

$ sudo mkdir  /home/svn_down
$ sudo cd    /home/svn_down
$ sudo svn  co  svn://localhost/svn

4、看一下 SVN中的文件是否 被下载下来了?
5、OK 这就是以上的全部过程啦!其实是非常简单的!
注意:查看 svnserve 服务是否启动

$ sduo ps  -ef |  grep svn

关闭服务

 $ Kill -9 pid    :pid  即svnserve  的PID

亦或是 

$sudo  killall  svn

也是可以的
然后再使用

$ sduo  ps  -ef | grep svn

命令查看 svnserve 是否已经被关闭啦!


Ubuntu12.04安装svn


1. 安装SVN

 apt-get install subversion


2. 建立svn仓库

    1). 建立svn目录:mkdir /home/.svn(使用隐藏目录)
  2). cd /home/.svn
  3). mkdir astar
  4). 创建仓库astar:svnadmin create /home/.svn/astar,执行完毕后astar目录有svnadmin创建的目录和文件
  5). mkdir test
  6). 创建仓库test:svnadmin create /home/.svn/test,执行完毕后test目录有svnadmin创建的目录和文件


3. 配置和管理svn
1). 每个仓库的配置文件在$repos/conf/下,vi svnserve.conf,配置项在[general]下:

    anon-access:匿名用户的权限,可以为read,write和none,默认值read。不允许匿名用户访问:anon-access = none
    auth-access:认证用户的权限,可以为read,write和none,默认值write。
    password-db:密码数据库的路径,去掉前边的#
    authz-db:认证规则库的路径,去掉前边的#。

注意:这些配置项的行都要顶格,否则会报错。修改配置后需要重启svn才能生效。

  2). 配置passwd文件

    这是每个用户的密码文件,比较简单,就是“用户名=密码”,采用的是明码。如allen=111111

  3). 配置authz文件

    1. [groups] section:为了便于管理,可以将一些用户放到一个组里边,比如:owner=allen,ellen

    2. groups下边的sections表示对一个目录的认证规则,比如对根目录的认证规则的section为[/]。设置单用户的认证规则时一个用户一行,如:

      [/]

      allen=rw  #allen对根目录的权限为rw

      ellen=r    #ellen对根目录的权限为r

      如果使用group,需要在group名字前加@,如

      @owner=rw  #group owner中的用户均为rw,等价于上边的两句话

    启动时如果从/home/.svn/astar启动,/就是astar目录,用如上方式以astar目录为根设置权限。

    如果从/home/.svn/启动,每个仓库根还是自己的起始目录。可以采用如上方式设置astar的权限,也可以采用如下方式:

      [astar:/]

      @owner=rw

    设置test的权限如下:

      [test:/]

      @harry_and_sally = rw

    简言之,每个仓库的根目录(/)就是自己的起始目录;[repos:/]这种方式只适用于多仓库的情况;[/]适合于单仓库和单仓库的方式。

    3. 不能跨越仓库设置权限。

4. 启动和停止svn

  1). 启动:

    1. 从astar目录启动,svnserve -d -r /home/.svn/astar,根目录(/)是astar,authz中规则的配置使用section[/]。访问方式为:

      svn://192.168.0.87/

    2. 从.svn目录启动,svnserve -d -r /home/.svn,根目录(/)是.svn,authz中对astar的配置使用section[astar:/] ,对test的配置使用section[test:/]。访问方式为:

      svn://192.18.0.87/astar

      svn://192.18.0.87/test

    如果需要svn自启动,把命令加入/etc/rc.local中

  2). 检查svn服务器是否已经启动(svn默认使用3690端口):netstat -an | grep 3690

  3). 停止:killall svnserve

dd