2010-10-20 5 views
1

Наш репозиторий tortoiseSVN, к сожалению, сегодня стал коррумпированным из-за сбоя диска.Резервное хранилище Tortoise SVN стало поврежденным - можем ли мы скопировать рабочую копию в более старую резервную копию репозитория?

У нас есть хорошая рабочая копия на основе от пересмотра 2897. Нашего самого последнее хранилища резервного копирования от ревизии 2848.

Мы хотели бы, чтобы спасти как можно больше об истории, а не начать новый репозиторий.

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

+0

Обратите внимание, что [SVN книга] (http://svnbook.red-bean.com/) описывает способ, где после совершения крючок делает дополнительные резервные копии. Теперь, когда вас укусили один раз, вы можете реализовать это. (Конечно, мы все знаем, что если вы это сделаете, и это действительно работает, это никогда не повторится, но если вы этого не сделаете или если есть проблема с тем, как вы это делаете, следующий диск, безусловно, будет делать это снова. ':)') О, и, BTW, я с [thedev] (http://stackoverflow.com/questions/3981697/3981740#3981740) на этом ('+ 1' от меня), хотя SVN может жаловаться на местный номер ревизии. – sbi

+0

Инкрементальные резервные копии не являются защитой, если только они не сохранены на другом диске. Подумайте о том, как использовать svnsync для зеркального преобразования в удаленную теплую резервную копию или что-то более сложное, как функция прокси-сервера write-thru. –

+0

@Mark: Кто сказал, что эти инкрементные дампы должны быть сделаны на один и тот же диск? ':)' Но, да, это важное замечание. Обратите внимание, что вы можете запустить svnsync из привязки post-commit. – sbi

ответ

2

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

+2

SVN может быть икотой из-за рабочей копии, имеющей более высокий номер версии, чем репозиторий. Если это так, вы можете удалить папки .svn из (копии) рабочей копии, которые у вас есть, и скопировать ее поверх новой проверки. Это, однако, потеряет любые изменения, кроме тех, которые были внесены в код (например, свойства). – sbi

0

Вы потеряли история коммитов, так ревизионных 2848. Subversion работает копий только сохранить локальное состояние ....

В зависимости от того, как восстановить репозиторий вы можете также испытывать проблемы из-за фиксации к неправильному соответствия UUID репозитория. Команда svn switch может использоваться для указания изменения хранилища. Другой вариант - использовать tortoiseSVN для создания патча изменений с момента пересмотра 2848 и применить его к новой проверке.

+0

Обратите внимание, что патч не будет иметь никаких изменений, кроме кода (свойства и т. Д.), Убедитесь, что вы не теряете что-то важное. – sbi

+0

Ваш комментарий к изменениям недвижимости хорошо сделан. Давайте посмотрим правде в глаза, чтобы невозможно полностью и вечно построить репозиторий из кассы. Одной из точек продаж систем DVCS, таких как Git, является то, что они сохраняют ** всю ** историю локально. –

1

This happened to me as well, мне пришлось проверить новую копию, так как svn получил реальный hickup, когда моя локальная версия была более новой, чем сервер. Когда вы проверили новую копию, скопируйте файлы с того места, где вы были локально, поверх вашей новой копии (убедитесь, что вы не скопировали папки .svn) и зафиксируете. Вы потеряете историю между 2848 и 2897

 Смежные вопросы

  • Нет связанных вопросов^_^