Папка заблокирована, и я не могу ее разблокировать

108

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

Что это значит? Почему я не могу обновить, зафиксировать или даже очистить проект.

Ияд Аль Акель
источник
Какую версию svn вы используете?
Chriseyre2000
Ассембла для репозитория Tourtise SVN 1.7
Iyad Al aqel
Итак, у вас есть папка .svn в каждом каталоге или только в корне?
Chriseyre2000
Вы пробовали еще раз выделить проект в отдельную рабочую копию?
Бернард
Да, он работает, если я проверю его в другой папке, но база данных не открывается
Ияд Аль Акель

Ответы:

161

Щелкните правой кнопкой мыши папку рабочего каталога Subversion и выберите TortoiseSVN-> Очистить в контекстном меню. Это будет рекурсивно проходить через ваш рабочий каталог и очищать любые незавершенные действия, снимать локальные блокировки (что отличается от использования Subversion блокировки файла в репозитории, которая позволяет всем узнать о блокировке).

Если это не сработает, посмотрите, сможете ли вы найти имена файлов, которые были изменены, но еще не зафиксированы, сохраните их и повторите проверку.

Дэвид В.
источник
28
У меня была эта проблема, и очистка не сработала (не удалось очистить из-за локальных блокировок), но переход к родительской папке (которая также находилась под контролем версий) и очистка там устранили проблему.
Malvineous 08
2
Вы можете взломать локальные блокировки, отметив Break locksопцию.
aagjalpankaj
1
Комментарий @Malvineous драгоценен. Следует опубликовать это как ответ.
Lazy Ninja
16

Если файл был заблокирован вами (та же учетная запись svn), вы можете выполнить следующие действия:

Щелкните правой кнопкой мыши заблокированный файл или папку и выберите TortoiseSVN-> Получить блокировку ... и отметьте « [] Украсть блокировки » в нижнем левом углу диалогового окна, нажмите «ОК». Если он завершится успешно, ничего страшного. Если снова щелкнуть файл правой кнопкой мыши, вы увидите TortoiseSVN-> Снять блокировку ... , щелкните, чтобы разблокировать.

cuixiping
источник
12

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

Перед:

# svn commit -m "fixing #1234"

совершить

# svn st

перед

# svn cleanup

После:

# svn st

после

# svn commit -m "fixing #1234"

после2

Себас
источник
10

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

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

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

Либо

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

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

затем

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

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

Джонатон Дж. Хоуи
источник
8

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

Решение для меня:

  1. Щелкните правой кнопкой мыши рабочий каталог проекта.
  2. Перейдите к TortoiseSVN .
  3. Перейдите, чтобы очистить .
  4. Оставьте все параметры по умолчанию и установите флажок Break Locks.
  5. Нажмите ОК

У меня это работает. Я смог зафиксировать изменения.

WilliamK
источник
1
Установка флажка "Взломать блокировки" решает мою проблему.
Банкетешвар Нараян
Это идеальный ответ, который я искал. Большое спасибо
вамши кришна курелла
Это должен быть правильный ответ. Практично, просто и прямо по делу!
Оана-Елена Данеску
3

Чтобы разблокировать файл в вашей рабочей копии из командной строки, который в настоящее время заблокирован другим пользователем, используйте --forceпараметр.

$ svn unlock --force tree.jpg

манав мн
источник
Что делать, если я хочу разблокировать каталог?
Игорь Ганапольский
@IgorGanapolsky В приведенной выше команде
укажите
@IgorGanapolsky, какое сообщение об ошибке вы получаете. Позвольте мне проверить
манав пн
Узел - это не файл !
Игорь Ганапольский
3

У меня была эта проблема, и я сделал следующие шаги для ее решения:

  1. Перейти в родительскую папку вместо дочерней папки
  2. Выберите очистку SVN
  3. Щелкните ОК.

Сделайте этот шаг в родительской папке вместо дочерней!

У меня это сработало!

Akhilesh
источник
1

Я перемещал папку на один уровень выше в другую папку. Моя ошибка заключалась в перемещении из родительской папки.

Плохой пример:

pwd -> C:\Repo\ParentDir\
svn move ./DirtoCopy ../AnotherDir

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

Хороший пример:

svn move C:\Repo\ParentDir\DirtoCopy C:\Repo\NewLocation
rasky74
источник
1

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

На сервере SVN:

Найдите замки

 svnadmin lslocks /root/of/repo
 (in my case it was var/www/svn/[name of Company])

 You can add a specific path to this by svnadmin lslocks /root/of/repo "path/to/file"

Снять блокировку

 svnadmin rmlocks /root/of/repo “path/to/file” 

Это оно!

укладчик
источник
0

Решение :

  1. Щелкните правой кнопкой мыши рабочий каталог проекта.
  2. Перейдите к TortoiseSVN.
  3. Перейдите, чтобы очистить.
  4. Выберите Очистить статус рабочей копии (отметьте галочкой)
  5. Нажмите ОК
  6. Повторите шаги 1 и 2, затем нажмите, чтобы снять блокировку.
  7. Нажмите OK. Откроется блокировка вашего проекта.
Винаяк
источник
0

В дополнение к ответу Дэвида М, выполняя очистку -> проверьте опцию «взломать блокировки». Это обеспечит снятие замков. Затем сделайте svn update. Это сработало для меня.

Vinnu
источник
0

Чтобы разблокировать заблокированный документ: 1. Щелкните правой кнопкой мыши -> Заблокировать 2. Установите флажок «Украсть блокировки» 2. Снимите блокировку.

user7257040
источник
0

Я много исследую эту проблему, но не могу решить мою проблему, пока не попробую следующее:

Моя папка репо используется совместно с виртуальной машиной Windows xp, поэтому я выполняю очистку с виртуальной машины, а затем выполняю SVN UPDATE с хоста.

У меня это сработало.

Привет из Коста-Рики.

Луиска94
источник
0

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

Рсивакумар
источник
-1

У меня это случилось после того, как Tortoise была повреждена и вылетела при попытке обновить папки. В итоге я переустановил Tortoise, но призрачный замок все еще присутствовал. Оттуда мне пришлось удалить папку и выполнить новую проверку. Очевидно, мне очень повезло, что в то время у меня не было никаких новых изменений, которые нужно было зафиксировать. В любом случае, не очень хорошие новости, и если у кого-то есть лучшее решение, я бы хотел услышать его сам. Даже использование "Break Lock", т.е. разблокировка с опцией силы, ничего не меняло.

JMM
источник
-1

Очистить, установить все флажки => Это работает для меня

Ắc Thắng Nguyễn
источник
То же, что и ắc Thắng Nguyễn. Сделайте «надежную» уборку.
-1

Я столкнулся с этой проблемой после этих операций:

  1. заблокировать папку
  2. изменять файлы
  3. удалить файлы и обновить папки -> новые файлы загружены
  4. попытаться зафиксировать или снять блокировку

Наконец, я решил проблему, снова установив блокировку: TortoiseSVN -> Получить блокировку -> отметьте «украсть блокировку», затем зафиксируйте или снимите блокировку.

med_alpa
источник