2015-05-08 9 views
1

мне нужно удалил некоторые плохие версии, которые были проверены в моей SVN, так что я следовал инструкциям, которые я получил от другого StackOverflow вопрос здесь: https://superuser.com/questions/95432/want-to-delete-revisions-from-my-svn-repositoryУдаление версий сервер SVN не обновляет журнал

svnadmin create newrepo 
svnadmin dump -r 0:1231 repo | svnadmin load newrepo 
mv repo oldrepo 
mv newrepo repo 

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

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

ответ

0

Хорошо! Так я понял, что проблема была после того, как наткнуться на этой StackOverflow:

Roll back or revert entire svn repository to an older revision

Один из ответов говорит о пути/дб/тока. Весь ответ на fuenfundachtzig говорит,

Если у вас есть доступ к серверу SVN, вы можете просто изменить путь/дб/ток, поставить старый номер версии, который вы хотите вернуться к (здесь: 24) там, и удалить ненужные файлы изменений (т.е. 25, 26, 27, 28) из path/db/revs/0 /. По крайней мере, это сработало для меня сегодня, после того как я случайно удалил каталог в репозитории.

Это дало мне представление о том, что означают некоторые из этих файлов в папках хранилища. Просматривая, я понял, что мой номер ревизии и фактические изменения были правильными. Я исследовал path/db/revprops и обнаружил, что мои реальные журналы регистрации сохраняются. Таким образом, все выглядело правильно, и это заставило меня подумать, что, может быть, есть какой-то кеш журнала или что-то такое, от которого тянула черепаха. Это привело меня к этой статье:

http://tortoisesvn.net/logcacheuuids.html

, который заставил меня понять, что UUID, на oldrepo и newrepo были одинаковыми. Я создал новый uuid в соответствии с указаниями этой статьи, и проблема была решена!

Надеюсь, это поможет кому-то еще. Я не уверен, была ли ошибка в том, что я пропускал какой-то флаг, когда я сделал свой первоначальный сброс или загрузку oldrepo относительно того, почему мой uuid был таким же, или если это был всего лишь шаг, который я не понимал, сделайте, чтобы обновить мой uuid, но как только это было сделано, все было ужасно.

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