首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

subversion转git以及git仓库合龙

2013-11-03 
subversion转git以及git仓库合并公司决定转向github,所以今天遇到的问题是要把两个subversion仓库合并到一

subversion转git以及git仓库合并

公司决定转向github,所以今天遇到的问题是要把两个subversion仓库合并到一个github仓库中。

subversion转git这个问题很容易,github推荐使用svn2git这个脚本。 官方网站上写出了详细的安装方法,如下:

$ sudo apt-get install git-core git-svn ruby rubygems$ sudo gem install svn2git

然后建立两个子目录,存放转换后的两个subversion仓库:

$ mkdir tmp && cd tmp $ mkdir projectA projectB

开始转换:

[charlee@ubuntu:~/tmp]$ cd projectA[charlee@ubuntu:~/tmp/projectA]$ svn2git http://svn.example.com/projectA        # 由于是标准目录结构,这里不需要指定trunk分支[charlee@ubuntu:~/tmp/projectA]$ cd ../projectB[charlee@ubuntu:~/tmp/projectB]$ svn2git http://svn.example.com/projectB[charlee@ubuntu:~/tmp]$ cd ..

这样就得到了projectA和projectB两个git仓库。接下来用stackoverflow上提到的git-stitch-repo将这两个仓库合并成一个。首先安装git-stitch-repo:

$ tar xzvf Git-FastExport-0.07.tar.gz$ make$ sudo make install[charlee@ubuntu:~/tmp]$ git clone https://github.com/charlee/project.git[charlee@ubuntu:~/tmp]$ cd project[charlee@ubuntu:~/tmp/project]$ git-stitch-repo ../projectA:projectA ../proejctB:projectB | git fast-import[charlee@ubuntu:~/tmp/project]$ git checkout master-A[charlee@ubuntu:~/tmp/project]$ git checkout master-B[charlee@ubuntu:~/tmp/project]$ git checkout master[charlee@ubuntu:~/tmp/project]$ git branch -d master-A master-B

然后扔到github上:

$ git push -u origin master

大功告成。

?

热点排行