将分支从svn移动到git

将分支从svn移动到git,git,bitbucket,git-svn,Git,Bitbucket,Git Svn,我在SVN中有2个分支-trunk和release(trunk中的分支)。 目的是将它们迁移到GIT中的单个存储库中 SVN(trunk)----->GIT(master) SVN(release)---->GIT(release) - where GIT(release) has been branched from GIT(master) 此后,我们每天刷新相应的SVN source->GIT destination分支,以获得一个临时的迁移窗口 这可能吗? 如果是这样,如何实

我在SVN中有2个分支-trunk和release(trunk中的分支)。 目的是将它们迁移到GIT中的单个存储库中

SVN(trunk)----->GIT(master)
SVN(release)---->GIT(release) - where GIT(release) has been branched from GIT(master)
此后,我们每天刷新相应的SVN source->GIT destination分支,以获得一个临时的迁移窗口

这可能吗?
如果是这样,如何实现这一点?

首先,对您的svn存储库进行一次(或两次)备份

然后,安装。关于MacOS:

brew install ruby
gem install svn2git
或者在Debian上:

sudo apt-get install git-core git-svn ruby
sudo gem install svn2git
然后(可选但推荐)列出svn存储库中的所有作者:

svn log --quiet \
| grep -E "r[0-9]+ \| .+ \|" \
| cut -d'|' -f2 \
| sed 's/ //g' \
| sort \
| uniq
并创建一个文件,将svn作者映射到要在git中使用的帐户

运行
svn2git

mkdir new-git-repos
cd new-git-repos
svn2git path-to-svn-repos --no-minimize-url --authors path-to-authors.txt
验证新的git存储库(
git log
git tag
git branch-a
,等等),必要时重命名分支和标记,并可以选择将新的repo推送到服务器

有关更多配方,请参见svn2git。如果您有权访问svn主存储库,并且在转换为git之前需要应用更复杂的提交历史重写,请使用此选项。

首先,对svn存储库进行一次(或两次)备份

然后,安装。关于MacOS:

brew install ruby
gem install svn2git
或者在Debian上:

sudo apt-get install git-core git-svn ruby
sudo gem install svn2git
然后(可选但推荐)列出svn存储库中的所有作者:

svn log --quiet \
| grep -E "r[0-9]+ \| .+ \|" \
| cut -d'|' -f2 \
| sed 's/ //g' \
| sort \
| uniq
并创建一个文件,将svn作者映射到要在git中使用的帐户

运行
svn2git

mkdir new-git-repos
cd new-git-repos
svn2git path-to-svn-repos --no-minimize-url --authors path-to-authors.txt
验证新的git存储库(
git log
git tag
git branch-a
,等等),必要时重命名分支和标记,并可以选择将新的repo推送到服务器


有关更多配方,请参见svn2git。如果您有权访问svn主存储库,并且在转换为git之前需要对提交历史记录进行更复杂的重写,请使用此选项。

是否查看?是否可能重复?是否要接受答案?是否查看?是否可能重复?是否要接受答案?