英语法语西班牙语

Ad


OnWorks 网站图标

Wiggle - 在云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 Wiggle

这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 wiggle,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


摆动 - 应用被拒绝的补丁并执行逐字差异

概要


蠕动 [功能] [选项] 文件 [文件]

商品描述


主要功能 蠕动 是将补丁应用到文件中的方式与
补丁(1) 程序。

与众不同的区别 蠕动 是它会尝试应用补丁,即使
补丁的“之前”部分与目标文件不完全匹配。 这是通过
将文件和补丁分解成单词并找到文件中单词的最佳对齐方式
补丁中的文字。 一旦找到这种对齐方式,任何差异(逐字)
在补丁中尽可能地应用到文件中。

也, 蠕动 将(在某些情况下)检测已应用的更改,并将
别理他们。

蠕动 确保补丁中的每个更改都以某种方式应用于目标文件。 如果一个
不能在文件中进行特定的更改,文件被注释以显示在哪里
应该以类似的方式进行更改 合并(1) 程序与 -A 选项。 每个
注释包含 3 个组件:原始文件的一部分,其中应进行更改
被应用,无法在文件中精确匹配的补丁的一部分,以及
应该替换补丁的那部分的文本。 这些由线分隔
恰好包含 7 个相同的字符,可能是“<”、“|”、“=”或“>”
后面跟着一个描述性的词。 所以
<<<<<<<找到
原始文件的某些部分
||||||| 预期的
要替换的文本
=======
替换它的文本
>>>>>>> 更换
表示“要替换的文本”应该在某处替换为“要替换的文本”
在原始文件的部分。 然而 蠕动 找不到地方做
这种变化。

蠕动 也可以产生冲突报告,只显示所涉及的词,而不是
而不是显示整行。 在这种情况下,输出如下所示:
<<<---原版|||旧===新版--->>>

一种可能的用法 蠕动 是跑 补丁 应用一些补丁,并收集一个列表
通过监视补丁中的错误消息来拒绝。 然后对于每个文件
发现拒绝,运行
摆动 --replace originalfile originalfile.rej

最后,必须检查每个文件以解决任何未解决的冲突,并确保
应用的补丁在语义上是正确的。

或者,可以将原始补丁文件提供给 浏览 模式为
摆动 -B < 补丁文件

这将允许检查并在一定程度上修改更改和冲突;
然后可以保存结果。

配置
以下选项被理解 蠕动. 其中一些解释在更多
在以下有关 MERGE、DIFF、EXTRACT 和 BROWSE 的部分中详细说明。

-m, - 合并
选择“合并”功能。 这是默认功能。

-d, --差异
选择“差异”功能。 这将显示文件之间的差异。 这个可以
之后给予 - 浏览 (见下文)在这种情况下,两个文件的补丁或差异可以
在没有原件的情况下观看。

-x, - 提炼
选择“提取”功能。 这会提取补丁或合并文件的一个分支。

-B, - 浏览
选择“浏览”功能。 这类似于“合并”(或“差异”),只是带有
不同的介绍。 而不是简单地将结果发送到标准
输出,它使用基于 ncurses 的 GUI 呈现,以便补丁的每个大块
可以检查以了解所涉及的冲突以及需要解决的冲突
按照补丁摆动到位的顺序忽略。

-w, - 字
要求所有操作和显示都基于单词。 这是默认的
“差异”功能。

-l, --行
要求所有操作和显示都基于行。

-b, --忽略空白
去强调空白(空格、制表符和换行符)正在确定差异和
的变化。

通常,空格被视为一个单词,可以通过匹配或更改
修补。 当此标志生效时,空格仅用作之间的分隔符
换句话说,与本身不匹配。 这样做的效果是改变
空白的数量不被视为重要的。

准确地说,任何空格都与前面的单词组合在一起,或者,在这种情况下
一行的前导空格,带有以下单词。 然而它不参与
该词的任何比较。 如果补丁删除了一个单词,附加的空格
也被删除。 如果补丁添加了一个单词,则附加的空格被添加为
井。

空行或仅包含空格的行将被视为单个单词
它将匹配任何其他空行,无论它有多少空格。

-b 没有影响 - 线 模式。

-p, - 修补
将最后命名的文件视为补丁而不是文件(使用 --diff)或合并
( - 提炼)。 在 合并 or 浏览 模式, -p 要求只有一个文件
是一个补丁,可以包含多个文件的补丁。 补丁已合并
进入每个文件。 当用于 合并 模式,这种用法需要 - 代替 选项
因为将大量合并文件写入标准输出是不切实际的。

