Восстановление из слегка устаревшей резервной копии хранилища Subversion - PullRequest
7 голосов
/ 11 сентября 2008

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

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

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

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

Ответы [ 4 ]

6 голосов
/ 11 сентября 2008

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

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

5 голосов
/ 11 сентября 2008

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

1 голос
/ 21 июля 2010

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

1 голос
/ 11 сентября 2008

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

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