我在 Mac 上工作,最近更新了 Xcode,在此更新中,它安装了最新版本subversion 1.9.x
作为核心安装。这很好,但在工作中我们使用的1.8.x
这个新版本是不兼容的。
理想情况下,我想将核心颠覆改回 1.8.x,但我不清楚如何进行。到目前为止我所做的是通过包管理器(Homebrew)将正确的版本安装到/usr/local/opt/subversion
.
这对于我的 IDE 来说很好,因为我可以指向 ./bin 文件夹。但是,如果我想在终端中工作(我经常这样做),则版本是 1.9.x。
作为解决方法,我在 my 中创建了一个别名,./bash_profile
如下所示 。alias svn=/usr/local/opt/[email protected]/bin/svn
现在,当我打开终端并运行时,svn --version
我得到以下内容。
svn, version 1.8.16 (r1740329) compiled Apr 2 2017, 22:11:27 on x86_64-apple-darwin15.6.0
这是完美的,但我觉得我错过了一些东西,还有我不时使用的其他二进制文件,我讨厌给它们起别名。感觉应该有更好的方法,但我不太有信心在根级别上移动事情。
是否可以重新分配 subversion 的工作版本。也许类似的东西use svn --path ....
。
答案1
在编辑时,附加$PATH
环境变量是设置您想要使用的二进制文件的优先顺序的一个选项。这可能不是完全必要的。
当您svn up
在具有不匹配的子版本的工作副本中从终端运行时,您将收到以下消息。
svn: E155036: Please see the 'svn upgrade' command
过去盲目运行命令的经验让我感到紧张,但在调查了一些同事的机器后,很明显,不兼容是与工作副本而不是与 VCS 服务器。
要解决不匹配问题,您只需运行svn upgrade
.之后您将能够运行svn up
并且更新应该可以顺利进行。
如果一切都失败了,您仍然可以svn
通过在环境变量中设置 subversion 文件夹的路径来强制使用特定版本的二进制文件$PATH
。
例如export PATH=/usr/local/opt/[email protected]/bin:/usr/bin:/bin:$PATH
我之前没有真正花时间去理解的是,它$PATH
包含您希望从命令行访问的任何二进制文件的位置。您选择的二进制文件越靠近字符串的前面,就决定了它们的选择顺序。
如果某个文件夹不再可用,我相信它应该级联到下一个位置。