【发布时间】:2014-07-14 21:51:00
【问题描述】:
我编写并维护了一个名为 reposurgeon 的开源工具,它可以编辑版本控制存储库历史记录,并可用于在 VCS 之间移动项目历史记录。最近我提供了对读取 Subversion 转储文件和 repos 的全面支持。但是有一件事 reposurgeon 还没有做得很好,那就是通过复制到 git 样式的 DAG 合并来翻译 Subversion 分支合并。
为了使这部分正确,我需要比我更好地理解 git fast-import 流中合并提交的语义。我的问题是关于合并提交后应该显示哪个版本的内容。
当然,合并提交后附加的文件修改使它们的内容在那里可见。我的问题是关于提交未触及的路径。
如果一个路径只有一个提交链上的内容,我认为内容应该是可见的。对吗?
如果一条路径在合并的多个祖先链中包含多个提交链中的内容,哪个版本将可见?
如果一个文件沿某些路径被删除到合并,什么规则预测它何时会在合并修订中被删除?
【问题讨论】:
标签: git git-fast-import