Назад | Перейти на главную страницу

воссоздать svn репозиторий из двух рабочих копий

Это может быть повторный вопрос отсюда (воссоздание репозитория svn), но я думаю, мне следует спросить об этом еще раз.

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

Какой вариант мне подходит?

Могу ли я начать с создания нового репозитория? Я теряю всю историю svn. Но мне пришлось бы вручную объединить две рабочие копии. Кто-нибудь может перечислить шаги?

Или я как-то использую резервную копию месячной давности, воссоздаю репозиторий svn. Так что у меня есть немного истории, и я теряю историю только за последний месяц. Не уверен, возможно ли это, но если да, то перечислите шаги.

Любая помощь очень ценится. Спасибо.

Или я как-то использую резервную копию месячной давности, воссоздаю репозиторий svn. Так что у меня есть немного истории, и я теряю историю только за последний месяц. Не уверен, возможно ли это, но если да, то перечислите шаги.

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

  1. Восстановите резервную копию, сделанную месяц назад, и снова настройте сервер Subversion.
  2. Получите рабочую копию с этого восстановленного сервера. Содержимое (очевидно) будет старше месяца. (Мы назовем это WC1)
  3. Перейдите к одной из рабочих копий, с которых вы выписали перед тем, как потерять свой сервер ... той, которая является самой последней. (Мы назовем это WC2)
  4. Вручную переместите файлы из вашей последней рабочей копии (WC2) в соответствующее место в WC1. Не перемещайте каталоги, только файлы. Если каталоги были созданы, сделайте их снова, используя svn mkdir. Если файлы переместились, переместите их с помощью svn mv. На этом этапе вы по сути вручную воссоздаете разницу между резервной копией месячной давности и последней рабочей копией.
  5. Когда вы думаете, что получили это, используйте svn diff чтобы дважды и трижды проверить гигантский коммит.
  6. Зафиксируйте изменения
  7. Удалите поврежденную рабочую копию, так как все изменения в ней были перенесены обратно в репозиторий Subversion на сервере.

Я бы хотел использовать git-svn вытащить в старый репозиторий. Затем добавьте любые данные из ваших рабочих копий в репозиторий git. И, наконец, создайте новый чистый репозиторий svn и вставьте все из git. Конечно, любой, кто использует репозиторий, должен будет выполнить новую проверку из нового репозитория.

Я считаю, что это будет работать примерно так же, как описанный процесс. Вот.