Назад | Перейти на главную страницу

Как решить проблему «svn: не удается найти временный каталог: внутренняя ошибка»?

Я уже погуглил сообщение, и у меня достаточно места на диске на сервере SVN (это около 4% использования из 150 ГБ).

Я заметил, что когда я пытаюсь echo $TMPDIR в командной строке на сервере SVN я ничего не получаю.

Что немного сбивает с толку, так это то, что я получаю это сообщение только из одного места, когда делаю svn diff (который я тестировал до сих пор) - эта ошибка не возникает, когда я пытаюсь с трех других компьютеров (один из которых тестирует один и тот же репозиторий, два других - разные репозитории на одном сервере svn).

Единственное различие, которое я вижу, это то, что сломанная рабочая копия подключается к серверу по IP-адресу, тогда как все остальные используют имя сервера (хотя это разрешается через DNS на тот же IP-адрес).

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

Вы также получите эту ошибку, если диск заполнен, Я обнаружил.

Освободите место, и ошибка исчезнет.

В конце концов, придумал способ сделать это (а также получить все, что в настоящее время не рассматривается, под надлежащим контролем версий):

  1. Используйте команду "find", чтобы удалить все каталоги .svn из сломанной рабочей копии.
  2. Переместите рабочую копию в другое место
  3. Оформить новую рабочую копию в исходное место
  4. Рекурсивно скопируйте старую / удаленную рабочую копию в новую
  5. Больше нет проблем

Я считаю, что в одном из файлов .svn этой рабочей копии должно быть какое-то повреждение.

На компьютере с проблемой попробуйте удалить вручную этот каталог, не фиксируйте, а обновите свой svn на локальном компьютере, повторите изменения в этом каталоге, это один каталог. Обычно это работает со мной при подобных ошибках.

Мне удалось решить эту проблему, запустив приведенный здесь сценарий:

https://svn.apache.org/repos/asf/subversion/trunk/contrib/client-side/svn-clean