|
|
Строка 1: |
Строка 1: |
| Те, кто предпочитают использовать [[SVN]] через встроенный легковесный сервер [http://svnbook.red-bean.com/en/1.0/ch06s03.html Svnserve] (вместо <tt>Apache</tt> и <tt>mod_dav_svn</tt>), | | Те, кто предпочитают использовать [[SVN]] через встроенный легковесный сервер [http://svnbook.red-bean.com/en/1.0/ch06s03.html Svnserve] (вместо <tt>Apache</tt> и <tt>mod_dav_svn</tt>), |
| вместе с интегрированной Windows-доменной авторизацией через [[RuPedia:Simple Authentication and Security Layer|SASL]], | | вместе с интегрированной Windows-доменной авторизацией через [[RuPedia:Simple Authentication and Security Layer|SASL]], |
− | могут столкнутся с странной ошибкой. | + | могут столкнуться со странной ошибкой: |
− | * В command-line клиенте SVN, дистрибутив от CollabNet (с дистрибутивом SlikSVN все ОК)
| + | |
| | | |
− | svn: Cannot negotiate authentication mechanism
| + | В command-line клиенте SVN из дистрибутива от CollabNet (с дистрибутивом SlikSVN все ОК): |
| + | |
| + | svn: Cannot negotiate authentication mechanism |
| | | |
| или что-то типа | | или что-то типа |
| + | |
| subvertpy.SubversionException: ('Cannot negotiate authentication mechanism', 210007) | | subvertpy.SubversionException: ('Cannot negotiate authentication mechanism', 210007) |
| + | |
| * в Bazaar, который умеет работать с SVN-репозитариями, используя [http://www.samba.org/~jelmer/subvertpy/ subvertpy]. | | * в Bazaar, который умеет работать с SVN-репозитариями, используя [http://www.samba.org/~jelmer/subvertpy/ subvertpy]. |
| * в Mercurial, который может работать с SVN, используя дополнение hgsubversion, которое, в свою очередь, использует SWIG-биндинги WinSVN или тот же [http://www.samba.org/~jelmer/subvertpy/ subvertpy]. | | * в Mercurial, который может работать с SVN, используя дополнение hgsubversion, которое, в свою очередь, использует SWIG-биндинги WinSVN или тот же [http://www.samba.org/~jelmer/subvertpy/ subvertpy]. |
| + | * вероятно, аналогично и в Git — там для работы с SVN используется Perl-модуль, основанный на тех же SWIG-биндингах. |
| | | |
| ---- | | ---- |
− | Причина — самодурство библиотеки SASL (вернее ее конкретной, самой распространенной сборки), и неполный набор DLL-ей для SVN.
| + | Причина — неполный набор DLL’ек библиотеки SASL-аутентификации в сборках от CollabNet. Конкретно, обычно не хватает saslLOGIN.dll и saslPLAIN.dll, которые как раз нужны в нашей офисной конфигурации. |
| | | |
− | Итак, чтобы «починить» CollabNet-oвский клиент, нужно залить в него все SASL-DLLи (разумеетяся, соответствующей «битности»), полный набор которых, кстати, есть в дистрибутиве TortoiseSVN (от того же CollabNet), обычно отсутствуют последние две: | + | Итак, чтобы «починить» CollabNet-oвский клиент, нужно залить в него все SASL-DLLи (разумеется, соответствующей «битности»), полный набор которых, кстати, есть в дистрибутиве TortoiseSVN (от того же CollabNet): |
| saslANONYMOUS.dll | | saslANONYMOUS.dll |
| saslCRAMMD5.dll | | saslCRAMMD5.dll |
Строка 22: |
Строка 26: |
| saslPLAIN.dll | | saslPLAIN.dll |
| | | |
− | Затем, убедиться, что в реестре следующим образом прописаны пути к этим библиотекам (первый путь ищется под 32 битами, второй — под 64).:
| + | И затем убедиться, что в реестре следующим образом прописаны пути к этим библиотекам (первый путь ищется под 32 битами, второй — под 64): |
| | | |
| Windows Registry Editor Version 5.00 | | Windows Registry Editor Version 5.00 |
Строка 30: |
Строка 34: |
| "SearchPath"="C:\\Program Files\\TortoiseSVN\\bin" | | "SearchPath"="C:\\Program Files\\TortoiseSVN\\bin" |
| | | |
− | Важный момент — пути прописывать без завершающего слеша! Библиотеке конечно позор — и за это, и за использование реестра (никаких portable-сборок), и за «Carnegie Mellon». | + | Важный момент — пути прописывать без завершающего слеша! Библиотеке конечно позор — и за это, и за использование реестра (никаких portable-сборок), и за «Carnegie Mellon». |
− | | + | |
− | В случае с Bazaar — залить все эти библиотеки в папку <tt>lib</tt> дистрибутива, и тоже самое с реестром.
| + | |
| | | |
− | Mercurial у меня питоновский, по крайней мере расширение <tt>hgsubversion</tt> все равно требует <tt>Python</tt> с установленными <tt>SVN</tt>-биндингами, так что там, проще ставить <tt>subvertpy</tt> (хоть <tt>easy_install</tt>-ом), а потом перегрузить в папку с <tt>subvertpy</tt> все DLLи из «полного» CollabNet-дистрибутива (т.е. дополненного тортилловыми SASL-библиотеками), и опять таки вправить мозги реестру.
| + | В случае с Bazaar — залить все эти библиотеки в папку <tt>lib</tt> дистрибутива, и то же самое с реестром. |
| | | |
| + | Mercurial у меня питоновский, по крайней мере расширение <tt>hgsubversion</tt> все равно требует <tt>Python</tt> с установленными <tt>SVN</tt>-биндингами, так что там проще поставить <tt>subvertpy</tt> (хоть <tt>easy_install</tt>-ом), а потом перегрузить в папку с <tt>subvertpy</tt> все DLLи из «полного» CollabNet-дистрибутива (то есть дополненного тортилловыми SASL-библиотеками), и опять-таки вправить мозги реестру. |
| | | |
| ---- | | ---- |
| За решение проблемы благодарность <tt>procmon</tt>-у от Руссиновича, без которого, наверное, уже точно давно был виндекапец и все сидели под Linuxом, где таких проблем нет (с виндовой доменной авторизацией), и мне бы не пришлось выслушивать издевательства от рядом сидящего линуксоида. | | За решение проблемы благодарность <tt>procmon</tt>-у от Руссиновича, без которого, наверное, уже точно давно был виндекапец и все сидели под Linuxом, где таких проблем нет (с виндовой доменной авторизацией), и мне бы не пришлось выслушивать издевательства от рядом сидящего линуксоида. |
| | | |
− | Если кто-то готов посоветовать лучшее решение (можно ли пересадить в Python 2.7 SVN библиотеки от SlikSVN, в общем, чтобы не было завязок на реестр) — [mailto:stas-fomin@yandex.ru посоветуйте]. | + | Если кто-то готов посоветовать лучшее решение (можно ли пересадить в Python 2.7 SVN библиотеки от SlikSVN, в общем, чтобы не было завязок на реестр) — [mailto: stas-fomin@yandex.ru посоветуйте]. |
| | | |
| [[Категория:Статьи о Subversion]] | | [[Категория:Статьи о Subversion]] |
| <noinclude>[[Категория:CustisWikiToLib]]</noinclude> | | <noinclude>[[Категория:CustisWikiToLib]]</noinclude> |
Текущая версия на 14:54, 6 ноября 2014
Те, кто предпочитают использовать 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)
- в Bazaar, который умеет работать с SVN-репозитариями, используя subvertpy.
- в Mercurial, который может работать с SVN, используя дополнение hgsubversion, которое, в свою очередь, использует SWIG-биндинги WinSVN или тот же subvertpy.
- вероятно, аналогично и в Git — там для работы с SVN используется Perl-модуль, основанный на тех же SWIG-биндингах.
Причина — неполный набор 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 посоветуйте].