处理多文件补丁时, -p 可以跟一个数字参数
指示应该从在
补丁文件。 如果没有给出数字参数, 蠕动 会推导出一个合适的
编号基于文件系统中存在的文件。

-r, - 代替
通常合并的输出被写入标准输出。 和 - 代替是,
原始文件被合并输出替换。 在 浏览 模式,这指示
蠕动 退出时始终保存结果合并。

-o, --输出=
而不是将结果写入 stdout 或替换原始文件,这
请求将输出写入给定文件。 这才有意义
- 合并 or - 浏览 当给定单个合并浏览时。

此选项覆盖 -r.

-R, - 逆转
当与 差异 函数,在计算之前交换文件
差异。 当与 合并 or 浏览 功能, 蠕动 尝试去
还原更改而不是应用它们。

-i, --不忽略
通常来说,wiggle 会忽略补丁中似乎已经被修改过的变化。
应用在原文中。 使用此标志,这些更改将报告为冲突
而不是被忽视。

-W, --显示摆动
当与 - 合并,可以摆动到位的冲突报告为
与一个额外的节冲突,该节显示了如果这个标志的结果会是什么
没有被使用。 额外的节是用一行包含 7
&符号(&) 字符,因此:
<<<<<<<找到
原始文件的某些部分
||||||| 预期的
要替换的文本
=======
替换它的文本
&&&&&&& 解析度
成功摆动会产生的文本
>>>>>>> 更换

--报告摆动
如果合并成功应用所有更改,它通常会退出
成功状态 (0),仅在发生冲突时报告失败 (1)
注释。 和 --报告摆动 蠕动 如果有任何更改,也会报告失败
必须摆动。这在以下情况下很有用 蠕动 用于自动合并
就像 混帐. 如果发生任何摆动, 混帐 将报告失败,结果
可以检查以确认它们是可以接受的。

-h, - 帮帮我
打印简单的帮助信息。 如果在功能选择器之一之后给出
(- 合并, --差异, - 提炼, - 浏览) 显示特定于该功能的帮助。

-V, - 版
显示版本号 蠕动.

-v, --详细
启用详细模式。 目前这没有区别。

-q, - 安静的
启用安静模式。 这会抑制来自合并功能的消息
是无法解决的冲突。


蠕动 可以在执行任务时将文本分成行或词。 一条线很简单
以换行符结尾的字符串。 一个词要么是最大连续的
一串字母数字(包括下划线)、一个最大连续的空格串或
制表符或任何其他单个字符。

合并
合并功能通过查找其他两个文本之间的所有更改来修改给定文本
并将这些更改强加给给定的文本。

通常情况下 蠕动 重点关注哪些词发生了变化,以最大限度地提高
在给定文本中为给定更改的上下文找到一个很好的匹配。 然而它可以
只考虑整行。

蠕动 从命令行上列出的文件中提取它需要的三个文本。
可以列出 1、2 或 3 个文件,其中任何一个文件都可以是一个单独的连字符,表示
标准输入。

如果给出一个文件并且 -p 选项不存在,文件被视为 合并
文件,即“merge -A”或“wiggle”的输出。 这样的文件隐含地包含三个
流,这些被提取和比较。

如果给出两个文件,则第一个只包含主要文本,第二个是
视为补丁文件(“diff -u”或“diff -c”的输出,或来自
补丁) 和其他两个文本是从中提取的。

如果一个文件与 -p 选项,该文件被视为补丁文件
包含它修补的文件的名称。 在这种情况下,多个合并操作
可能发生,每个从补丁中命名的文件中获取一个流,另外两个
从补丁本身。 这 - 代替 选项是必需的,结果被写回
到目标文件。

最后,如果列出了三个文件,它们将被视为包含给定的文本和两个
其他文本,按顺序。

通常合并的结果被写入标准输出。 如果 -r 给了旗子,
输出被写入一个替换原始给定文件的文件。 在这种情况下
原始文件被重命名为 .porig 后缀(对于“补丁原件”,这是有道理的
如果你第一次使用 补丁 应用补丁,然后使用 蠕动 摆动拒绝)。

进一步如果 -o 选项带有文件名,输出将写入该文件名
文件。 在这种情况下,不会创建备份。

如果没有发生错误(例如文件访问错误) 蠕动 如果全部退出,状态为 0
更改已成功合并,退出状态为 1,如果有,则显示一条简短消息
更改无法完全合并,而是作为注释插入。 但是如果
--报告摆动 or --显示摆动 给出了选项, 蠕动 也将与
状态 1 如果任何更改必须摆动,即使这是成功的。

合并功能可以在三种不同的行或字模式下运行。

随着 --行 选项,比较整行,并报告所有冲突
需要更换的线路。

随着 - 字 选项,比较单个单词并报告任何冲突
覆盖受影响的词。 这使用 <<<|||===>>> 冲突格式。

如果没有这些选项中的任何一个,就会采用混合方法。 个别词是
比较和合并,但当发现冲突时,报告整个周围的行
作为冲突。

蠕动 将确保其他两个文本之间的每一个变化都反映在
以某种方式合并的结果。 有四种不同的方式可以改变
反映。

1 如果更改转换 ABA 在原始的合适的地方找到
文件,它被替换为 B. 这包括以下可能性 B 是空的,但是
不是那个 A 是空的。

2 如果发现一个变化,它只是简单地增加 B 以及紧接在和之前的文本
插入后发现在原始文件中相邻的一个合适的
地方,然后 B 插入这些相邻的文本之间。

3 如果发现一个变化是哪个变化 AB 这似乎(基于上下文)
对齐 B 在原文中,则假定此更改已经
应用,并忽略更改。 发生这种情况时,会显示一条反映
被忽略的更改数量由 蠕动. 这个优化可以
被压制 -i 旗。

4 如果发现不符合上述任何一种可能性的变化,则
如前所述报告冲突。

DIFF
提供 diff 函数主要是为了允许检查对齐 蠕动
在文本之间计算并用于执行合并。

diff 函数的输出类似于 diff 的统一输出。 然而同时
diff 不会输出很长的普通文本, 蠕动的 diff 模式输出一切。

在计算基于单词的对齐方式(默认)时, 蠕动 可能需要显示这些词-
基于差异。 这是使用统一差异格式的扩展完成的。 如果一条线
以竖线开头,然后它可能包含被特殊多重包围的部分
字符括号。 括号“<<<++”和“++>>>”将添加的文本括起来,而“<<<--”
和“-->>>”环绕已删除的文本。

蠕动 可以给两个文本以三种方式之一进行比较。

如果只给出一个文件,那么它被视为一个补丁,它的两个分支
补丁进行比较。 这有效地允许从基于行的补丁中细化补丁
到基于单词的补丁。

如果给出两个文件,则通常假定它们是要比较的简单文本。

如果两个文件与 --patch 选项一起给出,那么第二个文件被假定为
是一个补丁,提取第一个(带 -1)或第二个(带 -2)分支并
与在第一个文件中找到的文本进行比较。

最后一个选项导致 蠕动 应用“最适合”算法来对齐补丁块
在计算差异之前使用文件。 该算法用于合并一个
用一个文件patch,通过比较这种方式产生的差异可以看出它的值
首先将补丁的一个分支提取到文件中产生的差异,以及
然后计算该文件与主文件的差异。

提取
提取函数 蠕动 简单地公开用于提取的内部功能
补丁或合并文件的一个分支。

应该给出一个文件,除非它被假定为一个合并文件
- 修补 给出,在这种情况下假设补丁。

通过提供其中之一来选择分支 -1, -2-3 具有明显的意义。

浏览
的浏览功能 蠕动 显示合并的结果或(与 -d) 一个差异
基于文本的 GUI,可以使用类似于 vi(1)或 emacs的(1)。

浏览器允许单独查看两个或三个流中的每一个
用于突出显示不同类型文本的颜色 - 添加的文本为绿色,删除的文本为红色
文本等。它还可以显示补丁本身,合并的完整结果,或
合并和补丁并排。

浏览器提供了许多上下文相关的帮助页面,可以通过
输入“?”

GUI的右上角会报告光标下的文本类型,也就是
由文本颜色表示。 选项是不变的,改变的,不匹配的,
无关的、已经应用的和冲突的。 如果这些的意思清楚一点
实验应该会有所帮助。

允许进行有限数量的编辑 浏览 模式。 目前的文字是
不需要的可以丢弃 x. 这会将冲突或更改转换为未更改,
和 Unmatched to Changed (有效地将其更改为空字符串)。 相似地
文本可以标记为想要的 c. 这会将 Conflict 或 Extraneous 转换为
改变了。 再次使用相同的键将恢复更改。

最后,大写 X 将恢复当前行上的所有更改。

