Ошибка SVN - не рабочая копия

Недавно наш сервер svn был изменен, и мы сделали svn-переключатель.

Поскольку рабочая копия имела огромное количество неверсированных ресурсов, рабочая копия была заблокирована, и мы начали переключение папки по папкам для всех папок под svn, что прекрасно работает.

Но на самом верхнем уровне репозитория, когда я пытаюсь обновить файлы, я получаю svn: Working copy '.' заблокированная ошибка и очистка тоже не помогают. Когда я делаю очистку, я получаю такие ошибки: svn: 'content' не является каталогом рабочей копии

Свежая проверка НЕ ​​является вариантом. Существуют ли какие-либо другие способы очистки и освобождения замков и полностью выключаются?

EDIT: Последний абзац в JesperE отвечает

Если вы получаете "не рабочую копию", когда делая рекурсивную "svn cleanup" мою предположим, что у вас есть каталог который должен быть рабочей копией (т. каталог .svn на верхнем уровне говорит так), но у него отсутствует собственный .svn. В этом случае вы может попытаться просто удалить/переместить и затем локальное обновление

похоже, является решением проблемы в репозитории. Я идентифицировал эти папки и сделал новую проверку этих конкретных папок в одиночку и ничего себе, блокировки выпущены в последующей очистке! Большое спасибо JesperE!!

Но, я до сих пор не могу понять ошибку svn switch, которая теперь читает что-то вроде

svn: репозиторий в 'SVN://repourl/reponame/имя_папки' имеет uuid 'm/reponame', но WC имеет 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'

Любые идеи?

Ответ 1

Если вы получаете "не рабочую копию" при выполнении рекурсивного svn cleanup, я предполагаю, что у вас есть каталог, который должен быть рабочей копией (т.е. каталог .svn на верхнем уровне говорит так), но он не имеет своего собственного каталога .svn. В этом случае вы можете попытаться просто удалить/переместить этот каталог, а затем выполнить локальное обновление (т.е. rm -rf content; svn checkout content).

Если вы получаете ошибку not a working copy, это означает, что Subversion не может найти подходящий каталог .svn. Проверьте, есть ли каталог .svn в contents

Идеальное решение - это свежая проверка, если это возможно.

Ответ 2

Я попал в подобную ситуацию (svn: 'papers' is not a working copy directory) по-другому, поэтому я подумал, что отправлю свою боевую историю (упрощенную):

$ svn add papers
svn: Can't create directory 'papers/.svn': Permission denied

Oops! исправить разрешения... затем:

$ svn add papers
svn: warning: 'papers' is already under version control
$ svn st
~     papers
$ svn cleanup
svn: 'papers' is not a working copy directory

И даже перемещение papers в сторону и запуск svn up (который работал для OP) не исправил его. Вот что я сделал:

$ mv papers papers_
$ svn cleanup
$ svn revert papers
Reverted 'papers'
$ mv papers_/ papers
$ svn add papers

Это сработало.

Ответ 3

Я решил его

  • Скопировать резервную копию поврежденных папок
  • SVN вернет удаленные папки
  • Вставьте файлы из резервной копии

В моем случае проблема была связана с удалением .svn файлов.

Ответ 4

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

SVN
|_
  |
  subfolder1
       |
       subfolder2   (here you get an error)

в этом случае вам нужно зафиксировать каталог на верхнем уровне.

Ответ 5

Обход проблемы: Переименовать каталог, который не является "рабочей копией", Оформить заказ/обновить/восстановить этот каталог еще раз Переместить файлы из переименованного каталога в новый Зафиксировать изменения

Причина: Вы внесли некоторые изменения в некоторые файлы в каталоге .svn, это нарушает "рабочую копию"

Ответ 6

Я только что получил "не рабочую копию", и для меня причина была в Automouter on Unix. Просто новый "cd/path/to/work/directory" сделал трюк.

Ответ 7

Если вы создали файл внутри нового каталога, вместо 'svn add newdir/newfile' используйте 'svn add newdir', потому что вам нужно добавить каталог. Все файлы внутри каталога будут добавлены по умолчанию.

Ответ 8

То же самое, мне нужно было обновить папку "contrib":

  • Перемещена старая папка,
  • Скопирован новый
  • Скопировала папки .svn в каждую (только три в моем случае) новую папку.

В моем случае проблема была связана с удалением папок .svn.

решаемые.

Ответ 9

Я попытался вставить папку .svn из подпапки в корневую папку. Он работает!!!

Ответ 10

Это то, что я сделал:

  • переименовать магистраль в магистраль _
  • создать новую папку.
  • Повторная проверка и прерывание процесса после удаления нескольких файлов
  • Переместить файлы из trunk_ в магистраль
  • Очистка svn
  • Сделайте обновление svn. Это обновит статус файлов, а затем все ваши файлы будут версироваться.

Ответ 11

Я также встречаю эту проблему в svn diff operation, это было вызвано неправильным пути к файлу, вы должны добавить './', чтобы указать текущий каталог файлов.

Ответ 12

svn: репозиторий в 'svn://repourl/reponame/foldername' имеет uuid 'm/reponame', но WC имеет 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'

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

Ответ 13

Может ли это несоответствие формата рабочей копии? Он изменился между svn 1.4 и 1.5, а новые инструменты автоматически преобразуют формат, но старые более не работают с преобразованной копией.

Ответ 14

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

Завершите новый проект еще раз, объедините изменения (если они есть) вашего старого проекта SVN с новым, используя "Winmerge" и зафиксируйте изменения в последней проверке.

Ответ 15

@JesperE упоминает, что вам нужно изменить uuid. Следующее должно помочь вам в этом.

В SVN 1.5+ вы можете сделать svnadmin setuuid; вы можете проверить правильность установки с помощью svnlook uuid. В более ранних версиях SVN это более сложный процесс. См. http://chestofbooks.com/computers/revision-control/subversion-svn/Managing-Repository-UUIDs-Reposadmin-Maint-Uuids.html

Кроме того, UUID "m/reponame" выглядит подозрительно. Я считаю, что это должно быть шестнадцатеричное число, такое как рабочая копия, поэтому, возможно, это действие улучшит все: -)

[Я изначально прокомментировал ответ @JesperE, но создал этот ответ, чтобы сделать его более очевидным для людей и более полезным для Google. С тех пор я снял свои комментарии. ]

Ответ 16

Если бы та же самая проблема, оказалось, что у нас был Slik 1.6.2, а также черепаха на той же машине. Черепаха была обновлена ​​(и обновила рабочую копию), но у Слика не было, поэтому Черепаха работала нормально, но командные строки не сработали:

svn: '.' не является каталогом рабочей копии

Удаление как Tortoise, так и Slik, а затем переустановка Tortoise с включенными инструментами командной строки исправила это для меня.

Ответ 17

для mac: - выполнить проверку со стороны сервера, и откроется новое окно, чтобы выбрать каталог с вашего локального компьютера, чем поместить весь ваш код в выбранную папку, затем откройте svn локальную сторону и добавьте и зафиксируйте проект

Ответ 18

Сегодня утром я нашел ту же самую проблему /FILE_NAME/ is not a working copy, и я потратил более двух часов на ее решение. После долгого времени RND и Google я нашел какое-то решение, а это CHECKOUT.

  • CHECKOUT от SUBVERSION до локального как новый проект.
  • Измените часть кода в java файле и COMMIT проект.
  • Это работает для меня.

Надеюсь, это поможет вам.

Ответ 19

Удалите папку .svn, которая присутствует на вашем локальном компьютере. Нажмите значок окна и введите .svn, удалите всю папку. Это сработало для меня.