Отсутствует ревизия в репозитории SVN - PullRequest
5 голосов
/ 29 ноября 2011

Очевидно, одна из старых ревизий исчезла из хранилища svn:

svn checkout http... myrepo
svn: REPORT of '/svn/myrepo/!svn/vcc/default': Could not read chunk size: connection was closed by server (http://localhost)

$ svnadmin verify myrepo
* Verified revision 0.
...
svnadmin: No such revision 262

$ svn log -v -r 262
svn: No such revision 262

$ ll /var/SVN/myrepo/db/revs/0/
...
-rw-r--r-- 1 www-data www-data  27289777 2010-10-21 22:21 260
-rw-r--r-- 1 www-data www-data   4727180 2010-11-12 18:51 261
-rw-r--r-- 1 www-data www-data   2180586 2010-11-14 20:33 263
...

Поиск по проблеме говорит «восстановление из резервной копии», но у всех трех резервных копий, которые у меня есть, есть эта недостающая ревизия, поэтому она должна была работать некоторое время Я заметил это, только когда не смог зафиксировать конкретный файл. У меня есть текущая рабочая копия. Что я могу сделать, если не начинать с нуля?!?

1 Ответ

1 голос
/ 29 ноября 2011

У вас есть доступ к необработанному хранилищу? Вы можете проверить, отсутствует ли ревизия, зайдя в папку репозитория, затем в папку db, и вы увидите серию папок. Для версии 262 она будет находиться в папке «0», которая содержит все версии от 0 до 999. Удалять ревизии из репозиториев можно с осторожностью. Мы сделали это, когда файл или файлы были зафиксированы и по какой-либо причине не должны были быть частью репо. Вы можете удалить их с помощью команд SVN, но их все равно можно получить, указав ревизию. Возможно ли, что кто-то мог сделать такую ​​операцию?

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

...