dyd 0.2.0

CLI for daily diffing of git repos
Documentation

DYD

CI Hex pm License

Daily diff.

This command line tool facilitates the viewing of git diffs across multiple projects, across multiple days. See what you're doing across teams, and across all the git repos your teams manage.

Installation

cargo install dyd

Configure git with a GUI difftool:

[diff]
  tool = Kaleidoscope
  guitool = Kaleidoscope
[difftool]
  prompt = false
[difftool "Kaleidoscope"]
  cmd = ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\"
[mergetool "Kaleidoscope"]
  cmd = ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot
  trustExitCode = true

Usage

Create a manifest file at dyd.toml with the following format:

since = "3 days ago"
#       "  ^^^^ days | weeks | months

## difftool = "my diff tool"

[remotes]

[remotes.dyd]
name = "DYD"
origin = "git@github.com:synchronal/dyd"

[remotes.tui]
name = "TUI"
origin = "git@github.com:fdehau/tui-rs"

Ensure that your shell is authorized with the origin. DYD will not route input to the SSH agent.

ssh-add ~/.ssh/id_ed25519

Open the diff tool:

dyd -m dyd.toml
dyd --manifest dyd.toml

Keymap:

h l <left> <right> <tab> - switch panes
j k <up> <down> - change current selection
d - open git gui difftool
q <esc> - quit

Other difftools

IntelliJ IDEA:

[diff]
  guitool = intellij
[difftool "intellij"]
  cmd = /Applications/IntelliJ\\ IDEA\\ CE.app/Contents/MacOS/idea diff $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE")

Manifest:

difftool = "git difftool --dir-diff -g -y"

TODO:

  • gitx
  • kdiff3
  • ???

References