Согласно документации Subversion :
после завершения коммита, svn
статус показывает, что токен блокировки отсутствует
дольше присутствует в рабочей копии.
Это стандартное поведение SVN
commit - ищет рабочую копию
(или список целей, если вы предоставите
такой список) для локальных модификаций
и отправляет все токены блокировки
встречает во время этой прогулки к
сервер как часть коммита
сделка. После совершения
успешно завершено, все
замки хранилища, которые были упомянуты
выпущены - даже на файлы, которые
не были совершены. Это предназначено для
препятствовать пользователям быть небрежным
о блокировке или от удержания замков
слишком долго.
В попытке убедиться, что эта функция работает, я постоянно получаю это сообщение при попытке зафиксировать изменение файла, которое заблокировало мою рабочую копию:
svn: Cannot verify lock on path '/test/test'; no matching lock-token available
Теперь я протестировал этот сценарий в двух разных рабочих копиях в Windows и один раз в RHEL, и каждый раз получал одну и ту же ошибку с новой проверкой и без предыдущих блокировок файла. Если я разблокирую файл и затем выполню коммит, проблем не будет, коммиты произойдут. Если я использую свойство svn: needs-lock, та же ошибка возникает при попытке зафиксировать перед разблокировкой файла.
Я почти уверен, что ошибка возникает не на стороне клиента, а на стороне сервера. Я подумал, что, возможно, клиенты не передают токен локальной авторизации обратно на сервер Subversion. Тем не менее, я попробовал это с тремя разными клиентами (2 CLI и Subclipse). Поскольку он не работает с тремя разными клиентами, я чувствую, что клиенты передают токены локальной авторизации обратно на сервер. Так что я почти уверен, что сервер - это то место, где мне нужно решить эту проблему, но где?