我需要将一些分支存储库合并到另一个分支存储库中,相反,我错误地使用了覆盖目标存储库的"svn copy",因此一些文件丢失了。好消息是,我每天都使用"svnadmin dump"创建备份,但我不确定如何最好地恢复丢失的文件并保留以后添加的新文件。
我在想这样做:
- 创建一些 SVN 临时仓库
- 使用 "svn load/path/to/the/temp-repository/
- cd/path/to/the/temp-repository/
- 递归删除所有 .svn 目录
- 转到我已覆盖的分支,然后使用 rsync 将丢失的文件发送到工作存储库。
不确定这是否是最好的方法。有什么想法吗?
我有更好的消息要告诉你
Subversion 存储更改之间的所有历史记录。
当您意外svn copy
时,您将其他提交添加到目标分支中。您可以
svn up GOODREV
好的提交(或svn co BRANCH@GOODREV
到新的WC)和提交(次要的编辑-保存-提交)在坏的- 通过反向合并撤消错误提交
对于 svnadmin dump
您必须确定这些备份是增量(--增量)还是完整备份。在已满的情况下,您必须找到存在 GOODREV 的备份,svnadmin load
此转储到新存储库中,svn copy
从 NEW-REPO 分支到 OLD-REPO 分支,杀死还原的存储库
提示:你必须更好地学习存储库管理:第 4-5 页只是谵妄 - SVN 存储库具有完全不同的文件树,并且 repostory 的子树不作为相同结构的物理树存在(.svn 文件是工作副本属性和 WC 元数据的存储)
破坏逻辑和更好(比你的)svndump 用法再次不同。如果你仍然想隐藏你的错误,你有
- 为修订范围创建新的完整转储(-r LOWER:UPPER 选项),这将排除 BADREVISION。
- 禁用所有连接
- 删除旧存储库 (rm REPODIR + mkdir REPODIR)
- 从转储还原存储库