Восстановление из слегка устаревшей резервной копии репозитория Subversion.

StackOverflow https://stackoverflow.com/questions/56543

Вопрос

Проблема, с которой я столкнулся некоторое время назад, но так и не нашел хорошего решения...

Допустим, у вас есть рабочая копия, извлеченная из Subversion с ревизией 7500, и диск, на котором находится текущий репозиторий, умирает.У вас есть резервная копия репозитория, скажем, ревизии 7450.Восстановить резервную копию репозитория легко, но любая попытка использовать против него рабочую копию выдает ошибку о том, что ревизия 7500 не существует в репозитории.

Каков наилучший способ зарегистрировать одну гигантскую ревизию, чтобы привести содержимое репозитория в соответствие с содержимым рабочей копии и вернуть рабочую копию в функциональное состояние?

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

Это было полезно?

Решение

Вы можете проверить где-нибудь копию rev.7450, а затем экспортировать копию 7500 (чтобы удалить папки .svn).Перетащите экспортированную копию (самую последнюю копию) на копию 7450.Все новые файлы должны просто перезаписывать старые, оставляя папки .svn прежними.

Subversion предположит, что вы только что внесли несколько изменений в 7450, и при следующей проверке он будет установлен как 7451.

Другие советы

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

Если вы уверены, что в вашем каталоге установлена ​​последняя версия, сделайте следующее:

  1. Удалить элемент из репозитория
  2. Удалите ссылки SVN из вашей копии.
  3. Проверьте свой код как новую копию.
  4. Проверьте код, который вы только что зарегистрировали

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top