svn - 是否可以在 SVN 中粘贴历史记录?

标签 svn tortoisesvn

我们有一个历史悠久的文件 OLD_FILE ~ 100 次修订。

然后这个文件从存储库中删除。 并创建了内容为 OLD_FILE 的新文件 NEW_FILE。 不要问我 - 为什么文件不只是重命名 ;)

然后 NEW_FILE 被改变了 5 次。 然后使用 svn 将 NEW_FILE 重命名为 OLD_FILE。

现在,如果我们尝试查看 OLD_FILE 的历史记录 - 我们只会看到与 NEW_FILE 相关的最后 5 次修订。 但是我们没有看到第一个 OLD_FILE 的历史有很多修订。

是否可以修复存储库以查看 OLD_FILE(~100 个修订版)和 NEW_FILE(5 个修订版)的所有修订版? 我想使用命令查看所有这些修订 svn lof -q OLD_FILE

顺便说一句 当我尝试从 TortoiseSVN 调用“显示日志”时,我可以看到下一个对话框:


要下线吗?

连接服务器时出现问题。 您想查看缓存的数据吗?

请理解,由于历史记录不完整,缓存数据可能已过时、不完整甚至产生误导。

暂时离线。永久离线。不要下线


然后我可以看到第一个 OLD_FILE 的所有 100 个修订。

这是什么意思?

最佳答案

简短的回答是否定的。

但是如果 NEW_FILE 更改的日期、修订号和相对于其他更改的相对顺序并不重要,您可以:

恢复旧的修订历史:

svn rm OLD_FILE 
svn copy -r when_old_was_gone OLD_FILE OLD_FILE

svn diff填充新的文件历史记录对 NEW_FILE 的所有更改,apply the patchcommit .您必须分别对每个更改进行比较、修补和提交。

另一种解决方法是使用 tortoise svn 检索所有修订的日志并按路径过滤。将选择同一路径的所有更改。

关于svn - 是否可以在 SVN 中粘贴历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1790815/

相关文章:

svn - 将数据从 VSS 迁移到 SVN

svn - 离开办公室时的源代码控制

svn - pre-revprop-change 钩子(Hook)要么失败

tortoisesvn - 如何使用 TortoiseSVN 从修订版之间的差异创建补丁?

svn 将项目移动到不同的文件夹

php - 在从 SVN 部署期间维护开发环境和实时环境之间的配置差异

Git:如何 merge 多年来分歧很大的复杂分支

svn - 对于Subversion 1.5.6 和1.6.3 之间在易于合并方面的差异,大家有什么看法?

tortoisesvn - Tortoise checkin 错误 校验和不匹配

svn - 颠覆开关: How can I see which branch is current?