У меня есть репозиторий SVN (размещенный на Dreamhost) с блокировкой потребностей в двоичных файлах. Иногда случается так, что, фиксируя и изменяя файлы мной, коммит не выполняется с ошибкой:
Error: Commit failed (details follow):
Error: File '/my/file.bin' is locked in
Error: another working copy
Если я попытаюсь получить блокировку этого файла (не крадя его), он говорит:
Error: Path '/my/file.bin' is already locked by user
Error: 'my_username' in filesystem '/home/user1/svn/repo1/db'
Очистка не помогает, поэтому единственный способ решить эту проблему - украсть блокировку, а затем выполнить коммит.
Это не критическая проблема, но это действительно раздражает, особенно когда это происходит в середине длинной фиксации. Я склонен думать, что это вызвано ошибкой клиента или сервера, так как я уверен, что я не использую другие рабочие копии, и проблема происходит довольно часто (3 раза за последние два дня) мне и мои коллеги, использующие репозиторий.
Мы используем TortoiseSVN 1.8.4, а сервер Dreamhost svn - 1,6.12.
Спасибо за любую помощь.
ОБНОВЛЕНИЕ: Я заметил, что ошибка возникает, если я обновляю свою рабочую копию до ее совершения (что не дает ошибки и, конечно же, не изменяет заблокированные файлы). Проверяя статус файла, перед обновлением черепаха говорит, что он заблокирован мной (проверка только локально), а после проверки обновления локально он дает "????" как состояние блокировки, и, проверяя сервер, он говорит, что он заблокирован мной. После обновления файл становится доступным только для чтения (из-за необходимости-блокировки), даже если он по-прежнему помечен как измененный. Таким образом, последовательность действий: lock file.bin → modify file.bin → обновить всю рабочую копию → commit → commit failed error. После обновления рабочая копия, похоже, забывает о состоянии блокировки, и когда она запрашивает сервер, она считает, что она заблокирована на другой рабочей копии.