Конвертировать каждый отдельный родительский каталог в репозитории GIT в свой репо - PullRequest
1 голос
/ 12 августа 2011

У меня есть огромное репозиторий SVN с тоннами проектов, каждый в своем собственном каталоге.

MyMassiveSVNRepo

  • проект 1
  • проект 2
  • проект 3
  • проект 4

и так далее ...

Я преобразовал его в репозиторий GIT, но теперь это всего лишь один гигантский репозиторий GIT,Есть ли скрипт, который я могу запустить (или кто-то может создать), который позволит мне превратить каждый родительский каталог в собственное GIT-репо?(и, надеюсь, все еще сохранит историю)

поэтому, когда сценарий будет выполнен, у меня будет одно репо для каждого проекта в моем большом репозитории GIT, и вместо этого у меня будет много меньших репозиториев Git?Репо слишком велико (15 гигов), чтобы дублировать 150 раз, а затем удалить все файлы, которые мне не нужны, из каждого проекта ...

Любая помощь приветствуется.

1 Ответ

1 голос
/ 12 августа 2011
#!/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
...