如何为新文件创建补丁?

18

我知道为现有文件创建补丁很容易:

diff -aru oldFile newFile 2>&1 | tee myPatch.patch

但是,如果我想为全新的文件创建补丁怎么办?假设我的文件位于名为 TestDir 的文件夹中。以前,TestDir 中没有名为 entirelyNewfile.c 的文件,但现在它有了。

如何为 entirelyNewfile.c 创建补丁?这样,补丁应该能够正确地应用到规格并生成 RPM 构建。使得 BUILD 目录包含此新文件。

只需补充一点:如果我尝试在两个目录之间进行差异比较,其中一个具有新文件,而另一个不具备,则会生成错误,指出该文件仅存在于一个文件夹中

3个回答

18

diff 参数中添加 -N


非常感谢。但是如何编辑这些文件呢?--- Olddir/testUsecase2.cc 1970-01-01 05:30:00.000000000 +0530 +++ NewDir/testUsecase2.cc 2011-04-11 20:39:56.000000000 +0530 - RajSanpui
如果这些格式不正确,通常会在RPM构建过程中留下拒绝文件。 - RajSanpui

5
diff /dev/null <newfile>

将为您的新文件创建补丁。

2

我所知道的最简单方法是将所有文件纳入版本控制(如果它们还没有被纳入)。我更喜欢使用Git,但在任何其他版本控制系统中都可以做类似的事情:

git init
git add .
git commit -m "initial state"
<do your edits here>
git add .
git commit -m "new state"
git diff HEAD^1

但是你将如何从那里创建RPM构建?RPM构建需要将单个补丁添加到SPEC文件中。 - RajSanpui
“git diff” 步骤将生成一个补丁,可以保存到文件中,然后将其作为源添加到您的 RPM .spec 文件中。 - jcollie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接