@ addcore/ commerce (中文(简体) )
纯线diffs, 三向合并块和冲突解决. 它没有使用文件系统,Git进程,编辑器或浏览器API.
bun add @adecore/merge
FSL-1.1-MIT许可,见 自由主义。 。 。 .
import { draftOf, joinLines, shapeOf, splitBlocks, splitLines } from '@adecore/merge';
const base = 'first\r\nold\r\n';
const ours = 'first\r\nours\r\n';
const theirs = 'first\r\ntheirs\r\n';
const blocks = splitBlocks(splitLines(base), splitLines(ours), splitLines(theirs));
const answers = new Map<number, readonly string[]>();
for (const [index, block] of blocks.entries()) {
if (block.kind === 'conflict') {
answers.set(index, ['combined']);
}
}
const text = joinLines(draftOf(blocks, answers).lines, shapeOf(ours));
例子中的答案代表了打电话者已经作出的决定。 一份草案在没有任何标记的情况下,为尚未找到答案的每一个冲突取用我们的,所以在保存之前分别检查未解决的冲突。 保留文本的形状,并检查输入仍然是您在写作前读取的版本. 授权,文件访问和拒绝 stale 答案是主机的.
读取 概览, (中文(简体) ), 线条和 diffs 财务报告和审定财务报表 三向合并。 。 。 .
从寄存器根运行 bun run --cwd packages/merge test, (中文(简体) ), typecheck 或者说 build。 。 。 . test:memory 自行运行,并检查2个大文件的diff是否保持在20 MB以下. 实例/解决冲突 是一个导入源的全部实例.