MAC 提供#1.7.10 SVN 客户端,但我的项目使用的是#1.6.18 SVN。
所以我收到错误消息“工作副本太旧(格式 10,由 Subversion 1.6 创建)”
目前我无法升级我的项目 svn 版本。所以我认为对我来说唯一的方法是重新安装旧版本的 SVN。(如果有更好的解决方案,请告诉我)
我的问题是:
我可以在#1.6 SVN 工作副本上使用#1.7 SVN 客户端吗?如果不
如何卸载旧版 SVN 并重新安装旧版 SVN?
谢谢你的帮助。
即使您的服务器是 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将此补丁文件应用到另一个工作副本。
将旧版本安装在路径上高于默认实现的位置。
即 svn 默认安装在 /usr/bin/ 中(正如我在系统上看到的那样),但 usr/local/bin 在我的 PATH 中更高,所以如果我要这样做,我会在 usr/local 中安装旧版本/垃圾桶
还有另一种方法。您可以从 1.7(应该适用于 Mavericks)回滚到 1.6。
sudo mv /usr/bin/svn* ~/Documents/svn_1.7
/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
瞧!
1.7 客户端可以在您执行1.6 WC后svn upgrade
工作。在该事件之后,1.6 客户端将无法使用该工作副本。
您可以将另一个版本的 SVN 安装到非默认路径,然后将该路径放在您的$PATH
环境变量中,或者在每次使用它时指定二进制文件的完整路径(如果您走这条路线,您可以alias
在你的外壳来简化它,但要小心,因为你可能会混淆哪个 svn 是哪个)