我丢失了我的SVN存储库

时间:2010-07-08 08:16:59

标签: svn

我的 SVN存储库已安装在服务器上,此服务器已向下, 我有三个工作副本,所有这些副本都进行了一些更改,而不是将它们提交给基础 在这种情况下该怎么办,请帮帮我

3 个答案:

答案 0 :(得分:9)

这是否意味着您丢失了存储库?

在这种情况下(如果你根本没有备份)我想最简单的事情就是:

  1. 在某处创建新的存储库。
  2. 选择一个工作副本(从最旧的副本开始,即更改较少的副本)。
  3. 将新存储库签出到该计算机上的空文件夹中。
  4. 导出您的工作副本(不要复制它)到您在步骤3中获得的空文件夹。由于您可能会在以后删除旧的工作副本,因此导出未版本控制的文件(如果您使用的是Tortoise SVN,则“导出”对话框顶部会出现一个复选框)。
  5. 让你改变。
  6. 对于您拥有的所有工作副本,重复步骤2.到5.在步骤5中,您需要手动合并。如果需要,请注意添加任何未版本控制的文件。

    您将丢失所有以前的修订历史记录,但如果您拥有所有工作副本,则不会以这种方式丢失工作数据。

答案 1 :(得分:3)

使用svn diff > a.patch在每个工作副本中制作补丁,然后应用其他两个工作副本补丁:patch -p0 < a.patch

下次使用一些DVCS,比如Git或Mercurial:)

答案 2 :(得分:1)

您是否拥有存储库的备份?如果是,请在某处加载svnadmin,然后将更改提交到此新位置。使用svn switch将工作副本指向新服务器。

如果不是,那么您已经丢失了项目的历史记录,并且无法将其恢复。

您所能做的就是在某处创建一个新的存储库,并将三个单独的副本一个接一个地提交给它。您可能必须删除工作副本中的所有.svn目录才能执行此操作。

使用DVCSMercurialGit来避免此类情况(以及许多其他问题)。