2009-10-12 2 views
3

В настоящее время у меня есть репозиторий git, который я импортировал из svn некоторое время назад в школу имени. Внутри этого репозитория школы у меня есть папка для каждого из моих классов.разделение репозитория git

Не могу показаться, как взять этот один репозиторий и разделить его на репозиторий для каждого класса, не потеряв всю историю класса, чего я бы предпочел не делать.

Предложения?

ответ

5

git filter-branch - это путь. Сделайте копию репозитория для каждого подкаталога, то в каждой копию запустить линию, как этот заменяющий «myclassname» с вашим действительным именем класса:

git filter-branch --subdirectory-filter myclassname -- --all 
+2

Это прекрасно работало. Я превратил его в сценарий оболочки, который вы можете увидеть здесь: http://github.com/icco/git-explode – icco

+0

Ницца, рад, что я помог :-) – richq

+0

Это написано «отдельно». –

-1

Выполните следующую команду

git log -u <path> 

Это даст вам список ревизий (включая дифф) для каждой ревизии в указанной папке.

Здесь вы можете написать сценарий для анализа этого вывода журнала git и запуска каждого патча в новом репозитории, сохраняя изменения и информацию об авторе.

Немного взлома, но это сработает.

+0

Там надо быть лучшим способом сделать это, чем это. У меня есть 5-летняя оценка ... – icco

Смежные вопросы