解决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. PHP学习笔记,自己动手写个MVC的框架

    最新在大家自己的博客的过程中,发现各种开源的博客系统都或多或少的用起来别扭.于是想动手自己写个博客系统.既然写,就想好好写.那就先写个MVC框架.一点一点来.写的过程中有很多想法.还希望大家能够多多指 ...

  2. python核心编程-第四章-个人笔记

    1.所有的python对象都拥有三个特性: ①身份:每个对象都有唯一的身份标识自己,可用内建函数id()来得到.基本不会用到,不用太关心 >>> a = 2 >>> ...

  3. MYSQL while 、repeat

    前期准备: createt table employee(ID int ,Name varchar(4)); 用下列方法向表中循环插入数据. ----------------------------- ...

  4. C语言的本质(23)——C标准库之输入与输出(上)

    1..文件的基本概念 所谓"文件"是指一组相关数据的有序集合.这个数据集有一个名称,叫做文件名.实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库 ...

  5. cdecl、pascal、stdcall、fastcall

    Directive Parameter order   Clean-up Passes parameters in registers?register   Left-to-right         ...

  6. C Statements

    1,while((ch = getchar()) != EOF){    putchar(ch);}2,while((ch=getchar()) != EOF){    if(ch < '0' ...

  7. zlog

    zlog源码包下载地址https://github.com/HardySimpson/zlog zlog使用手册http://blog.csdn.net/yangzhenzhen/article/de ...

  8. C#打印条码BarTender SDK打印之路和离开之路(web平凡之路)

    从来没想过自己会写一篇博客,鉴于这次从未知的探索到一个个难点的攻破再到顺利打印,很想记录这些点滴,让后人少走弯路. 下面走进正题. 需求:取数据库里的相应的字段数据,并生成条形码,可以批量.单条打印. ...

  9. mac 安装maven 和改动java环境变量

    一. 首先是安装maven: 步骤: 1.下载Maven tar包 http://maven.apache.org/download.cgi 2. 下载后解压到某个目录下 [html] view pl ...

  10. MS SQL 当记录不存在时插入insert INTO not exists

    INSERT INTO dbo.[T_DabaoTemp]  ([PType]           ,[pID]           ,[NewVersion]           ,[ParentC ...