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  #通过命令可以同步代码版本

  • 相关阅读:
    xls与csv文件的区别
    青音,经典爱情语录
    win7用户账户自动登录方法汇总
    How to using Procedure found Lead Blocker
    FTS(3) BSD 库函数手册 遍历文件夹(二)
    FTS(3) BSD 库函数手册 遍历文件夹(一)
    DisplayMetrics类 获取手机显示屏的基本信息 包括尺寸、密度、字体缩放等信息
    About App Distribution 关于应用发布
    FTS(3) 遍历文件夹实例
    OpenCV 2.1.0 with Visual Studio 2008
  • 原文地址:https://www.cnblogs.com/renyz/p/11256303.html
Copyright © 2011-2022 走看看