最新消息:

解决svn: Cannot negotiate authentication mechanism错误问题

svn admin 7934浏览 0评论
前言:

在企业项目开发中,svn是很常用的代码版本管理工具,我习惯了使用Xcode配合命令行进行svn管理。最近公司SVN 认证添加 Windows AD 域认证 导致 Xcode无法连接到SVN当中

问题描述:

通过命令行访问svn的时候,比如执行svn update命令时,报错:svn: Cannot negotiate authentication mechanism(无法协商认证机制)

原因定位:

针对上述问题,开始想解决办法。

是由于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://mirror.esocc.com/apache/subversion/subversion-1.8.9.tar.gz

找到了自己系统支持的版本,由于是dmg文件,安装很方便,程序会安装到/opt/subversion目录下面。接下来还需要做些配置设置:

1、替换系统原来的svn

  1. wget http://mirror.esocc.com/apache/subversion/subversion-1.8.9.tar.gz
  2. tar zxvf subversion-1.8.9.tar.gz
  3. cd subversion-1.8.9
  4. ./configure
  5. make
  6. make install

默认安装到  /usr/local/bin/ 下

2、替换系统原来的svn

系统的svn安装目录是:

  1. /usr/bin/svn

可以通过以下方式查看:

  1. $ ls /usr/bin/svn*   
  2. /usr/bin/svn           /usr/bin/svndumpfilter /usr/bin/svnrdump      /usr/bin/svnsync   
  3. /usr/bin/svnadmin      /usr/bin/svnlook       /usr/bin/svnserve      /usr/bin/svnversion

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

  1. sudo rm -rf /usr/bin/svn*

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

  1. sudo cp -rfp /usr/local/bin/svn* /usr/bin/

 2、替换Xcode中的svn

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

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

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

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

  1. $ ls svn*  
  2. svn     svnadmin    svndumpfilter   svnlook     svnrdump    svnserve    svnsync     svnversion

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

  1. sudo rm -rf /Applications/Xcode.app/Contents/Developer/usr/bin/svn*

②复制文件:

  1. sudo cp -rfp /usr/local/bin/svn* /Applications/Xcode.app/Contents/Developer/usr/bin/

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

  1. $ svn upgrade

 

 

转载请注明:爱开源 » 解决svn: Cannot negotiate authentication mechanism错误问题

您必须 登录 才能发表评论!