windows svn代码同步到linux svn 做主从复制

svn admin 382℃ 0评论

说明:

         1.本地局域网主机两台: 192.168.50.10【window 32位系统】,  192.168.50.18【linux-ubuntu 64位系统】

         2.window svn版本: 1.9.3  安装 VisualSVN Server Manager;linux服务器没有安装svn相关服务

         3.linux svn仓库地址定在 /home/mnt2 目录下


1.linux 安装svn并同步svn数据:

    #1.0  安装svn  #   
    
       apt-get install subversion
    
       cd /home/mnt2
    
    #1.1 创建备份目录 即后续的仓库地址#
    
          mkdir svnDir
          
          cd svnDir
    
       mkdir svnDir/source_svnbak
    
    #1.2 初始化仓库#
    
        svnadmin create source_svnbak
    
    #1.3  修改pre-revprop_change数据#
    
       cd /home/mnt2/svnDi/rsource_svnbak/hooks/
    
       cp pre-revprop-change.tmpl pre-revprop-change
    
    #1.4  清空内容输入以下内容:
       
       !bin/sh
       exit 0
     #
     
    #1.5  赋予权限# 
    
       chmod u+x  pre-revprop-change
    
    #1.6  初始化#
    
       svnsync init file:////home/mnt2/svnDir/source_svnbak https://192.168.50.10/svn/MobileDevelopment
    
    #1.7  接下来输入本机root密码 windows 上的svn的一个账号和密码就可以了#
    
    #1.8  数据同步 ykkk 是window svn的一个用户名,976665是该用户名的密码 #
    
      svnsync sync file:////home/mnt2/svnDir/source_svnbak --username ykkk  --password 976665
      
    # 接下来就等着同步数据

image.png


#1.9 修改主服务器的hooks 中的 post-commit #



#2.0 修改配置文件 

   cd source_svnbak/conf/
   
   vim svnserve.conf

image.png

   
   vim auth

image.png

 
   vim passwd

image.png

#启动#

 svnserve -d -r /home/mnt2/svnDir/




image.png

里面输入:

svnsync sync --non-interactive svn://192.168.50.18/source_svnbak --username ykkk  --password 976665



接下来点击“应用“,“确定”就大功告成了



补充说明:下面是出现的一些错误说明


1. Failed to get lock on destination repository

   解决方法:在目标主机【需要同步数据的svn主机】执行下面代码:

  svn propdel svn:sync-lock --revprop -r 0 svn地址
  
  #拿上面的栗子#
  #就是在linux服务器执行:#
  
  #svn propdel svn:sync-lock --revprop -r 0 svn://192.168.50.18/source_svnbak#

    

2. virtualSvn svnsync: E230001: Server SSL certificate verification failed: certificate issued for a different hostname, issuer is not trusted


   解决方法:virtualSvn主机中用的Cerificate infomation “Issued to“ 等都是域 比如“AM-201704171149”

  而我们同步用的都是ip所有找不到证书,我们得把域改成ip:具体操作如下



 image.png

image.png

image.png

如果上面的不是ip进行下面操作


image.png

image.png


image.png


下一步-》下一步 直到完成。


3. svn 源地址【192.168.50.10】换了怎么办,假设换成了【192.168.2.100】

 #设置新的版本库地址#
 
 svn propset svn:sync-from-url –-revprop -r 0 https://192.168.2.100/svn/MobileDevelopment file:////home/mnt2/svnDir/source_svnbak
 
 #再次同步#
 
 svnsync sync file:////home/mnt2/svnDir/source_svnbak
 
 #virtualSvn的操作就是上面的hooks及网络证书操作,把ip改改即可#








加载中...