我想围绕git status
创建一个包装器,该包装器在两个单独的存储库中调用git status
并合并它们的输出。一个简单的脚本可以执行以下操作:
cd repo1
git status
cd repo2
git status
但是,我希望输出的路径相对于当前工作目录。实现此目标的最佳方法是什么?
一个想法是解析git status
输出并操纵相对于cwd的路径。这种方法的缺点是解析逻辑会非常复杂。
第二个想法是调用git status --porcelain
。这使解析更加容易。但是,从瓷器输出中重建标准git状态格式(“未暂缓提交的更改:”,“未跟踪的文件:”等)成为一个挑战。
第三个想法是尝试以某种方式欺骗git,也许是通过将.git
目录建立到cwd的软链接,对这些文件进行一些临时操作,以欺骗它以输出相对于cwd的路径,然后撤消这些操作。但这似乎很危险,我不确定它是否可行。
第四个想法是,如果git公开了一个API或一些源代码,以允许从瓷器输出构建标准输出格式,则可以利用它。但是我不知道那是否存在。