svn Невозможно установить указатель положения в файле
У меня проблема с репозиторием SVN, который до сих пор работал нормально.
Я получаю ошибку
svnadmin: Can't set position pointer in file 'repository/db/revs/0/783': Invalid argument
например, когда я бегу
svnadmin verify
Другие общие симптомы включают неспособность проверить, обновить, зафиксировать и т. Д.
Любая помощь высоко ценится
Спасибо! Питер
4 ответа
ОК... У меня была эта проблема, и я смог ее исправить. Я использую FSFS. Последняя хорошая ревизия, которая была у меня, была Ревизия № 88. Ревизия 89 была сломана.
Я скопировал хранилище и назвал его
repository-2018-10-18-broken
, Абсолютно сделай это первым!!!Я удалил следующие файлы в исходном хранилище:
/ Хранилище / дБ / об / 0/89
/ Хранилище / дБ / Свойства ревизии / 0/89
/repository/db/transactions/89*.*
- Используя мой верный текстовый редактор, я затем отредактировал файл
/repository/db/current
и изменил89
в88
, Я оставил в конце новой линии.
Это работает как шарм. Я не могу сказать, что это будет работать для кого-то еще, но я не понимаю, почему это не будет. Похоже, что это действительно, действительно, удаляет плохую ревизию.
Когда возникла такая же проблема, мы смогли отследить ее до отдельной папки, в которой были файлы, которые были перемещены неправильно.
Другие папки разрешили фиксацию и обновление, только при включении этой папки мы получили сообщение о невозможности установить указатель.
Решение было:
- Удалите проблемную папку из SVN (игнорировать, рекурсивно)
- Снова добавьте папку.
- Зафиксируйте папку.
Похоже, это исправило все, что было неправильно.
Я предполагаю, что с помощью дополнительных проб и ошибок проблему можно было отследить до файлов, которые были ответственны, но в этом случае мы остановились на уровне папки.
Была такая же проблема с некоторыми файлами. Когда я углубился в указанную папку, хранилище файлов ревизий /db/revs/89 было нулевым файлом. Я предполагаю, что проблема может быть из-за аппаратного сбоя или прерывания питания (репозитории находятся на USB-диске). То, как я это исправил, это скопировать с 88 на 89, и тогда я смог снова отправить изменения.
Единственное решение, которое я смог найти, это сделать копию моего хранилища следующим образом
svnadmin create newrepo
svnadmin dump -r 0:783 repository | svnadmin load newrepo
mv repository repository_corrupted
mv newrepo repository
После этого в каталогах, извлеченных пользователями, обычно требовалась очистка svn.
Самый простой способ для Не могу установить указатель положения в файле:
Я сделал это так:
- Перейти в родительский каталог (папку) проекта.
- Нажмите правую кнопку мыши
- Нажмите на TortoiseSVN, затем нажмите Очистить...
- Диалог очистки появится автоматически
- Выбрать
Clean up working copy status
,Break locks
,Fix time stamps
,Vacuum pristine copies
,Refresh shell overlays
,Include externals
- Pres OK
Проверьте снимки экрана для вашей справки.
Первый шаг:
Второй шаг:
Надеюсь, что это поможет вам.