2012-01-06 6 views
63

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

Вот история:

У меня есть

PC-A:

  • Windows XP Pro
  • VisualSVN 2.5.2
  • Tortoise SVN 1.7.3

PC-B:

  • Windows XP Home
  • Tortoise SVN 1.7.3

У меня есть создать хранилище на PC-A с помощью VisualSVN.

С ПК-B, я заказываю http: \\ PC-A: 81 \ svn \ test \ trunk для D: \ xampp \ htdocs \ test-lalala.

От ПК-A, я также проверяю http: \\ PC-A: 81 \ svn \ test \ trunk на D: \ xampp \ htdocs \ test-lalala.

Я создаю привязки post-commit, запускающие файл 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

На PC-A, я пытаюсь щелкнуть правой кнопкой мыши на D: \ XAMPP \ HTDOCS \ тест-LALALA TortoiseSVN> подчистки и проверить «рабочую копию очистки status "и" Include externals "(проверено по умолчанию). Попытайтесь добавить файл и зафиксировать, но все равно получите такое же сообщение об ошибке.

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

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

+0

Ответ Джонатана Дж. Хоуи работал для меня. Я должен был сделать еще одну вещь, которая закрыла мою визуальную студию перед уборкой. –

ответ

1

В итоге я использовал команду export вместо команды update. Это крюк после фиксации

«C: \ Program Files \ VisualSVN Server \ bin \ svn.exe« экспорт: D: \ xampp \ htdocs \ test-lalala »--quiet --non-interactive - force --username myusername --password mypassword

0

У меня возникли те же проблемы, что и вы описали. Кажется, это ошибка в Tortoise 1.7.3. Я вернул обратно к 1.7.2, выполнил очистку и обновление. Теперь мой SVN/Tortoise снова работает отлично

6

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

+0

Это было единственное решение, которое сработало для меня. Благодаря! –

177

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

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

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

+0

Спасибо, решена проблема с моей рабочей копией с командой очистки –

+15

работал для меня, когда я очистил один уровень на уровне выше заблокированного местоположения – waqaslam

+0

Он работает над Ubuntu, у меня Ubuntu на клиенте и Linux на сервере, и он работает. На самом деле эта проблема возникает со мной в Linux чаще, чем в Windows. –

35

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

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

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

Либо

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

1b) ..Or еще проще, просто с помощью диспетчера задач убить TSVNCache.exe

Тогда

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

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

+1

+1 Это единственное, что сработало для меня! – JHFB

+0

Простая очистка работала для меня, но это было после выхода из системы и снова, так что, возможно, убил процесс таким образом. – RedEyedMonster

+0

У меня была Visual Studio, работающая с AnkhSVN, и мне пришлось закрыть ее и до очистки. – xenoclast

21

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

+2

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

+1

У меня такая же ошибка, когда я не запускал очистку в верхнем каталоге уровень – Vincent

+3

+1 для * «на верхнем уровне каталога» *. Никто не упоминает об этом, и это кажется важным. – Melebius

1

ошибка «рабочая копия заблокирована», Просто выполните следующие действия:

  1. В каком каталоге вы получаете сообщение об ошибке при обновлении
  2. Перейти к родительскому каталогу
  3. В родительском каталоге перейдите в раздел». СВН»скрытый каталог
  4. Удалить файл с именем„замок“
  5. Очищайте и Done

Вы можете обновить svn должным образом без ошибок

3

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

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

0

Для PhpStorm или Intellij:

VCS -> Cleanup Project 
4

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

папку Goto верхнего уровня SVN.

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

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

1

Tortoise SVN -> очистить

Это все в SVN

+0

Который часто терпит неудачу или очищает бесконечно – Asu

1

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

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

7

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

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

удалить из WC_LOCK

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

+0

Единственное решение, которое сработало для меня! –