Рабочая копия заблокирована - PullRequest
68 голосов
/ 06 января 2012

Я занимаюсь веб-разработкой с использованием Subversion в качестве контроля версий, но получаю сообщение об ошибке «рабочий каталог заблокирован»

Вот история:

У меня

ПК-A:

  • Windows XP Pro
  • VisualSVN 2.5.2
  • Черепаха SVN 1.7.3

PC-B:

  • Windows XP Home
  • Черепаха SVN 1.7.3

У меня есть хранилище на ПК-A с использованием VisualSVN.

С PC-B я извлекаю http: \\ PC-A: 81 \ svn \ test \ trunk to D: \ xampp \ htdocs \ test-lalala.

С ПК-А я также извлекаю http: \\ ПК-А: 81 \ svn \ test \ trunk to D: \ xampp \ htdocs \ test-lalala.

Я создаю перехваты после фиксации, запускающие файл my-post-commit.bat, чтобы при фиксации http: \\ PC-A: 81 \ svn \ test \ trunk, папка D: \ xampp \ htdocs\ test-lalalaon PC-A будет обновлен, чтобы другие люди могли видеть результат.

"C:\Program Files\VisualSVN Server\bin\svn.exe" update "D:\xampp\htdocs\test-lalala" --username myusername --password mypassword --config-dir "C:\Program Files\VisualSVN Server\conf" 

На ПК-B создайте файл index.php и подтвердите.Когда я фиксирую, я получаю это сообщение об ошибке

error message

На ПК-A я пытаюсь щелкнуть правой кнопкой мыши на D: \ xampp \ htdocs \ test-lalala TortoiseSVN> CleanUp,и проверьте «очистить состояние рабочей копии» и «Включить внешние» (по умолчанию установлено).Попробуйте добавить файл и зафиксировать, но все равно получено то же сообщение об ошибке.

Я пытаюсь найти файл блокировки в папке .svn, но файл блокировки отсутствует.Я также пытаюсь удалить рабочую копию на ПК-A D: \ xampp \ htdocs \ test-lalala и снова оформить заказ, но при фиксации все равно получаю то же сообщение об ошибке.

Как устранить это сообщение об ошибке?Итак, когда я фиксирую, папка будет обновляться автоматически?

Ответы [ 16 ]

186 голосов
/ 26 июля 2012

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

В командной строке вы можете выполнить svn cleanup, который также удаляет файлы блокировки.

Примечание. Выполните эту операцию в каталоге на один уровень выше, и это должно решитьбольшую часть времени.

36 голосов
/ 05 марта 2013

Для тех, у кого все еще есть эта проблема (Ошибка: рабочая копия '{DIR}' заблокирована.), У меня есть ваше решение:

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

Итак, чтобы решить эту проблему:

Либо

1a) Используйте Process Explorer или аналогичный для удаления дескрипторов, принадлежащих TSVNCache.exe

1b) .. Или еще проще, просто используйте диспетчер задач для уничтожения TSVNCache.exe

Тогда

2) Щелкните правой кнопкой мыши -> TortoiseSVN -> Очистить.Необходимо проверить только «Очистить состояние рабочей копии».

Оттуда, удачного обновления / фиксации.Поведение блокировки можно воспроизвести, выполнив обновление SVN, а затем быстро завершив процесс TortoiseProc.exe до завершения обновления.

21 голосов
/ 18 апреля 2013

Запустите «Очистить» на верхнем уровне каталога.

11 голосов
/ 27 февраля 2015

Я решил это, удалив запись WC_Lock в SQLite ".svn \ wc.db" запись блокировки файла в таблице WC_LOCK.

Просто откройте файл "wc.db" с редактором SQLite и выполните

удалить из WC_LOCK

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

7 голосов
/ 23 марта 2012

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

5 голосов
/ 23 июля 2014

Я уверен, что он работает нормально для вас

Перейти к папке SVN верхнего уровня.

Щелкните правой кнопкой мыши папку (в которой есть ваши файлы SVN) -> TortoiseSVN -> CleanUp

Это, безусловно, решит вашу проблему.

3 голосов
/ 10 января 2014

Если вы парень из Windows и используете пользователя "Tortoise SVN".

Выберите файл. Щелкните правой кнопкой мыши. Опция «Черепаха SVN» -> получить блокировку. Используйте опцию «Украсть замок».

2 голосов
/ 13 апреля 2018

Вы можете исправить это только одним шагом.

Шаг 1: Откройте терминал и перейдите в ваш проект, затем запустите команду «svn cleanup», затем «svn update»

1 голос
/ 27 февраля 2015

Когда вы получаете ошибку рабочей копии, просто запустите svn cleanup, который очистит все ненужные файлы и папки.Если ошибка по-прежнему возникает, сделайте одно.

Скопируйте ваши файлы на другой диск и удалите папку или файл рабочей копии, а затем примите обновление, он извлечет новый файл и после этого заменит его вашей обновленной копией и сохранит ее.

1 голос
/ 26 января 2015

черепаха svn -> очистить

Это все в SVN

...