0
我需要包含一些以前不受版本控制的代码到已经包含一些提交的git存储库中。找到合适的父代提交未加入代码添加到现有的git存储库
我想自动化的是找到一个合适的“父”提交,其中的新代码将是一个孩子承诺。
经过一番测试,我认为git diff-tree
将最好的工作(因为只有一个文件夹包含相关的代码为“父母”测试)。
我的做法是这样的:
- 循环通过相关子树的所有现有的提交和提交的节点SHA1和SHA1
- 新的文件复制到存储库中,将它们添加到索引
- 注SHA1的相关子树
- 比较现有的相关子树与新候选者,并使用类似的东西的git diff-tree计算“相似度”
- 选择最多类似的现有子树,并使其成为新提交的父代,即检出新的父代(或
checkout --orphan
,如果找不到合适的父代),则清空工作目录并填写新文件并提交。
缺少的是一种计算相似度的方法!也许有人可以给我一个提示标志的组合将有所帮助...
代码看起来几乎像PASCAL如果这很重要。
我目前正在使用类似于你的建议:'git diff-tree -r -M80%-C80%--numstat'并提取添加/删除的行数。虽然它在某种程度上起作用,但我认为可能有更复杂的选择。 – Onur