Android Studio SVN 1.8:该客户端版本过旧,无法与工作副本配合使用。

6
希望有人可以帮忙解决这个问题...
我下载了SmartSVN,并在其中打开了一个工作副本(Android项目)。它要求我将工作副本升级到1.8版。
在使用svn客户端时,这对我没有任何问题。但是,我确实需要升级我的命令行svn客户端(运行OSX Yosemite)。
现在,当我在命令行上键入svn --version时,它指向1.8版本...好棒!
但是,在Android Studio中,当我运行assembleProductionRelease时,有一个阶段会运行svn info并提取修订号。
这是代码:
def getSvnRevision() {
    new ByteArrayOutputStream().withStream { os ->
        def result = exec {
            executable = 'svn'
            args = ['info']
            standardOutput = os
        }
        def outputAsString = os.toString()
        def matchLastChangedRev = outputAsString =~ /Last Changed Rev: (\d+)/
        return "${matchLastChangedRev[0][1]}"
    }
}

这段代码不再运行并报告;

svn: E155021: 该客户端版本过旧,无法与xxx的工作副本一起使用

编辑:我还修改了首选项 -> 版本控制 -> Subversion 中的路径,该路径称为“使用命令行客户端”,将其指向正确路径中的svn文件。

我还在Android Studio中使缓存失效以查看是否有帮助,但仍然没有运气。

5个回答

13

经过数小时的搜索,我终于找到了适用于Mac OS X(我使用的是Yosemite,但我认为其他版本的OSX也适用)的解决方案。

所有的解释都在这个链接里:http://andowebsit.es/blog/noteslog.com/post/how-to-upgrade-subversion-on-osx/

编辑:如果链接失效了,在这里提供该解决方案

首先,你必须确保安装的SVN客户端版本是1.8,使用svn --version来检查。结果应该类似于以下内容:

svn --version
svn, version 1.8.13 (r1667537)
compiled Jun 5 2015, 19:21:21 on x86_64-apple-darwin14.3.0

如果你的svn版本不是1.8,则可以使用brew来安装新版本的subversion。

然后为了获取svn可执行文件的正确路径,你需要使用which命令:

which -a svn
/usr/bin/svn
/usr/local/bin/svn

最后打开Android Studio -> Preferences -> Version Control -> Subversion,并将/usr/local/bin/svn字符串放置在Use command line client选项中。


2
不鼓励仅提供链接的答案,因为链接可能会失效。 - Zharf

9
在Mac上,Android Studio自带默认的SVN,位于/usr/bin/svn。但直到现在,它仍然是版本1.7,而大多数SVN客户端(如SmartSVN)使用的是位于/usr/local/bin/svn1.8版本。
要解决Android Studio的问题,您可以从Preferences -> Version Control -> Subversion更改路径为/usr/local/bin/svn
要确保命令行选择了哪个SVN,请键入which svn,它将显示指向完整路径的svn命令。您应该更改为那里。
希望这有所帮助。
更新04/19/2016:
我分享截图:Path in Android Studio

这对我来说是个解决方案!我注意到在终端中使用svn一切都很顺利,但是Android Studio仍然无法解决问题。在首选项中按照上述描述进行更改后,一切都变得顺利了。 - Michael90
顺便提一下:你可能需要将“使用命令行客户端”也改为完整路径。 - Michael90
什么意思是"set the path"?版本控制窗口中没有路径设置选项。 - IgorGanapolsky
我拍了截图,请查看...对不起,因为我用错了词。 - KimKha
为我工作。谢谢! - Sagar Zala

0

让AndroidStudio使用其内部SVN客户端。

对我来说(在Windows上),当我安装新版本的svn客户端(TortoiseSVN)时,就会发生这种情况。

如果您不想将工作副本更新到较新的版本,则必须使AndroidStudio使用其内部SVN客户端,可以在文件>设置>版本控制>Subversion中通过取消'使用命令行客户端'选项的复选框来完成。


0

要更改本地工作副本的格式,请执行以下操作:

通过以下其中一种方式打开版本控制工具窗口: 在主菜单上选择查看|工具窗口|版本控制。 按Alt+9。 切换到Subversion工作副本信息选项卡。 只有当当前项目源完全或部分受Subversion控制时,才会出现此选项卡。

滚动到所需目录的信息,并单击“更改”链接。 请注意,Subversion 1.9可以与本地工作副本版本1.8一起使用,因此在这种情况下,“更改”链接将不会出现。

在打开的转换工作副本格式对话框中,选择所需的格式选项。


0
  1. 尝试更新 SVN 版本 - 下载最新版本的 SVN,并安装它。在选项中,将 SVN 路径设置为此新版本的 bin 目录(或 svn 可执行文件所在位置)。这应该解决这个问题。

  2. 如果没有解决,查看“事件日志”或“终端窗口”。你会看到类似于“svn 版本不匹配”的信息 - 立即修复。点击立即修复。这将要么解决问题,要么打开一个左侧面板,其中包含升级项目设置的链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接