|
Персональные инструменты |
|||
|
SASL, SVN, Mercurial и BazaarМатериал из CustisWikiВерсия от 14:54, 6 ноября 2014; VitaliyFilippov (обсуждение | вклад) Те, кто предпочитают использовать SVN через встроенный легковесный сервер Svnserve (вместо Apache и mod_dav_svn), вместе с интегрированной Windows-доменной авторизацией через SASL, могут столкнуться со странной ошибкой: В command-line клиенте SVN из дистрибутива от CollabNet (с дистрибутивом SlikSVN все ОК): svn: Cannot negotiate authentication mechanism или что-то типа subvertpy.SubversionException: ('Cannot negotiate authentication mechanism', 210007)
Причина — неполный набор DLL’ек библиотеки SASL-аутентификации в сборках от CollabNet. Конкретно, обычно не хватает saslLOGIN.dll и saslPLAIN.dll, которые как раз нужны в нашей офисной конфигурации. Итак, чтобы «починить» CollabNet-oвский клиент, нужно залить в него все SASL-DLLи (разумеется, соответствующей «битности»), полный набор которых, кстати, есть в дистрибутиве TortoiseSVN (от того же CollabNet): saslANONYMOUS.dll saslCRAMMD5.dll saslDIGESTMD5.dll saslNTLM.dll saslLOGIN.dll saslPLAIN.dll И затем убедиться, что в реестре следующим образом прописаны пути к этим библиотекам (первый путь ищется под 32 битами, второй — под 64): Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Carnegie Mellon\Project Cyrus\SASL Library] "SearchPath"="C:\\Program Files\\TortoiseSVN\\bin" [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Carnegie Mellon\Project Cyrus\SASL Library] "SearchPath"="C:\\Program Files\\TortoiseSVN\\bin" Важный момент — пути прописывать без завершающего слеша! Библиотеке конечно позор — и за это, и за использование реестра (никаких portable-сборок), и за «Carnegie Mellon». В случае с Bazaar — залить все эти библиотеки в папку lib дистрибутива, и то же самое с реестром. Mercurial у меня питоновский, по крайней мере расширение hgsubversion все равно требует Python с установленными SVN-биндингами, так что там проще поставить subvertpy (хоть easy_install-ом), а потом перегрузить в папку с subvertpy все DLLи из «полного» CollabNet-дистрибутива (то есть дополненного тортилловыми SASL-библиотеками), и опять-таки вправить мозги реестру. За решение проблемы благодарность procmon-у от Руссиновича, без которого, наверное, уже точно давно был виндекапец и все сидели под Linuxом, где таких проблем нет (с виндовой доменной авторизацией), и мне бы не пришлось выслушивать издевательства от рядом сидящего линуксоида. Если кто-то готов посоветовать лучшее решение (можно ли пересадить в Python 2.7 SVN библиотеки от SlikSVN, в общем, чтобы не было завязок на реестр) — [mailto: stas-fomin@yandex.ru посоветуйте]. |
||