Восстановление Репозитория Svn

Когда-то в одном из офисов был один репозиторий для всех проектов.



svn svn://server/ some1 some2 some3

в принципе это было довольно удобно, так как все хранится в одной базе.

Но мы столкнулись с проблемой.

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

Сначала нам нужно было найти все точки останова, если они есть.

найдем первый пробел:

svnadmin dump --incremental -r0:HEAD c:\path\to\repo > test.dmp

В моем случае из 8600 ревизий быстро нашлась первая.

2300-я ревизия.

Далее мы найдём ещё пункты:

svnadmin dump --incremental -r2301:HEAD c:\path\to\repo > test.dmp

получил еще один.

3459. и мы найдем больше.



svnadmin dump --incremental -r3460:HEAD c:\path\to\repo > test.dmp

больше ошибок не обнаружено.

Теперь делаем дампы живых ревизий.

с

vnadmin dump --incremental -r0:2299 c:\path\to\repo > dump(0-2299).

dmp svnadmin dump --incremental -r2301:3458 c:\path\to\repo > dump(2301-3458).

dmp svnadmin dump --incremental -r3460:HEAD c:\path\to\repo > dump(3460-HEAD).

dmp

Теперь разделим репозитории на проекты.

проект 1:

svndumpfilter include /some < dump(0-2299).

dmp > some-1.dmp svndumpfilter include /some < dump(2301-3458).

dmp > some-2.dmp svndumpfilter include /some < dump(2301-3458).

dmp > some-3.dmp

проект 2:

svndumpfilter include /some2 < dump(0-2299).

dmp > some2-1.dmp svndumpfilter include /some2 < dump(2301-3458).

dmp > some2-2.dmp svndumpfilter include /some2 < dump(2301-3458).

dmp > some2-3.dmp

По аналогии, третий такой же.

Далее создаем репозиторий для первого проекта:

svnadmin create c:\path\to\some

и загрузим дампы:

svnadmin load c:\path\to\some < some-1.dmp svnadmin load c:\path\to\some < some-2.dmp svnadmin load c:\path\to\some < some-3.dmp

и здесь такие ошибки: 1. файл уже существует 2. Как ни парадоксально, файла нет. в первом случае все просто — заходим в репозиторий, например, «черепахи» и удаляем этот мешающий файл.

во втором случае придется делать скрининг на дампах

svndumpfilter exclude /chto/ne/nawlos < some-1.dmp > some-11.dmp

а затем загрузить его в репозиторий.

Вот в принципе и все.

Теги: #svn #recovery #svndumpfilter #Чулан

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.