SVN, как разрешить неисправный репозиторий

У нас есть около 5 различных репозиториев SVN, работающих на SVN 1.6.11 поверх CentOS Linux 6.3. На прошлой неделе меня попросили перенести наш сервер SVN на новый сервер. У нас есть задание cron, которое делает полное резервное копирование каждого репо раз в неделю, а каждую вторую ночь мы делаем инкрементное резервное копирование через: svnadmin dump -r 100-200 --incremental repo |gzip -9 > incremental_100_200.svn.gz (где репо — это имя репо, а 100 — самая старая версия с момента последнего резервного копирования, а 200 это самая младшая ревизия на момент создания этой резервной копии)

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

К сожалению, я, должно быть, пропустил инкрементальное восстановление на нескольких репозиториях и как-то не заметил, а потом мы перешли на новый сервер, и люди продолжали добавлять файлы и вносить изменения, добавляя новые ревизии в репо. Проблема в том, что, поскольку в нескольких репозиториях отсутствовали некоторые ревизии, теперь новые ревизии взяли эти номера ревизий, поэтому я не могу просто получить инкремент из старого репо и загрузить его в новое репо, так как теперь есть другие данные, занимающие те ревизии. Что я делаю?


person GL2014    schedule 02.05.2013    source источник


Ответы (1)


Преобразуйте оба репозитория в репозитории Git, импортируйте их в один и тот же проект, используйте git rebase, чтобы переместить новые изменения поверх старых, а затем верните репозитории из Git в SVN. Вполне возможно (вероятно?), что во время перебазирования возникнут конфликты слияния, которые вам нужно будет исправить вручную.

person Dietrich Epp    schedule 02.05.2013