我处在一种情况,我希望在我自己的项目中包含一个git项目作为子模块,但是也想使用补丁文件应用一些补丁。我还想使用作为配置过程一部分的快速设置脚本自动应用这些补丁文件。
是否有"标准"这样做的方法?我已经生成了补丁文件但是应用它们似乎相当复杂。我希望有一个包含我所有补丁文件的中心目录,也许像patch -R
这样的应用程序。从一段时间的测试来看,补丁似乎并不是那么有效,而且需要移动目录来应用补丁。
是否有更简单的方法可以执行此操作,还是我错误地使用patch
?假设我有以下目录结构:
root
├── libs
│ └── submodule1
├── patches
├── example1.patch
└── example1.patch
如何生成补丁文件,以便可以从patch -R patches/*
目录运行像root
这样的简单命令?假设我在某处修改了代码submodule1_modified
,我可以运行补丁来生成补丁文件。
我尝试过这么多种不同的方式,但是当我尝试应用错误时,总是会报告错误can't find file to patch at input line 4
。我能够让它工作的唯一方法是先将cd
添加到修改后的树的根目录并在那里应用。
答案 0 :(得分:0)
您没有指定如何生成修补程序文件以及标题中的路径,但最简单的解决方案是按项目拆分修补程序,并使用libs/submoduleN
将它们应用到正确的目录中。< / p>
如果要将所有补丁保持在一起,则需要重写其标题以包含"diskState": "Unattached"
,或者只是首先从根目录生成差异。
当然我假设您从项目的根目录进行修补。