2

MAC 提供#1.7.10 SVN 客户端,但我的项目使用的是#1.6.18 SVN。

所以我收到错误消息“工作副本太旧(格式 10,由 Subversion 1.6 创建)”

目前我无法升级我的项目 svn 版本。所以我认为对我来说唯一的方法是重新安装旧版本的 SVN。(如果有更好的解决方案,请告诉我)

我的问题是:

  1. 我可以在#1.6 SVN 工作副本上使用#1.7 SVN 客户端吗?如果不

  2. 如何卸载旧版 SVN 并重新安装旧版 SVN?

谢谢你的帮助。

4

4 回答 4

3

即使您的服务器是 1.6.8,使用 1.7.10 版本也没有问题。您不应该做的是在系统之间共享工作副本。不能保证一个 Subversion 客户端将使用与另一个相同的工作副本格式。例如,一些 Windows 客户端使用_svn目录而不是.svn目录——尤其是对于 VisualStudio 开发。

在最长的时间里,大多数客户端使用默认的 Subversion 客户端格式,在 1.7 客户端之前几乎没有变化。在该客户端中,.svn在每个目录中找到的文件夹都被删除,在目录的根目录中只有一个.svn文件夹。这使得 1.7 命令行客户端工作副本与早期格式不兼容。

你从来没有解释过你的 Mac 是如何拥有 1.6.8 工作副本的。是您的 Mac 上有某种使用旧格式的 GUI 客户端,还是您有在两个不同系统上使用的共享。如果你在做后者,不要。在每个系统上检查一个单独的工作副本。

如果您需要在工作副本之间共享更改而不进行提交,请使用svn diff命令创建补丁文件。然后使用svn patch将此补丁文件应用到另一个工作副本。

于 2013-09-24T14:47:15.297 回答
0

将旧版本安装在路径上高于默认实现的位置。

即 svn 默认安装在 /usr/bin/ 中(正如我在系统上看到的那样),但 usr/local/bin 在我的 PATH 中更高,所以如果我要这样做,我会在 usr/local 中安装旧版本/垃圾桶

于 2013-09-24T13:01:38.490 回答
0

还有另一种方法。您可以从 1.7(应该适用于 Mavericks)回滚到 1.6。

将现有的 1.7 安装保存到另一个文件夹

sudo mv /usr/bin/svn* ~/Documents/svn_1.7

安装 XCode 并从那里符号链接 1.6 版本

/Applications/Xcode.app/Contents/Developer/usr/subversion-1.6/bin

sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/subversion-1.6/bin/svn /usr/bin/svn
sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/subversion-1.6/bin/svnadmin /usr/bin/svnadmin
sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/subversion-1.6/bin/svndumpfilter /usr/bin/svndumpfilter
sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/subversion-1.6/bin/svnlook /usr/bin/svnlook
sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/subversion-1.6/bin/svnserve /usr/bin/svnserve
sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/subversion-1.6/bin/svnsync /usr/bin/svnsync
sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/subversion-1.6/bin/svnversion /usr/bin/svnversion

瞧!

于 2014-03-11T10:28:04.907 回答
0

1.7 客户端可以在您执行1.6 WCsvn upgrade工作。在该事件之后,1.6 客户端将无法使用该工作副本。

您可以将另一个版本的 SVN 安装到非默认路径,然后将该路径放在您的$PATH环境变量中,或者在每次使用它时指定二进制文件的完整路径(如果您走这条路线,您可以alias在你的外壳来简化它,但要小心,因为你可能会混淆哪个 svn 是哪个)

于 2013-09-24T13:20:15.627 回答