有没有类似于 Git 的性能还可以的基于 Vue 的文本对比工具?

2019-08-25 10:26:35 +08:00
 zhoudaiyu

需求是在提交前想对比当前文本和历史文本的差别( nginx 的配置文件 nginx.conf,大概以后能有一千多行吧),并把差别展示出来,就像 git commit 的时候那样。目前看有 code-diff ( https://github.com/ddchef/vue-code-diff) 和 codemirror ( https://codemirror.net/) 这两个,前者有人在 issues 里说到了大概到 2000 行的时候就会卡死;后者貌似挺老的了,不知道和 Vue 配合起来用有没有什么坑。大佬们有没有什么好的文本对比工具推荐?

7271 次点击
所在节点    Vue.js
22 条回复
Rheinmetal
2019-08-25 10:45:51 +08:00
git diff 不够用嘛?
hronro
2019-08-25 10:47:46 +08:00
系统内置的 diff 不行?
或者可以试试这个: https://github.com/so-fancy/diff-so-fancy
zhoudaiyu
2019-08-25 10:50:54 +08:00
@Rheinmetal
@hronro
感谢回复。是想把对比结果展示在页面里。
seki
2019-08-25 10:51:16 +08:00
monaco editor 有 diff 模式
luozic
2019-08-25 10:52:57 +08:00
对比结果展示在页面? code review 工具?
zhoudaiyu
2019-08-25 11:07:33 +08:00
@luozic 类似这种
arrow8899
2019-08-25 11:13:53 +08:00
diff2html 可以把 git diff 结果转换成 html 展示;或者是用 google-diff-match-patch 也有 js 版的
otakustay
2019-08-25 11:15:46 +08:00
我有个 react 版本的,性能和功能方面都基本完善了,mozilla 也在用,要不用 vuera 套一下用吧
https://github.com/otakustay/react-diff-view
arrow8899
2019-08-25 11:19:01 +08:00
顺便说下,文本 diff 本来就很耗 CPU,量大了自然就卡,所以一般是在后端 diff,然后交给前端渲染;
也可以直接用 bitbucket 等商业版的,用户较少时可以免费使用。
liangkang1436
2019-08-25 12:15:52 +08:00
idea 自带的 diff 不够用吗?
duan602728596
2019-08-25 12:46:37 +08:00
我还真就写过一个,是 react 版本的
Takamine
2019-08-25 13:55:42 +08:00
Beyond Compare。
JimmyTinsley
2019-08-25 14:12:27 +08:00
phabricator
zhoudaiyu
2019-08-25 14:40:21 +08:00
@Takamine
@liangkang1436
是要在前端展示对比结果的
XiaoxiaoPu
2019-08-25 16:00:23 +08:00
写一个后端服务专门用来做 diff 嘛,前端只用来展示。看下 github.com/ddchef/vue-code-diff 的源码就知道他其实是用 www.npmjs.com/package/diff 这个库生成 diff 结果,量大的话自然会卡,把这部分用后端实现就没问题了。
zhoudaiyu
2019-08-25 16:10:04 +08:00
@XiaoxiaoPu 后端实现的话,有啥好用的 pip 包吗
XiaoxiaoPu
2019-08-25 16:24:23 +08:00
@zhoudaiyu 后端是 python ?那直接用标准库 difflib 就行了
Heanes
2019-08-25 21:01:52 +08:00
我也有类似需求,Mark
weixiangzhe
2019-08-25 21:51:27 +08:00
color diff 吧
xy2401
2019-08-26 08:31:14 +08:00
vscode ( monaco ) 可以网页 上对比两个文本
[Monaco Editor]( https://microsoft.github.io/monaco-editor/)

Diff Editor
Side by side live comparison

Supports all languages out of the box

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/594870

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX