周五候机楼:补丁程序和差异

软件开发中两个必不可少的工具是PatchDiff。它们的工作原理并不神秘,但我认为这篇文章会很有趣。😉

两者都非常强大,就像触摸表面一样,它们具有更多的实用程序和其他功能。 基本上,使用这两个工具,我们可以创建版本控制,


变化

我们指的是比较,它将“原始”文件与“新”文件进行比较,并告知我们它们之间存在的差异。 该工具还允许我们创建.patch文件,用于为程序创建补丁。


打补丁

它是我们用来按字面意义“修补”原始文件的命令,根据.patch文件中包含的指令添加和/或删除行


此外,还有vimdiff,这是一个无需 .patch 文件即可应用补丁的可视化工具,因为它会比较“原始”版本和“新”版本,并允许你逐行编辑或在同一文件中编辑整个文档。我不会详细解释它,但我认为值得一提。


例子

现在的乐趣是。 例!

就是这种情况,我们有一个很棒的脚本,询问您的姓名和年龄,如果您年满18岁,它会告诉您可以投票,否则您就不能投票。

原始文件

#!/ bin / bash echo“输入您的名字:”读取名称echo“输入您的年龄:”如果[[18 -lt $ age]]读取年龄,则回显“ Hello $名称,您已经$岁,您可以投票! ” 否则,回显“ Hello $名称,您已经$岁,无法投票...” fi
Vim中代码的图像

Vim中代码的图像

完成,这是正在运行的脚本:

一切似乎都正常

一切似乎都正常

因此,作为我们的好用户,我们与朋友:)共享了脚本,但是我们收到一条消息,说它有缺陷,当年满18岁时,它说它不能投票。

逻辑错误:(

逻辑错误

现在我们开始纠正小错误并进行一些修改...

新的

#!/ bin / bash maxAge = 18 echo“输入您的名字:”; 读名字echo“写你的年龄:”; 如果[[$ maxAge -le $ age]],则读取年龄; 然后回显“ Hello $名称,您已经$岁,可以投票了!” 否则,回显“ Hello $名称,您已经$岁,您无法投票...” fi exit 0
用Vim编写的新代码

用Vim编写的新代码

假设脚本非常重。因此,为了避免再次发送整个脚本,我们创建一个 .patch 

$ diff -u original.sh new.sh> patch.patch

现在我们有了补丁。以下是Vim中的视图:

这就是.patch的说明。 白色的线条未修改,蓝色的线条已删除,橙色的线条已添加。

这就是.patch的说明。 白色的线条未修改,蓝色的线条已删除,橙色的线条已添加。

要应用此补丁,我们只需在要修补的脚本中使用 .patch 文件即可。这里它名为originalAmigo.sh,是original.sh脚本的完全相同的副本。

朋友脚本

朋友脚本

$ patch originalFriend.sh <patch.patch

这样,我们的原始Amigo.sh文件就变成了这样:

应用补丁后的朋友脚本

应用补丁后的朋友脚本

如您所见,获取差异并应用补丁非常容易。 都是我的

问候大家,我们将在下周五阅读。


在 Google 中将其添加为首选来源