2009-11-10 4 views
7

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

отчеты о состоянии СВН никаких изменений (так что даже не хватает файлов)

обновление СВН ничего не делает

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

  • Что здесь происходит?
  • Как исправить рабочую копию?

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

ответ

11

Клиенты SVN 1.6.1 (включая TortoiseSVN) имели bug, где папки иногда ошибочно устанавливались на глубину «пустой». Это вызывает симптомы, которые вы описываете. (Обратите внимание, что возможно, что папка была сделана «пустой» с помощью svn 1.6.1 и осталась таким образом, даже если вы уже обновили до более нового клиента SVN за это время.)

Чтобы исправить это, используйте пункт меню «Обновить до версии» в TortoiseSVN и выберите глубину «полностью рекурсивной».

+0

, который исправил его, спасибо! – jeroenh

-1

Попробуйте удалить этот конкретный файл только из локальной проверки, а затем выполните обновление.

+0

Файл уже отсутствует, поэтому он не работает и не поможет. – Ether

2

Во-первых, убедитесь, что подрывная программа имеет ту же идею, что и в вашей рабочей копии, которую вы делаете, с svn info в каталоге, где должен находиться файл. Является ли URL правильной ветвью?

Далее, проверьте, какие незавершенные изменения у вас есть с svn update. Возможно, что-то удалило этот файл? Если это так, просто отмените удаление: svn revert <file>.

Далее (после того, как вы сохранили копии всего, что вы изменили в этом каталоге), вы можете просто уничтожить весь каталог и восстановить его: cd ..; rm -rf dir; svn update dir. Это должно заново создать каталог с вашим файлом.

3

Вы должны:

  • Убедитесь, что вы обновляете к правильному пересмотру и что вы обновляете текущий элемент и все его потомки ... что-то вроде svn update --revision HEAD --depth infinity
  • субботника с svn cleanup и попробовать снова
+2

'--depth infinity' является значением по умолчанию. Я думаю, вы имели в виду '--set-depth infinity', который снова превращает мелкие папки рабочей копии в полные проверки. –

+0

Говоря о умолчаниях, '--revision HEAD' также не нужно –

+2

@wcoenen, хотя это значения по умолчанию, если вы явно проверяете какую-либо ревизию и некоторую глубину, дальнейшие обновления будут сохранять эти настройки и указывать * значения по умолчанию * subversion перестает поддерживать поведение. 'set-depth', тем не менее, сделает изменение глубины таким же +1 для этого! :) –

2

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

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