it-swarm.com.ru

Почему я продолжаю получать SVN: рабочая копия XXXX заблокирована; попробуйте выполнить "очистку"?

Если вы раньше работали с инструментами SVN в Eclipse (Subversion, subversive), то вы, вероятно, знакомы с ошибкой «рабочая копия» XXX «заблокирован ...».

Я нашел очень полезный пост с обходным путем для этой проблемы по адресу: Рабочая копия XXX заблокирована и очистка не удалась в SVN

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

Контекст: я создаю плагин Eclipse, который включает прослушивание событий SVN, поэтому при тестировании этого плагина я постоянно открываю и закрываю рабочее пространство. Я обычно делаю 1 или 2 коммита каждый раз, когда открываю рабочее пространство. Время от времени фиксация завершается неудачей, и я получаю ошибку «рабочая копия заблокирована». Я хотел бы, чтобы эта ошибка больше не случалась, поэтому любые советы приветствуются.

Спасибо!

45
jbranchaud
  1. Выберите проект
  2. Щелкните правой кнопкой мыши по выбранному проекту
  3. Команда -> Очистка

Задача решена.

Примечание. Вышеуказанные шаги будут работать только для Eclipse (пакет Indigo).

81
Peter Prabu

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

14
fmucar

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

Правка Вы также должны быть осторожны, чтобы не прерывать операции SVN, хотя иногда может возникать ошибка, и это может привести к тому, что файл .lock не будет удален, и, следовательно, к вашей ошибке.

9
Kenny Cason

Убедитесь, что вы точно очистили то, что говорит консоль. Например, если подпапка (пакет) заблокирована:

   svn: E155004: Commit failed (details follow):
  svn: E155004: Working copy 'C:\Users\laura\workspace\tparser\src\de\test\order' locked
  svn: E155004: 'C:\Users\laura\workspace\tparser\src\de\test\order' is already locked.

очистка C:/Пользователи/liparulol/рабочая область/tparser/src/de/mc/etn/parsers/order

Тогда вам нужно очистить указанную папку, а не весь проект. Если вы находитесь в Eclipse, щелкните правой кнопкой мыши на пакете, а не в папке проекта, и выполните очистку.

4
Laura Liparulo

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

3
jbranchaud

Это произойдет, если что-то пошло не так в одной из ваших папок в вашем проекте. Вам необходимо выяснить, какая именно папка заблокирована, и выполнить svn cleanup в указанной папке. Вы можете решить это следующим образом:

  1. выполните команду svn commit, чтобы узнать, какая папка пошла не так.
  2. перейдите в эту папку и запустите svn cleanup. Тогда это сделано.
3
Simon

У меня была та же проблема с использованием пакета com.xxx.service.model

Чтобы это исправить, я сначала сделал резервную копию изменений кода в пакете модели. Затем удалил модель пакета и синхронизировал с хранилищем. Он покажет входящие всю папку/пакет. Затем обновил мой код.

Наконец, вставьте старый код в SVN Repository. Работает нормально.

2
Kamalakar Dandu

Следующее должно разблокировать заблокированную рабочую копию (протестировано на клиентской версии SVN 1.6.11 и версии elipse: Mars.2 Release (4.5.2))

шаг 1: (перейти в каталог рабочей копии) $ cd working_copy_dir

шаг 2: (подключиться к базе данных svn sqlite) $ sqlite3 .svn/wc.db

шаг 3: (удалить все записи из таблицы WC_LOCK) sqlite> удалить из WC_LOCK;

шаг 4: (отключиться от базы данных sqlite 3) sqlite> ctrl + d

шаг 5: (из Eclipse) щелкните правой кнопкой мыши на своей рабочей копии, затем выберите Team -> Refresh/Cleanup

2
SayeedSohail

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

1
Tony Striedinger

Решение: Шаг 1: Необходимо удалить файл «блокировки», который присутствует в скрытом файле «.svn» . Шаг 2: В случае, если «блокировки» нет затем вы увидите «we.db», вам нужно открыть эту базу данных и удалить только одно содержимое из следующих таблиц - lock - wc_lock Step3 : Очистите ваш проект Шаг 4: Попробуйте зафиксировать сейчас . Шаг 5: Готово.

0
R3ing

Этот тип проблемы может возникнуть, когда вы удаляете/перемещаете файлы - по сути, внося изменения в структуру каталогов. Subversion проверяет только изменения, внесенные в файлы, уже добавленные в Subversion, а не изменения, внесенные в структуру каталогов. Вместо того, чтобы использовать команды copy и т.д. Вашей операционной системы, используйте svn copy и т.д. См. http://svnbook.red-bean.com/en/1.7/svn.tour.cycle.html

Кроме того, после принятия изменений svn сначала сохраняет «сводку» изменений в списке задач. После выполнения операций SVN в этом списке задач он блокирует файл, чтобы предотвратить другие изменения во время выполнения этих действий SVN. Если действие svn прервано на полпути, например, из-за сбоя, файл останется заблокированным до тех пор, пока svn не сможет выполнить действия в списке задач. Это можно «повторно активировать» с помощью команды svn cleanup. Пожалуйста, смотрите http://svnbook.red-bean.com/en/1.7/svn.tour.cleanup.html

0
Chris