要进行更彻底的更改,您可以使用 v 运行编辑器,更喜欢 $ VISUAL or
$编辑器 如果它们设置在环境中。

如果您进行了任何更改,那么 wiggle 会询问您是否要保存更改,即使
- 代替 没有给。

警告


在应用被拒绝的补丁时应始终小心谨慎 蠕动。 何时 补丁
拒绝补丁,它这样做是有充分理由的。 虽然 蠕动 也许能找到一个
应用每个文本更改的可信位置,不能保证结果是
在任何语义意义上都是正确的。 应始终检查结果以确保它是
纠正。

示例


蠕动 - 代替 文件 文件.rej
这是正常的用法 蠕动 并将采取任何改变 文件.rej补丁 可以
不适用,并将它们合并为 文件.

蠕动 -dp1 文件 文件.rej
这将在 文件before 的分支
差异 文件.rej 并显示差异。 这允许您查看给定补丁的位置
将适用。

蠕动 - 合并 - 帮帮我
获取有关合并功能的帮助 蠕动.

蠕动 - 浏览 - 修补 更新补丁
解析 更新补丁 修补程序文件并显示可修补的文件列表
浏览以详细检查每个补丁。

蠕动 可以与 混帐 以便将其用作默认合并工具和差异
工具。 这可以通过添加以下行来实现 .gitconfig 在用户家中
目录。
[合并“摆动”]
name = "Wiggle 灵活合并"
驱动程序 = 摆动 -o %A %A %O %B
递归=二进制
[合并]
工具 = 摆动
[合并工具“摆动”]
cmd = 摆动 -B -o $MERGED $LOCAL $BASE $REMOTE
[difftool“摆动”]
cmd = 摆动 -Bd $LOCAL $REMOTE
这将使 混帐 合并工具混帐 差异工具 使用 蠕动.

如果你想 混帐 总是使用 蠕动 对于合并(这可能很危险),您可以添加
* 合并=摆动
到适当的 git 属性 文件如 $HOME/.config/git/属性.

引用


的名字 蠕动 受到以下引用的启发。

我发现的问题是我经常想拿
(file1+patch) -> file2,
当我没有 file1 时。 但是合并工具要拿
(file1|file2) -> 文件 3。
我还没有看到可以帮助您摆动补丁的图形工具
成一个文件。
——安德鲁·莫顿——2002

缺点


- 蠕动 无法读取它为 --diff 生成的扩展统一差异输出
- 字。

- 蠕动 无法读取它为 --merge 生成的基于单词的合并格式
- 字。

- 蠕动 不理解 unicode,因此会大量处理所有非 ASCII 字符
与对待标点符号相同 - 它将每个标点符号视为一个单独的词。 这
浏览器将无法正确显示非 ASCII 字符。

使用 onworks.net 服务在线使用 Wiggle


免费服务器和工作站

下载 Windows 和 Linux 应用程序

  • 1
    ZABBIX
    ZABBIX
    Zabbix 是企业级开放
    源分布式监控解决方案
    旨在监控和跟踪
    网络的性能和可用性
    服务器、设备...
    下载 Zabbix
  • 2
    KDiff3
    KDiff3
    此存储库不再维护
    并用于存档目的。 看
    https://invent.kde.org/sdk/kdiff3 for
    最新的代码和
    https://download.kde.o...
    下载 KDiff3
  • 3
    USB加载器GX
    USB加载器GX
    USBLoaderGX 是一个 GUI
    Waninkoko 的 USB Loader,基于
    libwiigui。 它允许上市和
    推出 Wii 游戏、Gamecube 游戏和
    Wii 和 WiiU 上的自制软件...
    下载 USBLoaderGX
  • 4
    火鸟
    火鸟
    Firebird RDBMS 提供 ANSI SQL 特性
    & 在 Linux、Windows 上运行 &
    几个 Unix 平台。 特征
    出色的并发性和性能
    & 力量...
    下载火鸟
  • 5
    KompoZer首
    KompoZer首
    KompoZer 是一个所见即所得的 HTML 编辑器,使用
    Mozilla Composer 代码库。 作为
    Nvu 的开发已停止
    2005 年,KompoZer 修复了许多错误和
    增加了一个...
    下载 KompoZer
  • 6
    免费漫画下载器
    免费漫画下载器
    免费漫画下载器 (FMD) 是一个
    编写的开源应用程序
    Object-Pascal 用于管理和
    从各种网站下载漫画。
    这是一个镜...
    下载免费漫画下载器
  • 更多 ”

Linux 命令

Ad