解决svn: Cannot negotiate authentication mechanism错误问题
解决svn: Cannot negotiate authentication mechanism错误问题作者:wangzz原文地址:http://blog.csdn.net/wzzvictory/article/details/10521735转载请注明出处
前言:
在企业项目开发中,svn是很常用的代码版本管理工具,我习惯了使用Xcode配合命令行进行svn管理。最近换了公司,郁闷的是新公司只能使用第三方svn管理工具,比如cornerstone来管理svn。
问题描述:
在Xcode上配置svn响应源的时候直接报错:Host is unreachable;
通过命令行访问svn的时候,比如执行svn update命令时,报错:svn: Cannot negotiate authentication mechanism(无法协商认证机制)。
原因定位:
针对上述问题,开始想解决办法。
1、由于公司的svn使用的是VPN网络,首先怀疑是VPN捣的鬼,因此开始着手配置VPN网络,倒腾了半天,问题未解决,此路不通。
2、求助李鹏同学,他在一个论坛里找到了问题原因:是由于svn服务器开启了sasl加密,本地的Xcode和命令行中的svn不支持sasl加密导致无法协商认证机制问题。至此开始朝为电脑安装sasl的方向努力。很兴奋的到网上下了一个sasl安装包,安装以后并未起作用,很是纳闷。后来偶尔在一篇博客中看到,较高版本的svn已经支持sasl加解密了,于是开始着手升级svn版本。目前我用的MAC OS10.8系统支持的svn最新版本是:1.7.11,而10.8系统和我的Xcode4.5.2自带的的svn版本是1.6.18,开始寻找升级方案。
问题解决:
从网上找了svn安装包的下载地址:http://www.wandisco.com/subversion/download#osx
找到了自己系统支持的版本,由于是dmg文件,安装很方便,程序会安装到/opt/subversion目录下面。接下来还需要做些配置设置:
1、替换系统原来的svn
系统的svn安装目录是:
$ svn upgrade
至此,问题解决!