Конвертировать каждый отдельный родительский каталог в репозитории 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
Другие вопросы по тегам