【问题标题】:svn repository restorationsvn存储库恢复
【发布时间】:2012-10-28 07:01:27
【问题描述】:

我需要将一些分支 repo 合并到另一个中,但我错误地使用了“svn copy”,它覆盖了目标存储库,因此一些文件丢失了。好消息是我每天都有使用 `svnadmin dump' 创建的备份,但我不确定如何才能恢复丢失的文件并保留以后添加的新文件。

我想这样做:

  1. 创建一些 svn 临时存储库
  2. 使用“svn load /path/to/the/temp-repository/
  3. cd /path/to/the/temp-repository/
  4. 递归删除所有 .svn 目录
  5. 转到我已覆盖的分支并使用 rsync 将丢失的文件发送到工作存储库。

不确定这是否是最好的方法。有什么想法吗 ?

【问题讨论】:

    标签: svn svnadmin


    【解决方案1】:

    我有更好的消息告诉你

    Subversion 存储更改之间的所有历史记录。

    当您不小心svn copy 时,您将 additional commit 添加到目标分支中。你可以

    • svn up GOODREV 良好提交(或 svn co BRANCH@GOODREV 进入新 WC)并在错误之上提交(次要编辑-保存-提交)
    • 通过反向合并撤消错误提交

    对于 svnadmin 转储

    您必须确定这些备份是增量备份(--incremental)还是完整备份。如果已满,您必须找到 GOODREV 存在的备份,svnadmin load 将此转储到 new 存储库中,svn copy 从 NEW-REPO 分支到 OLD-REPO 分支,杀死恢复的存储库

    提示:您必须更好地学习存储库管理:第 4-5 页只是谵妄 - SVN 存储库具有完全不同的文件树,并且存储库的子树不作为相同结构的物理树存在(并且 .svn 文件正在工作WC-元数据的复制属性和存储)

    对 svndump 的逻辑和更好的(比你的)使用再次不同。如果你仍然想隐藏你的错误,你有

    • 为修订范围(-r LOWER:UPPER 选项)创建新的完整转储,这将排除 BADREVISION。
    • 禁用所有连接
    • 删除旧存储库 (rm REPODIR + mkdir REPODIR)
    • 从转储中恢复存储库

    【讨论】:

    • 嗯。我仍然很困惑。实际上,在使用 svn copy 之前,我已经使用 svn del 先删除了该分支,然后从另一个分支 svn 复制。我还能恢复它吗?
    • 后来添加到那个分支的文件怎么样?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多