当我svn log <path>
时,它会显示该路径的历史记录,直到从另一条路径复制它为止。那时,它将开始向我展示原始路径的历史。
有没有办法获取特定路径的所有更改的历史记录,无论它是否是从其他地方复制的?我知道你可以通过--stop-on-copy
,但这会在复制之前切断所有历史记录,这正是我想要看到的。
我找到的唯一解决方法是首先执行svn log <path>
,查找复制它的修订版,然后执行svn log <path>@<revision - 2>
(假设原始文件在复制之前立即删除) 。然后重复以后的副本。但必须有一个更简单的方法。
这在以下几种情况下很有用:
有时你复制一个文件,不是因为你想分享它的历史,而是因为你想要它的内容。如果您将其复制到现有文件上,您仍可能希望保留现有文件的历史记录。
当您使用--reintegrate
从分支进行合并时,您have to delete分支,因为它将在未来的合并中中断。如果要重用相同的分支名称,则必须为其创建新副本。但您可能希望在重新复制之前查看分支中的内容。
如果这不可能,这不是一个很重要的遗漏吗?
答案 0 :(得分:0)
This question正在寻找我认为的类似数据。
没有原生的Subversion方法可以做到这一点,因为Subversion将文件而非路径视为要跟踪的事物。您在获取文件日志,停止复制,然后使用复制之前的挂钩修订等问题中描述的方法似乎是跟踪该路径历史记录的唯一方法。链接问题中的人通过脚本做了类似的事情。
Re:您的要点,如果您想在保留目标文件历史记录的同时将文件内容插入另一个文件,则应复制并粘贴到其中。