#git-repository #git-diff #across #team #daily #repos #command

bin+lib dyd

用于每天对 git 仓库进行差异比较的 CLI 工具

7 个版本 (1 个稳定版)

1.7.0 2023 年 7 月 31 日
0.5.0 2022 年 8 月 16 日
0.4.0 2022 年 8 月 11 日
0.3.0 2022 年 5 月 6 日
0.1.1 2022 年 4 月 29 日

命令行工具 中排名 #1368

MIT 许可证

61KB
1.5K SLoC

DYD

CI Hex pm License

每日差异。

此命令行工具可以方便地查看多个项目、多个天之间的 git 差异。查看你在团队中做了什么,以及你的团队管理的所有 git 仓库。

安装

通过 homebrew

brew tap synchronal/tap
brew install dyd

通过 cargo

cargo install dyd

使用 GUI 工具配置 git 的差异工具

[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

用法

dyd.toml 文件中创建一个清单文件,格式如下

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

## difftool = "my diff tool"
difftool = "git"     # Uses the configured default GUI difftool.
difftool = "github"  # Uses the `open` command to open a diff in the GitHub site.
difftool = "git difftool --dir-diff --tool=intellij -y ${DIFF}" # Arbitrary commands may be set.

[remotes]

[remotes.dyd]
name = "DYD"
origin = "[email protected]:synchronal/dyd"

[remotes.tui]
name = "TUI"
origin = "[email protected]:fdehau/tui-rs"

[remotes.tui]
name = "TUI"
origin = "[email protected]:fdehau/tui-rs"
  • since - 必须是格式 <N> <units> ago。默认为 1 周前
  • difftool - 打开差异的可选命令。默认为 git difftool -g -y ${DIFF}.
    • 将被插入到命令中并在 difftool 环境中可用的变量。 重要:只有格式为 ${VAR}(包括大括号)的变量将被替换。
      • DIFF - 格式为 @{u}..HEAD
      • DYD_PWD - 运行 dyd 的工作目录。
      • ORIGIN - 用于检出仓库的源,即 git@github.com:<org>/<repo>(.git)?
      • REF_FROM - 差异中早期提交的 sha。
      • REF_TO - 差异中较新提交的 sha。 HEAD
  • remotes - 要克隆和拉取的远程仓库列表。
    • name - 在 UI 中显示的文本。
    • origin - 从中拉取的 git 源。
    • branch - 一个可选的分支,用于显示差异。取决于是否可以通过 origin/{branch} 查看日志。

确保您的 shell 已获得 origin 的授权。DYD 不会将输入路由到 SSH 代理。

ssh-add ~/.ssh/id_ed25519

打开差异工具

dyd -m dyd.toml
dyd --manifest dyd.toml
DYD_MANIFEST_PATH="dyd.toml" dyd diff

键盘映射

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

其他差异工具

GitHub(浏览器)

当清单中的所有仓库的源都在 GitHub 上时,dyd 可以配置为在系统默认浏览器中打开差异。

添加到您的 dyd.toml 清单文件

difftool = "github"

IntelliJ IDEA

(您可以免费下载 IntelliJ IDEA Community Edition,它具有相当不错的图形差异工具。[下载链接](https://www.jetbrains.com/idea/download/#section=mac))

添加到您的 ~/.gitconfig 文件

[diff]
	tool = intellij
	guitool = intellij
[difftool "intellij"]
	cmd = open -nWa 'IntelliJ IDEA CE.app' --args diff $(realpath "$LOCAL") $(realpath "$REMOTE")
[difftool]
	prompt=false

添加到您的 dyd.toml 清单文件

difftool = "git difftool --dir-diff --tool=intellij -y ${DIFF}"

其他

  • gitx
  • kdiff3
  • ???

参考文献

依赖关系

~8–19MB
~236K SLoC