2011-08-12 29 views
1

我有一個龐大的SVN倉庫,裏面有很多項目,每個項目都在自己的目錄中。將GIT倉庫中的每個單獨的父目錄轉換爲自己的倉庫

MyMassiveSVNRepo

  • 項目1
  • 項目2
  • 項目3
  • 項目4

等等...

我它轉換爲一個GIT回購,但現在它只是一個巨大的GIT回購。是否有我可以運行(或者可以創建)的腳本,讓我可以將每個父目錄放入自己的GIT倉庫中? (並希望仍然保留歷史)

所以當腳本完成後,我有一個回購每個項目在我的大規模GIT回購,而是我有很多小Git回購?該回購是太大(15演出)重複150次,然後刪除所有文件,我不需要從每個項目...

任何幫助表示讚賞。

回答

1
#!/bin/bash 
set -o nounset -o errexit -v 
for project in [email protected]; do 
    mkdir -p ${project}_tmp 
    cd ${project}_tmp 
    git svn init http://svn.example.com/repository/${project}/trunk/ \ 
     --no-metadata 
    git config svn.authorsfile ../svn_users.txt 
    git svn fetch 
    find */ -type d -empty | xargs -I{} touch "{}/.gitkeep" 
    find */ -type f -name .gitkeep | xargs git add 
    git commit -a 
    cd .. 
    git clone ${project}_tmp ${project} 
    rm -fr ${project}_tmp 
done 

用法:

./convert.sh project1 project2 project3 
+0

好,謝謝。我看到它有git svn。我已經將其轉換爲完整的GIT回購。克隆它--bare(我沒有任何樹幹或分支,它的所有在回購的根)所以基本上我想切換到許多小回購主回購..我發現一個腳本稱爲git-subtree - https ://github.com/apenwarr/git-subtree,我希望能做這份工作......任何想法? – Zuriel

相關問題