SVN to GIT to TFS



我有一个5年的SVN回购,出于某种商业原因,我们想转到TFS。从codeplex到TFS的SVN工具有缺陷并且冻结。

想到了一个不同的途径:将SVN克隆到GIT,并将GIT回购推送到TFS。下面是我的脚本

for i in "${!SVN_TRUNK[@]}"
do
    mkdir ${GIT_REPO[$i]}
    cd ${GIT_REPO[$i]}      
    fromRevision=$(svn log -l 1 -r{2013-06-01}:HEAD ${SVN_TRUNK[$i]} | awk '/^r[0-9]+/ {sub(/r/,"",$1); print  $1}' )
    toRevision=$(svn info -rHEAD ${SVN_TRUNK[$i]} | grep Revision | cut -d' ' -f2)
    git svn init ${SVN_TRUNK[$i]} --no-metadata
    echo 'svn fetch ' ${GIT_REPO[$i]} ' from ' $fromRevision ' to ' $toRevision
    git svn fetch -r $fromRevision:$toRevision
    git tf configure http://tfs:8080/tfs/defaultcollection '$/Portfolio Implementation/Versions/Iteration36RC/'${GIT_REPO[$i]}
    git tf checkin --deep
    cd ..
done

这带来了许多问题:

1.) No SVN revison in TFS to commits
2.) Date of all checkin to TFS is current date. I want date for the commit in SVN
3.) authors are all gone for all commits to TFS
4.) when I run git svn rebase to bring latest changes to my git repo it 
    says "Unable to determine upstream SVN information from working
    tree history"

让我知道有人试图这样做,或者帮助我了解发生了什么。

有很多选项,但您无法解决提交日期的重置问题,TFS始终记录实际提交到TFS的正确时间,而不是历史日期。

TFS的SVN桥允许您让TFS像普通的SVN存储库一样工作,允许您执行SVN->SVN迁移。TFS集成工具集应该也能工作,但它在组织Subversion存储库的某些方式方面存在问题。

最新更新