1 个不稳定版本

0.1.1 2020 年 8 月 8 日

#244#running

MIT 许可证

31KB
733

dirmux

Rust Build Status Badge

一次管理多个目录的目录复用程序。使用它,您可以对所有已标记的目录执行命令。

如果您有多个 Git 仓库并希望保持它们全部最新,或者需要对它们全部进行交叉更改,这将特别有用。

dirmux 命令可以在文件系统上的任何位置运行,因此无论何时您想查看 Git 仓库的状态或检查 TODO 列表,都很容易且快速。

动机示例

此命令将对所有已知目录运行 'git fetch --all' 命令

$ dirmux git fetch --all

输出将类似于这样(但带有颜色)

~/projects/blog:
Fetching origin
~/notes:
Fetching origin

如上所示,它捕获并打印每个命令的输出,并将其打印在目录条目旁边。如果输出为 ,则将省略整个目录。

这是一个内置命令,将打印每个目录的简短内容,每行一条,总结标记为 'work' 的 Git 仓库

$ dirmux -t work status

这将提供类似于以下内容的输出

   ~/projects/dirmux 1M           main
     ~/projects/blog 1M 3?        main
          ~/dotfiles 1M           nvim_lsp2
             ~/notes 1?           main

如果分支未更改,且 Git 索引或工作集中没有修改的文件,则将省略打印目录。

其他可能值得尝试的示例

$ dirmux -t home rg TODO   # Finding something to do in my home projects
$ dirmux -t autosync git commit -am "Auto-sync" # Or equivalent script to also push...

为什么还需要另一个多 Git/多目录工具?

我已经长时间使用 gr,它始终在某些方面困扰着我。如果您在 100 个目录上操作,它相当慢,并且不并行执行命令,输出也相当冗长。对我来说,标签的使用不太直观(我已经在标签名称中包含了 '@',并多次让自己困惑)。这导致我以 Rust 作为有趣的雨天隔离项目再次构建这个工具。

依赖项

~17MB
~356K SLoC