V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhoudaiyu
V2EX  ›  Vue.js

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

  •  
  •   zhoudaiyu · 2019-08-25 10:26:35 +08:00 · 7258 次点击
    这是一个创建于 1696 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    22 条回复    2019-08-26 09:22:26 +08:00
    Rheinmetal
        1
    Rheinmetal  
       2019-08-25 10:45:51 +08:00
    git diff 不够用嘛?
    hronro
        2
    hronro  
       2019-08-25 10:47:46 +08:00
    系统内置的 diff 不行?
    或者可以试试这个: https://github.com/so-fancy/diff-so-fancy
    zhoudaiyu
        3
    zhoudaiyu  
    OP
       2019-08-25 10:50:54 +08:00
    @Rheinmetal
    @hronro
    感谢回复。是想把对比结果展示在页面里。
    seki
        4
    seki  
       2019-08-25 10:51:16 +08:00
    monaco editor 有 diff 模式
    luozic
        5
    luozic  
       2019-08-25 10:52:57 +08:00 via iPhone
    对比结果展示在页面? code review 工具?
    zhoudaiyu
        6
    zhoudaiyu  
    OP
       2019-08-25 11:07:33 +08:00
    @luozic 类似这种
    arrow8899
        7
    arrow8899  
       2019-08-25 11:13:53 +08:00
    diff2html 可以把 git diff 结果转换成 html 展示;或者是用 google-diff-match-patch 也有 js 版的
    otakustay
        8
    otakustay  
       2019-08-25 11:15:46 +08:00
    我有个 react 版本的,性能和功能方面都基本完善了,mozilla 也在用,要不用 vuera 套一下用吧
    https://github.com/otakustay/react-diff-view
    arrow8899
        9
    arrow8899  
       2019-08-25 11:19:01 +08:00
    顺便说下,文本 diff 本来就很耗 CPU,量大了自然就卡,所以一般是在后端 diff,然后交给前端渲染;
    也可以直接用 bitbucket 等商业版的,用户较少时可以免费使用。
    liangkang1436
        10
    liangkang1436  
       2019-08-25 12:15:52 +08:00 via Android
    idea 自带的 diff 不够用吗?
    duan602728596
        11
    duan602728596  
       2019-08-25 12:46:37 +08:00 via iPhone
    我还真就写过一个,是 react 版本的
    Takamine
        12
    Takamine  
       2019-08-25 13:55:42 +08:00
    Beyond Compare。
    JimmyTinsley
        13
    JimmyTinsley  
       2019-08-25 14:12:27 +08:00
    phabricator
    zhoudaiyu
        14
    zhoudaiyu  
    OP
       2019-08-25 14:40:21 +08:00
    @Takamine
    @liangkang1436
    是要在前端展示对比结果的
    XiaoxiaoPu
        15
    XiaoxiaoPu  
       2019-08-25 16:00:23 +08:00
    写一个后端服务专门用来做 diff 嘛,前端只用来展示。看下 github.com/ddchef/vue-code-diff 的源码就知道他其实是用 www.npmjs.com/package/diff 这个库生成 diff 结果,量大的话自然会卡,把这部分用后端实现就没问题了。
    zhoudaiyu
        16
    zhoudaiyu  
    OP
       2019-08-25 16:10:04 +08:00
    @XiaoxiaoPu 后端实现的话,有啥好用的 pip 包吗
    XiaoxiaoPu
        17
    XiaoxiaoPu  
       2019-08-25 16:24:23 +08:00   ❤️ 1
    @zhoudaiyu 后端是 python ?那直接用标准库 difflib 就行了
    Heanes
        18
    Heanes  
       2019-08-25 21:01:52 +08:00
    我也有类似需求,Mark
    weixiangzhe
        19
    weixiangzhe  
       2019-08-25 21:51:27 +08:00 via iPhone
    color diff 吧
    xy2401
        20
    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
    zhjie
        21
    zhjie  
       2019-08-26 09:21:43 +08:00
    战略性马克
    zhjie
        22
    zhjie  
       2019-08-26 09:22:26 +08:00
    回了才记起有加入收藏...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3100 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 14:50 · PVG 22:50 · LAX 07:50 · JFK 10:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.