• AbelianGrape@beehaw.org
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    6 months ago

    How does this compare with GumTree? It’s weird that the page doesn’t even mention existing state-of-the-art tools for this task.

    edit: I’ve compared GumTree and difftastic myself while working on a project this past week. Difftastic is harder to use programatically (the JSON format is unstable and leaves something to be desired) but other than that it’s miles and miles better.

  • astrsk@kbin.social
    link
    fedilink
    arrow-up
    3
    arrow-down
    4
    ·
    8 months ago

    I didn’t get a chance to look too deep into it, while it looks great for human reading in a terminal, can I just as easily output the diff to a patch file like I do often with ‘git diff [commit] [commit] > patch.txt and git apply it?

    • ranting_sandfish
      link
      fedilink
      arrow-up
      16
      ·
      8 months ago

      Doesn’t look like it, from their docs:

      Non-goals

      Patching. Difftastic output is intended for human consumption, and it does not generate patches that you can apply later. Use diff if you need a patch.

    • zygo_histo_morpheus@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      8 months ago

      Since the diffs are tree-sitter based, it’s interesting to think about what a tree-sitter based patch would look like. Probably wouldn’t double as a human and computer friendly format like normals diffs. I suppose that you could create patches that are more robust to the source code changing since it wouldn’t care about linebreaks and maybe you could have it so it doesn’t care if you move code around since you could have it so its going by e.g. what the parent function is and not the line number. I gotta wonder how useful that actually is though.