Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!


Интересна Java? Кликай по ссылке и изучай!
Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 

четверг, 21 февраля 2013 г.

Как фильтровать svn repo с history

Задача такая - раньше я коммитил все свои Java for fun проекты в отдельный репозиторий. Теперь я хочу, чтобы только один из этих проектов (но со всей историей) остался в результирующем репозитории. Как это сделать? Стал гуглить....

Для начала скажу, что у меня стоит (кроме всего прочего) TortoiseSVN и им был создан репозиторий. Я попробовал установить svnserve и попытался сделать дамп исходного репозитория. На это получил ошибку.
C:\>svnadmin dump D:\JavaForFun\_Repo > all-dump
svnadmin: Expected FS format '2'; found format '4'
В сети говорят - попробуй последнююверсию. Оки! Попробовал то же самое сделать из папки bin установленного VisualSVN Server (вот очень хороший гид, по поторому можно установить себе сервер по вкусу).
Я потоврил команду и на этот раз все получилось.
C:\Program Files (x86)\VisualSVN Server\bin>svnadmin dump D:\JavaForFun\_Repo > all-dump
* Dumped revision 1.
* Dumped revision 2.
* Dumped revision 3.
* Dumped revision 4.
* Dumped revision 5.
* Dumped revision 6.
Спасибо! В результате образовался в папке текстовый файлик all-dump.
В след за этим я воспользовался командой
svndumpfilter include Snake < all-dump > snake-dump
Что отфильтровала в новый дамп с именем snake-dump только те ревизии, которые содержат Snake. Супер! Осталось только поднять новый репозиторий
svnadmin load --ignore-uuid D:\snake < snake-dump
И вот результат ...
 А вот как выглядят исключенные ревизии..
Дальше я перегнал все хистори в git, который потом залил на git hub. Но это уже другая история...

Комментариев нет:

Отправить комментарий