Rover12421's Blog

The End.

将svn项目迁移到git上

        相中git很久了,因畏惧git server的搭建,一直没落实.最近自己用svn服务器又从Windows转移到了CentOs上,所以打算直接改用git,在本地做一个主git server,然后再在服务器上搭一个从的git server作为备份.正好狠狠的啃了下<Git权威指南>,更是下了决心.服务端我用了gitolite, 搭建就不说了,网上很多教材,至于svn迁移到git上,我觉得还是有必要说下,网上也有很多,但是有两步我觉得还是比较关键,需要说下.

        1.把代码更新到svn上,不然没有提交的不会迁移到git里,当然后提交到svn再用git svn clone一次也是可以的.既然打算全面迁移还是先提交下为好.
        2.新建一个用户映射表文件

rover12421 = rover12421 rover12421@163.com

       3.用git svn clone把svn库克隆成git的本地库.如果不需要服务端管理,到这里就完成了.
          这里需要注意的是,我看到网上都有加参数trunk,但是我的svn不是标准的结构,没有默认的3个目录结构,自然是没有trunk,tag的,所以我这里直接去掉后面的参数更新的

git svn clone http://192.168.1.225/svn/Elephant –authors-file=user –no-metadata Elephant

    这里有肯定会报错,因为还有用户映射没添加.

Author: rover not defined in user file

    红色部分就是提示没有在user文件里找到映射的用户.添加进去就可以了

rover = rover12421 rover12421@163.com

       4.在gitolite配置文件里添加好git库,并提交到服务端

vi conf/gitolite.conf

repo Elephant
    RW+     =   rover12421

git commit -a -m “add Elephant repo”
git push

           如果这一步不处理添加git服务器后就直接git push会报错
git push
FATAL: W any Elephant rover12421 DENIED by fallthru
(or you mis-spelled the reponame)
fatal: The remote end hung up unexpectedly

   5.给本地git库添加远程服务器地址

git remote add origin git@127.0.0.1:Elephant.git

       这里的Elephant就是上一步在配置文件里添加的库.
      6.最后push所有数据到服务器同步

git push origin –all

       参考:
       

Comments