Конвертировать каждый отдельный родительский каталог в репозитории GIT в свой репо
У меня есть огромное репозиторий SVN с множеством проектов, каждый в своем собственном каталоге.
MyMassiveSVNRepo
- проект 1
- проект 2
- проект 3
- проект 4
и так далее...
Я преобразовал его в репозиторий GIT, но теперь это всего лишь один гигантский репозиторий GIT. Есть ли скрипт, который я могу запустить (или кто-то может создать), который позволит мне превратить каждый родительский каталог в свое собственное GIT-репо? (и, надеюсь, до сих пор сохраняют историю)
поэтому, когда сценарий готов, у меня есть один репо для каждого проекта в моем огромном репозитории GIT, и вместо этого у меня есть много меньших репозиториев Git? Репо слишком велико (15 гигов), чтобы дублировать 150 раз, а затем удалить все файлы, которые мне не нужны, из каждого проекта...
Любая помощь приветствуется.
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