【问题标题】:Can I restore a deleted Svn repository from a local check out?我可以从本地签出恢复已删除的 Svn 存储库吗?
【发布时间】:2012-11-10 18:17:44
【问题描述】:

我不小心删除了服务器上的主存储库。这是个人服务器,因此不会影响其他任何人。我在我的桌面上对文件进行了本地签出(通过 svn co)。我想知道是否可以从本地签出重建 Svn 服务器存储库?

我不是专业的 Svn 用户,所以我真的不太了解 svn 的细节,但我知道与 Git 不同的是,Svn 的服务器 repo 与本地签出不同。所以这并不像复制回来那么容易,至少我自己是这么认为的。

谢谢

【问题讨论】:

    标签: svn restore


    【解决方案1】:

    您可以做的最好的事情是设置一个新的 repo,删除工作副本中的 .svn 目录,然后将文件导入新的 repo。然后,您需要转到任何现有的工作副本并将它们切换到新的存储库。您可能需要切换 --relocate。

    【讨论】:

    • 感谢您的帮助。文件修订怎么样?
    • 如果 svn 历史丢失。使用 git。
    • @yaruncan 修订历史将不复存在。
    • 谢谢@all。我现在知道了 Svn 的缺点之一。由于我必须签入的文件大小(超过 gbs 的二进制文件),我选择了 Svn。我不确定 Git 是否适合我,但我会尝试一下。
    • @yaruncan - 对于大型二进制文件(最好的情况下必须将其排除在版本控制之外,您只会保存 sources)Git 是糟糕的选择。带有langefiles扩展名的Mercurial 是答案
    【解决方案2】:

    首先:不备份 SVN-Repo 很痛苦,不应该发生。 但同样的事情发生在我身上。我开始再次添加数千个文件,一个文件一个文件,因为我不想签入临时文件或其他无源文件。

    几乎所有的历史都丢失了。但是不是最后一个签入状态丢失了! 我设法获得了最后一个签入状态,所以新的 repo 与旧的类似,我也得到了最后一个差异!

    这是我的乌龟食谱:

    1. 备份您的本地结帐
    2. 清理您的本地结帐。
      1. 取消选中:清理工作副本状态

        检查:

      2. 删除未版本化
      3. 删除忽略
      4. 全部还原
    3. 创建新的仓库
    4. 将新的仓库签出到新的空文件夹中
    5. 将清理后的旧副本复制到新文件夹中
    6. 简单地添加所有文件
    7. 提交
    8. 使用 1 中的备份覆盖您的新结帐文件夹。

    现在您已经像以前一样获得了所有文件,包括最后一个差异,并且只有文件版本化,就像以前一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-29
      • 2013-10-25
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      • 2012-06-27
      • 2020-01-04
      相关资源
      最近更新 更多