解决svn: Cannot negotiate authentication mechanism错误问题
作者:wangzz
转载请注明出处

前言:

在企业项目开发中,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安装目录是:

/usr/bin/svn

可以通过以下方式查看:

$ ls /usr/bin/svn*
/usr/bin/svn /usr/bin/svndumpfilter /usr/bin/svnrdump /usr/bin/svnsync
/usr/bin/svnadmin /usr/bin/svnlook /usr/bin/svnserve /usr/bin/svnversion

①先把这些文件删除,不放心的话可以先备份一下,执行以下删除命令:

sudo rm -rf /usr/bin/svn*

②建立svn安装目录到系统安装目录的链接,执行以下命令:

sudo ln -s /opt/subversion/bin/svn* /usr/bin/ 

③验证是否升级成功

执行命令:

svn --version

验证是否安装了新的svn版本。

2、替换Xcode中的svn

由于系统和Xcode中使用的是两个不同的svn,要想在Xcode中使用svn还要单独配置。

不同版本的Xcode的svn目录可能稍有不同,我的4.5.2版本svn路径是:

/Applications/Xcode.app/Contents/Developer/usr/bin/

进到该目录后,执行以下命令,查看跟svn想管的文件:

$ ls svn*
svn svnadmin svndumpfilter svnlook svnrdump svnserve svnsync svnversion

①删除原来的svn文件,执行下面的命令:

sudo rm -rf svn*

②创建文件连接:

sudo ln -s /opt/subversion/bin/svn* .

3、升级旧版本svn更新下来的代码
如果你使用1.6版本的SVN客户端检出了代码,使用1.7版本的客户端的时候,可能会出一些版本不兼容的问题,解决办法是切入到代码工程所在根目录,执行以下命令进行转换

$ svn upgrade 

至此,问题解决!

解决svn: Cannot negotiate authentication mechanism错误问题的更多相关文章

  1. linux下svn客户端报错Cannot negotiate authentication mechanism的解决方法

    svn客户端报错Cannot negotiate authentication mechanism的解决方法: 问题出现的原因之一: 因为SVN服务器配置了saslauthd服务用来实现与ldap的对 ...

  2. svn报错:Cannot negotiate authentication mechanism

    在使用eclipse的svn插件连接osc的代码仓库时候,发生了以下错误: Cannot negotiate authentication mechanismsvn: Unable to connec ...

  3. svn:Cannot negotiate authentication mechanism

    解决方案:在eclipse->window->preference->team->svn中将svn接口设定为svnkit.

  4. 解决svn Authorization failed错误

    解决svn Authorization failed错误 (2010-09-22 21:37:31) 转载▼   出现该问题基本都是三个配置文件的问题,下面把这个文件列出来 svnserve.conf ...

  5. 解决SVN Cleanup时遇到错误信息:Cleanup failed to process the following paths:xxxxxxx Previous operation has not finished: run 'cleanup' if it was interrupted Please execute the 'Cleanup' command.

    解决SVN Cleanup时遇到错误信息:Cleanup failed to process the following paths:xxxxxxx Previous operation has no ...

  6. 解决SVN CONNOT VERIFY LOCK ON PATH NO MATCHING LOCK-TOKEN AVAILABLE

    最近使用SVN,开发项目的时候,璞玉遇到一个问题.就是: connot verify lock on path  no matching lock-token available   connot v ...

  7. 解决svn "cannot set LC_CTYPE locale"的问题

    解决svn "cannot set LC_CTYPE locale"的问题 在ubuntu 8.10下安装的svn,在将Ubuntu的语言修改为英文之后,出现错误警告: $ svn ...

  8. 重启nova-scheduler服务,报错Login was refused using authentication mechanism AMQPLAIN

    问题描述 运行 systemctl restart openstack-nova-scheduler.service 失败,查看日志报错如下: 2019-12-22 14:52:27.426 1513 ...

  9. Oracle解锁,解决“ora00054:资源正忙”错误

    Oracle解锁,解决“ora00054:资源正忙”错误 一.处理步骤:--1.获取被锁对象的session_idSELECT session_id FROM v$locked_object; --2 ...

随机推荐

  1. netbeans ide怎么添加yii代码提示

    菜单栏选择工具->选项->php界面里的全局包含路径中选择framework这个文件夹就可以了

  2. Cable master--hdu1551(二分法)

    Cable master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  3. android Xml生成一条细线,以及获取屏幕宽度和高度

    <View android:layout_width="match_parent" android:layout_height="2dip" androi ...

  4. 关于网络协议和socket编程基本概念

    TCP协议可以说已经是IT人耳熟能详的协议,最近在学习socket网络编程时后重新温习一下这个协议,针对一些问题做了一些总结,很多理解可能还不是很准确. 1. 协议是什么?所谓的各种网络协议无非是一种 ...

  5. C#操作XML的完整例子——XmlDocument篇(转载,仅做学习之用)

    原文地址:http://www.cnblogs.com/serenatao/archive/2012/09/05/2672621.html 这是一个用c#控制台程序下,  用XmlDocument 进 ...

  6. linux之SQL语句简明教程---Subquery

    我们可以在一个 SQL 语句中放入另一个 SQL 语句.当我们在 WHERE 子句或 HAVING 子句中插入另一个 SQL 语句时,我们就有一个 subquery 的架构. Subquery 的作用 ...

  7. 采用dlopen、dlsym、dlclose加载动态链接库【总结】

    摘自http://www.cnblogs.com/Anker/p/3746802.html 采用dlopen.dlsym.dlclose加载动态链接库[总结]   1.前言 为了使程序方便扩展,具备通 ...

  8. Linux dirname、basename 指令

    http://blog.sina.com.cn/s/blog_9d074aae01013ctk.html 一.dirname指令 1.功能:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然 ...

  9. linux C之access函数 (20

    http://blog.sina.com.cn/s/blog_6a1837e90100uh5d.html linux C之access函数 (20access():判断是否具有存取文件的权限 相关函数 ...

  10. Android自己主动化測试之Monkeyrunner用法及实例

    眼下android SDK里自带的现成的測试工具有monkey 和 monkeyrunner两个.大家别看这俩兄弟名字相像,但事实上是完全然全不同的两个工具,应用在不同的測试领域.总的来说,monke ...