我有一个庞大的SVN回购,里面有很多项目,每个项目都在自己的目录中。
MyMassiveSVNRepo
依旧......
我将它转换为GIT回购,但现在它只是一个巨大的GIT回购。是否有一个我可以运行的脚本(或者有人可以创建),让我将每个父目录放入自己的GIT仓库? (并希望仍保留历史)
所以当脚本完成后,我在我的大量GIT仓库中为每个项目都有一个仓库,而我有很多小的Git Repos? Repo太大(15演出)要复制150次,然后删除每个项目中不需要的所有文件......
感谢任何帮助。
答案 0 :(得分:1)
#!/bin/bash
set -o nounset -o errexit -v
for project in $@; 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