• BB_C
    link
    fedilink
    arrow-up
    5
    ·
    5 days ago

    One can use custom viewers via core.pager and interactive.diffFilter in git configuration, not to mention defining custom difftools directly.

    I primarily use delta for this (sometimes packaged as git-delta), which itself is implemented in Rust too.

    For example, save this as a script called delta-s somewhere in $PATH:

    #!/bin/bash
    
    delta -s \
      --minus-style='syntax #400000' \
      --plus-style='syntax #004000' \
      --minus-emph-style='normal #a00000' \
      --plus-emph-style='normal #00a000' \
      --line-buffer-size=48 \
      --max-line-distance=0.8 $@
    

    Then, in ~/.gitconfig, add

    [difftool "d-sbs"]
      cmd = diff -u $LOCAL $REMOTE | delta-s
    

    And the you can just

    git difftool --tool d-sbs HEAD~
    

    You can further create an alias for that too of course.

    • EarMaster@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      5 days ago

      The script is linked and is only 33 lines long. The instructions are also written down later in the Readme.