zoukankan      html  css  js  c++  java
  • linux进阶之SVN集中式版本控制系统篇

    代码上线——版本控制系统

    SVN             集中式版本控制系统

    git                 分布式版本控制系统

    SVNsubversion的缩写,即版本控制系统,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

    作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(Repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样就可以把档案恢复到旧的版本,或是浏览文件的变动历史。Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括程序源码。

    SVN采用客户端/服务器体系,项目的各种版本都存储在服务器上,程序开发人员首先将从服务器上获得一份项目的最新版本,并将其复制到本机,然后在此基础上,每个开发人员可以在自己的客户端进行独立的开发工作,并且可以随时将新代码提交给服务器。当然也可以通过更新操作获取服务器上的最新代码,从而保持与其他开发者所使用版本的一致性。


    部署SVN步骤

    一、svn的安装

    [root@ren5 ~]# yum -y install subversion   #通过yum安装svn服务

    二、创建目录并初始化

    [root@ren5 ~]# mkdir /tmp/svn     #/tmp下创建目录svn,这里只是举个例子,可在其它目录创建

    [root@ren5 ~]# svnadmin create /tmp/svn/repos       #初始化该目录,命名为/tmp/svn/repos

    三、导入代码

    需要准备代码,所以我们创建一个模拟目录以及文件:

    [root@ren5 ~]# mkdir /tmp/www

    [root@ren5 ~]# cd /tmp/www/

    [root@ren5 www]# mkdir trunk branches tags         #创建三个模拟目录

    [root@ren5 www]# cd trunk/

    [root@ren5 trunk]# echo "Hello SVN" > a.html

    [root@ren5 trunk]# ls

    a.html

    [root@ren5 trunk]# svn import /tmp/www/ file:///tmp/svn/repos -m "test1"      #/tmp/www目录的代码导入到/tmp/svn/repos里,并标识test1

    正在增加       /tmp/www/tags

    正在增加       .

    正在增加       a.html

    正在增加       /tmp/www/branches

    提交后的版本为 1

    四、启动服务

    [root@ren5 trunk]# vim /etc/sysconfig/svnserve              #修改启动配置文件

    OPTIONS="-r /tmp/svn"        #修改启动服务调用目录

    [root@ren5 trunk]# systemctl restart svnserve          #修改好后,启动服务即可

    五、打开上传权限

    [root@ren5 trunk]# vim /tmp/svn/repos/conf/svnserve.conf           #修改配置文件,开启上传权限,修改该文件不需要重启服务

    anon-access = read

    auth-access = write

    password-db = passwd

    realm = My First Repository

    #将以上四行的注释去掉,使其生效

    [root@ren5 trunk]# cd /tmp/svn/repos/conf/

    [root@ren5 conf]# ls

    authz  passwd  svnserve.conf

    [root@ren5 conf]# vim /tmp/svn/repos/conf/passwd        #修改配置文件,添加用户身份

    ren = 123     #添加用户格式,前面是用户名,后为密码,中间等号,等号两边要有空格

    六、开启svn服务防火墙

    [root@ren5 trunk]# netstat -anp |grep svn          #查看svn对应端口及协议

    tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      7855/svnserve      

    [root@ren5 trunk]# firewall-cmd --add-port=3690/tcp    #开启3690端口防火墙

    success

    [root@ren5 trunk]# firewall-cmd --add-port=3690/tcp –permanent     #永久开启

    success

    七、代码同步

    [root@ren6 ~]# yum install -y subversion          #下载svn

    代码下载:

    [root@ren6 ~]# mkdir /tmp/www/html       #创建同步代码的目录

    [root@ren6 ~]# cd /tmp/www/html/

    [root@ren6 html]# svn checkout svn://192.168.11.5/repos     #同步这台主机的repos目录中的代码

    A    repos/tags

    A    repos/trunk

    A    repos/trunk/a.html

    A    repos/branches

    取出版本 1

    代码上传:

    [root@ren6 html]# cd /tmp/www/html/repos/trunk/         #进入同步后的目录

    [root@ren6 trunk]# echo test > new.html           #模拟代码更新

    [root@ren6 trunk]# svn add new.html         #标记新版本的代码文件

    A         new.html

    [root@ren6 trunk]# svn commit -m "test2"        #提交上传,并标记为test2

    认证领域: <svn://192.168.11.5:3690> My First Repository

    root”的密码:                                         #svn认证的root密码,不需要写

    认证领域: <svn://192.168.11.5:3690> My First Repository

    用户名: ren

    ren”的密码: 123

    -----------------------------------------------------------------------

    注意你的密码,对于认证域:

       <svn://192.168.11.5:3690> My First Repository

    只能明文保存在磁盘上如果可能的话,请考虑配置你的系统,让 Subversion

    可以保存加密后的密码。请参阅文档以获得详细信息。

    你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,

    来避免再次出现此警告。

    -----------------------------------------------------------------------

    保存未加密的密码(yes/no)?no      

    正在增加       new.html

    传输文件数据.

    提交后的版本为 2

    八、其它命令

    [root@ren6 ~]# svn status

    svn:  警告: W155007: /root”不是工作副本

    [root@ren6 ~]# cd /tmp/www/html/repos/

    [root@ren6 repos]# svn status       #查看svn现在的状态(执行了什么操作)

    [root@ren6 repos]# svn log           #查看标记信息

    ------------------------------------------------------------------------

    r1 | root | 2019-07-27 17:28:44 +0800 (, 2019-07-27) | 1

    test1

    ------------------------------------------------------------------------

    svn update  #通过命令可以同步代码版本

  • 相关阅读:
    20145224&20145238 《信息安全系统设计基础》第二次实验
    《信息安全系统设计基础》 第九周学习总结
    20145224&20145238 《信息安全系统设计基础》 第一次实验
    《信息安全系统设计基础》 第八周学习总结
    《信息安全系统设计基础》 第七周学习总结
    《信息安全系统设计基础》 第六周学习总结
    在Ubuntu中创建与Windows的共享文件夹
    《信息安全系统设计基础》 第五周学习总结
    《信息安全系统设计基础》 第三周学习总结
    20145211 《信息安全系统设计基础》第十周学习总结——水流无限似侬愁
  • 原文地址:https://www.cnblogs.com/renyz/p/11256303.html
Copyright © 2011-2022 走看看