Не удается открыть .svn / text-base / file.svn-base? - PullRequest
59 голосов
/ 26 января 2010

Я использую TortoiseSVN. Я только что внес несколько изменений в свою рабочую копию, и теперь я сделал коммит, некоторые файлы прошли, но в одном файле с именем Search.aspx.cs написано

Commit failed (details follow):
Can't open file 
'C:\-----\trunk\.svn\text-base\Search.aspx.cs.svn-base': 
The system cannot find the file specified.

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

Ответы [ 12 ]

76 голосов
/ 16 марта 2010

Кажется ли это возможным ответом на вашу ситуацию?

(из http://www.uwplatt.edu/csse/tools/subversion/subversion-help.html)

"Не удалось добавить файл '(имя здесь)": объект с таким именем уже существует.

или

"Не удается открыть файл 'folder.svn \ tmp \ text-base \ file.svn-base': Система не может найти файл указано ".

Оба означают, что два файла в одном папка с тем же именем, кроме капитализация; например «Readme.txt» и «README.TXT». Юникс и Subversion чувствительны к регистру, поэтому файлы считаются совершенно не связано. Но в винде не чувствителен к регистру, поэтому, когда это пытается обновить README.TXT поверх Readme.txt (скажем), он ломается.

Самый верный способ решить проблему - это войти в систему Unix (например, io.uwplatt.edu) и использовать примечания Unix проверить хранилище там. Вы Затем можно использовать команду SVN MV для переименуйте один из файлов. Если вы находитесь в середина попытки добавить файл в ваш репозиторий, вы можете попробовать использовать TortoiseSVN-> Переименовать ... чтобы переименовать существующий файл к чему-то полностью разные, а затем обновление. Обратите внимание, что вам нужно использовать переименование TortoiseSVN команды; просто переименовав файл в Проводник Windows не исправит ваш проблемы.

У меня была такая же ошибка, и с помощью браузера репозитория Tortoise SVN удалось подтвердить, что в хранилище было два файла с одинаковыми именами, которые различались только заглавными и строчными буквами. Вы также можете решить эту проблему через браузер репо, удалив один из файлов (вы можете сначала выполнить различие через браузер репо, чтобы убедиться, что у вас есть то, что вам нужно).

10 голосов
/ 01 июля 2010

Вы можете скопировать рабочий файл: C: ----- \ ствол \ Search.aspx.cs

к пропавшему: C: ----- \ trunk.svn \ текст базы \ Search.aspx.cs.svn база

и это поможет.

6 голосов
/ 23 июля 2013

Привет, сегодня я сталкиваюсь с подобной проблемой.

не удается найти файл .svn \ pristine \ 24 \ 24fd530d4bd82341fb514ab912c9e10adbc4ad89.svn-base И я использую простой способ решить эту проблему.

Сначала я удаляю папку копирования этого проекта И тогда я смотрю, этот файл не существует в этой папке. Поэтому я просто копирую svn-base из другого файла и переименовываю его с помощью 24fd530d4bd82341fb514ab912c9e10adbc4ad89.svn-base. Затем выполняю операцию очистки. После этого я встречаю другой файл, пропавший без вести, используя тот же путь, и наконец я решаю эту проблему. Надеюсь, это поможет вам

другими словами, решение создать новый svn-base файл с отсутствующим именем файла

5 голосов
/ 12 января 2012

Размещаем это для тех, у кого такая же проблема, где , а не , связанные с одним и тем же именем файла в другой заглавной буквы / регистре:

Я не уверен, с чем это связано, но это исправление сработало для меня:

  • оформить заказ на новую временную ячейку
  • создайте резервную копию (в случае сбоя) и удалите папку .svn в вашем главном местоположении
  • замените папку .svn в вашей основной папке на папку из временной папки
  • совершить

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

2 голосов
/ 27 декабря 2012

У меня была похожая проблема "( Не удается открыть файл 'folder.svn \ tmp \ text-base \ file.svn-base': система не может найти указанный файл" ) "

Это было не из-за проблемы чувствительности к регистру. Но потому что путь к файлу был слишком длинным. Поэтому я переименовал папку с более коротким именем, переместил ее прямо в диск C и успешно зарегистрировался.

Так что, если он не чувствителен к регистру, также просмотрите длину полного пути к файлу.

2 голосов
/ 29 ноября 2012

Для меня проблема была: с учетом регистра

фиксация svn-репозитория в Linux: 2 файла с одинаковыми именами, кроме заглавных хранилище svn обновлено в Windows: ошибка во время обновления или извлечения => Система не может найти указанный файл.

1 голос
/ 09 июля 2010

У меня возникла эта проблема после случайной очистки пустых папок .svn / tmp (и всех других пустых папок на моем HD).Не помогло ни одно из перечисленных выше решений, кроме восстановления пустой папки .svn / tmp (для всех папок .svn).

0 голосов
/ 29 ноября 2012

Пакетное решение для этой ужасной проблемы.

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do ( 
   if not exist %%i\text-base ( 
       mkdir "%%i\text-base"
   ) else (
echo already exist "%%i\text-base" 
   ) 
)
0 голосов
/ 03 февраля 2012

Решение (в случае повреждения SVN-каталога; очистка и т. Д. Не работает)

  1. Резервное копирование (переименование каталога)
  2. Оформить заказ снова
  3. Переименовать новый каталог
  4. Переименовать старый каталог обратно в старое имя
  5. Попробуйте выполнить коммит снова (при необходимости небольшими порциями)
  6. При возникновении ошибки: скопируйте соответствующий SVN-файл из нового каталога в поврежденные источники
  7. Повторяй до счастья;)
0 голосов
/ 04 февраля 2010

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

В моем случае помогла простая «очистка» соответствующих каталогов.

...