在 Mercurial 中拆分文件并保留双方的历史记录
Posted
技术标签:
【中文标题】在 Mercurial 中拆分文件并保留双方的历史记录【英文标题】:Splitting files in Mercurial and retaining history on both sides 【发布时间】:2010-11-11 15:32:19 【问题描述】:我需要拆分多个文件,我正在寻找将完整文件历史记录保留在拆分文件中的选项。
背景...
我继承了一个项目,其中包含许多 Oracle PL/SQL 包,包规范和包主体都存储在一个“.sql”文件中。我希望将包规范和包主体放在单独的文件中。
即
开头:myfile.sql
我想拆分这个文件,以便第一个位(包规范)进入:
myfile.pks
最后一点(包体)进入:
myfile.pkb
我对分离本身没有任何问题,但我想知道是否有人知道如何保留在myfile.pks
和myfile.pkb
中显示myfile.sql
的文件历史记录。
【问题讨论】:
【参考方案1】:分割文件可以通过hg rename
和hg copy
建模,保留历史记录:
hg copy myfile.sql myfile.pks
hg rename myfile.sql myfile.pkb
编辑 *.pks 和 *.pkb 文件以删除不属于那里的一半。
编辑后全部提交。
要查看副本和重命名,您必须使用 git 格式的差异:
hg diff -g
由于这非常有用,因此通常在 .hgrc
file 中通过添加以下内容将其设置为默认值:
[diff]
git=1
【讨论】:
【参考方案2】:IDE 让它变得更加简单。例如。在 IntelliJ 中选择文件并执行 Refactor
> Copy
。
【讨论】:
以上是关于在 Mercurial 中拆分文件并保留双方的历史记录的主要内容,如果未能解决你的问题,请参考以下文章
在 Mercurial 存储库历史记录中快速查找已删除的文件?