Когда-то в одном из офисов был один репозиторий для всех проектов.
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 #Чулан
-
Преимущества Виртуальных Частных Серверов
19 Oct, 24 -
Что Такое Seo (Поисковая Оптимизация)?
19 Oct, 24 -
Как Найти Границы На Клиенте И Сервере
19 Oct, 24 -
Red Hat Openshift 4.2: Новые Инструменты
19 Oct, 24 -
Копирование Структуры Таблицы В Ms Sql 2005
19 Oct, 24 -
Какой Url Лучше?
19 Oct, 24