Рабочая копия XXX заблокирована, и очистка не удалась в SVN - PullRequest
576 голосов
/ 24 сентября 2008

Я получаю эту ошибку, когда делаю svn update:

Рабочая копия XXXXXXXX заблокирована Пожалуйста, выполнить команду «Очистка»

Когда я запускаю очистку, я получаю

При очистке не удалось обработать следующие пути: XXXXXXXX

Как мне выйти из этого цикла?

Ответы [ 46 ]

515 голосов
/ 24 сентября 2008

Один из подходов будет:

  1. Копирование отредактированных элементов в другое место.
  2. Удалить папку, содержащую проблемный путь.
  3. Обновление содержащей папки через Subversion.
  4. Скопируйте ваши файлы обратно или объедините изменения по необходимости.
  5. Commit

Другим вариантом будет удаление папки верхнего уровня и повторная проверка. Надеюсь, до этого не дойдет.

469 голосов
/ 28 августа 2009

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

208 голосов
/ 14 июля 2009

Загляните в папку .svn, в ней будет файл с именем lock. Удалите этот файл, и вы сможете обновить. В каталоге .svn каждого подкаталога может быть больше файлов блокировки. Их также нужно удалить. Это можно сделать в виде пакета просто из командной строки, например,

find . -name 'lock' -exec rm -v {} \;

Обратите внимание, что вы вручную редактируете файлы в папке .svn. Они были помещены туда по причине. Эта причина может быть ошибкой, но в противном случае вы можете повредить локальную копию.

ИСТОЧНИК: http://www.svnforum.org/2017/viewtopic.php?p=6068

101 голосов
/ 08 сентября 2012

В моем случае я решил эту проблему, вручную удалив запись в записи блокировки файлов SQLite ".svn \ wc" в таблице WC_LOCK.

Я открыл файл "WC" с помощью редактора SQLite и выполнил

delete from WC_LOCK

screenshot showing all entries purged from WC_LOCK

После комментария eakkas может потребоваться удалить все записи из таблицы WORK_QUEUE.

87 голосов
/ 04 февраля 2016

Самый простой способ:

  1. Перейти к Родительский каталог (папка) из Проект .
  2. Pres Правый клик
  3. Нажмите TortoiseSVN , затем нажмите Очистить ...
  4. Диалог очистки появится автоматически
  5. Выберите Clean up working copy status, Break locks, Fix time stamps, Vacuum pristine copies, Refresh shell overlays, Include externals
  6. Pres OK

Вы успешно выполнили свою работу.

Проверьте снимки экрана для справки.

Первый шаг:

enter image description here

Второй шаг: Включите опцию «Разблокировать блокировку» (второй флажок в всплывающем окне очистки) enter image description here

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

48 голосов
/ 24 сентября 2008

Коллега на работе постоянно видит это сообщение, и для него это происходит потому, что он удалил каталог под управлением версией SVN без , удалив его из SVN, а затем создал новый каталог на своем месте, не под управлением версией с тем же именем.

Если это ваша проблема ...:

Существуют различные способы исправить это, в зависимости от того, как / почему каталог был заменен.

В любом случае вам, вероятно, потребуется:

A) Переименовать существующий каталог во временное имя

B) Вернуть SVN для восстановления каталога, удаленного из файловой системы, но не из SVN

Оттуда вы либо

A) Скопируйте соответствующие файлы в каталог, который был удален

B) Если у вас было существенное изменение содержимого в каталоге, выполните SVN-удаление оригинала, зафиксируйте и переименуйте новый каталог обратно на нужное имя, а затем добавьте SVN, чтобы получить that один под контролем версий.

31 голосов
/ 15 мая 2017

Для меня ни одно из вышеперечисленных решений не сработало. Я нашел решение, взломав замки. Когда я выполнил svn cleanup, я выбрал «Break Locks» вместе с «Очистить статус рабочей копии».

enter image description here

22 голосов
/ 10 мая 2013

Этот работал для меня.

  1. Перейти в корневую папку,
  2. Щелкните правой кнопкой мыши и очистите
  3. Проверьте все доступные опции
  4. Нажмите ок

После очистки это позволит вам обновиться до последней версии.

11 голосов
/ 19 августа 2013

Для меня это была ошибка Черепахи, вроде как. Черепаха только что жаловалась, что «не может очистить, запустить очистку», но когда я запустил командную строку (svn cleanup), она ясно сказала мне, что не может удалить некоторые файлы, которые использовались, решение которых было очевидно. Как только я закрыл Visual Studio (которая держала файлы открытыми), очистка работала нормально.

Другие программы также могут держать файлы открытыми в репозитории, вызывающем эту проблему. Excel с открытым xls был виновником в другом случае, поэтому может быть целесообразно закрыть все программы, которые могут использовать что-либо в репозитории, или даже перезагрузиться, чтобы заставить программы закрыться, а затем повторить попытку очистки.

7 голосов
/ 18 мая 2010

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

Решение. Удалите тревожную папку из хранилища и обновите ее в корневой папке, в которой установлено свойство svn: externals. Это создаст папку, и все будет хорошо снова.

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

...