Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 由于从备份回滚,Subversion工作副本比服务器更新_Svn - Fatal编程技术网

Svn 由于从备份回滚,Subversion工作副本比服务器更新

Svn 由于从备份回滚,Subversion工作副本比服务器更新,svn,Svn,因此,我的服务器管理员从备份中回滚了subversion服务器。 我的工作副本是1534版,但服务器现在是1525版,这会产生一些问题: $ svn up svn: Revision 1534 not found 当然,总是可以选择进行干净的签出,但是有没有更简单的方法让我的本地工作副本与服务器同步 svn up -r HEAD 或者指定另一个特定的修订版也可以。您必须再次签出 你的工作副本死了 管理员应该真正尝试在每次提交时同步备份,或者通过钩子脚本将提交存储为转储 如果您使用的是Wind

因此,我的服务器管理员从备份中回滚了subversion服务器。 我的工作副本是1534版,但服务器现在是1525版,这会产生一些问题:

$ svn up
svn: Revision 1534 not found
当然,总是可以选择进行干净的签出,但是有没有更简单的方法让我的本地工作副本与服务器同步

svn up -r HEAD

或者指定另一个特定的修订版也可以。

您必须再次签出

你的工作副本死了

管理员应该真正尝试在每次提交时同步备份,或者通过钩子脚本将提交存储为转储


如果您使用的是Windows/TortoiseSVN,请查看下面的内容。

除了进行新的签出并手动将未提交的更改合并到新的工作副本之外,我看不到任何解决方案。基本上,您的工作副本来自另一个现实——服务器升级实际工作的地方——我认为Subversion没有任何条款来解决这个问题。

几周前,同样的事情发生在我们身上。我重新命名了我的主干文件夹,签出一个干净的主干,然后手动将崩溃日期及以后所有更改的文件复制到我的主干中,以便我可以重新提交更改。

我刚刚发现有一种方法可以做到这一点,只要您的机器上有一个合理的最新版本,并且您的工作副本由该版本维护(即,仅安装最新的Ortoise SVN不起作用)

进入顶级目录并删除.svn文件夹-这将删除所有本地缓存的svn信息。注意:.svn文件夹仅显示在顶级签出文件夹中,并且是隐藏的

然后在现有本地副本的顶部签出。然后,Tortoise将重新版本文件,重要的是,将保留修改后的文件。然后,您将能够提交更改和更新,而不会出现任何问题。

至少对于svn 1.8而言是这样 svn更新-r 1525 (根据Michael Hackner的建议)将起作用,并保持本地更改的文件不变。几分钟前遇到类似问题,并使用此命令解决了它


要验证1525和1531之间提交的文件发生了什么。

您的工作副本没有死。是的,您可以再次签出…但在我的情况下,这超过20GB,需要很长时间

我只需要处理几个文件,这些文件在工作副本上比服务器存储库上更新(也由于回滚)

您可以做的是对临时位置进行快速稀疏签出(仅签出一个目录)。接下来,从该部分签出位置,获取隐藏的.svn文件(该目录的历史记录),并将其放置到有问题的工作副本(保存较新的历史记录)中

这不会影响您的源文本文件,只会为它们提供较旧但与存储库匹配的历史记录。自回滚时间以来的提交文本将丢失,但很容易重新键入


在我这样做之后,svn运行良好,并显示了自回滚时间以来我所做的所有更改。当然,您必须再次提交这些更改。

您是否尝试过使用特定的修订号?
svn up-r 1525
?这无法作为svn up(在服务器上)工作将始终尝试在拉取更新之前进行差异化,但是没有这样的修订。顺便问一下,您的修改是否提交了?如果没有提交,您可能会遇到一些问题,必须首先还原(请确保先创建修改文件的副本!)。但我不是100%确定。它们已提交,但现在由于回滚而在服务器上丢失。我的磁盘上有更改,还有一个额外的副本,准备再次应用更改。嗯,由于似乎没有任何效果,您可能需要再次签出所有内容:/n在此之前,如果尚未签出,您仍然可以进行最后一次检查o查看直到版本1525(svn日志-r HEAD)之前,服务器上是否实际存在所有内容正如您所期望的那样…是的,1525之前的所有内容都在服务器上,但由于备份版本为1525,因此缺少了1526到1534。令人遗憾的是,这实际上是一次计划内停机,升级没有成功。我没有得到通知,他们在备份后又让服务器保持了2个小时的活动状态(也许你的管理员应该学习一些svnbasics。.让他们看看@Martin的答案,它对我很有效,帮助我避免了大量的重新签出。@moodboom:我明白你的意思,但这是一种乌龟特有的行为。我更新了我的答案,指向MartinYes,这也是我最后所做的。这会导致每个现有文件都被重新签出。)-“版本化”,为我工作得很好,节省了我几个小时的结账时间。其他都没用。谢谢@Martin