Subversion:工作副本为旧的开发版本

8
我正在使用OSX进行开发,我的一个Subversion工作副本突然对所有命令返回以下错误,但是我的其他检出正常工作。我使用Brew安装的SVN二进制文件和Cornerstone客户端都收到相同的消息,但其他工作目录没有问题。
> svn update
svn: E155036: Please see the 'svn upgrade' command
svn: E155036: Working copy '/working_directory' is an old development version (format 12); to upgrade it, use a format 18 client, then use 'tools/dev/wc-ng/bump-to-19.py', then use the current client
> svn upgrade
svn: E155019: Can't upgrade '/working_directory' as it is not a pre-1.7 working copy directory
svn: E150000: Missing default entry

根据命令find / -type f -name bump-to-19.py,我在电脑上找不到bump-to-19.py脚本,但我认为我在Apache资源库上找到了它。话虽如此,我不熟悉它的功能或如何使用它。理想情况下,我可以避免检出这个工作目录的新版本并手动合并我所有的(很多)更改。

我找到的唯一信息与Netbeansjavahl有关,我都没有使用。

编辑:下载bump-to-19.py文件并使其可执行后,我尝试将其应用于我的工作目录,但未成功:

> ./bump-to-19.py working_directory/
error: format is 29 not 18: 'working_directory/'
4个回答

12

虽然我不知道为什么我的工作目录损坏了,但我使用rsync绕过了这个问题——这里有一个选项C,可以在备份时忽略CVS/SVN文件和目录。我使用该选项进行了备份,重新检出了项目,然后将备份复制到新的工作目录中。 SVN又正常运行了。

> rsync -arC working_directory working_directory_no_svn
> rm -rf working_directory
> svn co https://svn.example.com/project/trunk working_directory
> rsync -ar working_directory_no_svn working_directory

很不错的解决方案,但我认为用户1794106发布的那个更简单、更清晰。 - Nagel

8

我曾经遇到过同样的问题,以下是我解决的方法:

  1. 删除顶层的.svn文件夹(rm -rf .svn)
  2. 从SVN重新检出软件(svn co ...)
  3. 搞定了!

5

我知道这个问题已经存在一段时间了,但是我找到了一种使用SVN提供的提示解决方案......基本上按照它所说的使用升级命令。使用CMD,我进入了位于工作区文件夹中有问题的项目。让我们称其为Project1。你调用命令:

"svn upgrade project1"

这样可以正确地解决我的问题,而不涉及任何黑科技或变通方法。


1
非常感谢!这个方法非常有效。我应该注意到,最初我尝试的 cd project1; svn upgrade 并不起作用。 - Nagel
只是想在你的回答中加一句话,我确实尝试运行了 svn upgrade project_name,但是得到了和其他 svn 命令相同的错误信息。不过如果它能够解决问题,肯定值得先尝试这个选项,这样更加高效、简洁。 - doublesharp

0

我遇到了类似的问题,我的svn版本是1.7.10,但是我的Eclipse Subversion插件略旧,我猜测是1.6.x。

使用“rsync -arC working_directory archive_no_svn”命令是一个突破 - 至少现在我有了刚刚完成的同步工作的副本。

我尝试使用“svn co”,但是它是错误的版本,所以我只需在Eclipse中使用Subversion插件运行更新 - 这将从存储库中恢复工作目录 - 几乎就是我想要的,并且是正确的版本。

将rsync返回到正确位置是一个技巧。 rsync似乎会将工作文件夹放入归档位置,创建archive_location/working_directory/the-files。因此,将归档数据同步回working_directory的方法是: rsync -ar archive_no_svn/working_directory .

现在我必须找出如何升级我的Eclipse Subversion插件到1.7。


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