2013-12-13 77 views
0

我有一個5歲的SVN回購,由於某些商業原因,我們想轉移到TFS。來自codeplex的SVN-to-TFS工具很麻煩並且凍結。SVN到GIT到TFS

想到了不同的路線:將SVN克隆到GIT並將GIT repo推送到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" 

讓我知道別人試圖移動這種方式,或者幫助我明白是怎麼回事。

+0

我們在說什麼svn-to-tfs工具?據我所知,所有遷移工具將重置提交日期。作者可以維護,但只有當您的帳戶被允許代表他人提交時,這需要比平常更多的權限。 – jessehouwing

+0

@jessehouwing http://svn2tfs.codeplex.com/我確實創建了作者地圖文件並被授予代表他人進行提交的權限 –

回答

0

有很多選項,但是您將無法解決重置提交日期的問題,TFS始終會記錄實際提交給TFS的正確時間,而不是歷史日期。

SVN Bridge for TFS允許您讓TFS像一個普通的SVN存儲庫一樣工作,允許您執行SVN->SVN migrationTFS Integration Toolset也應該可以工作,但是在組織Subversion存儲庫的某些方面存在問題。