0
は、それが機械可読形式(-z
)でgit status
出力を行いますが、現在のディレクトリ(-s
)への相対パスをすることは可能ですか?Gitの状況
現在、-z -s
のパスは、代わりにrepoルートに相対的な形式になっています。
は、それが機械可読形式(-z
)でgit status
出力を行いますが、現在のディレクトリ(-s
)への相対パスをすることは可能ですか?Gitの状況
現在、-z -s
のパスは、代わりにrepoルートに相対的な形式になっています。
git status -z | sed "s:\(^\|\x00\).. :\0$(git rev-parse --show-cdup):g"
このコマンドは、ルートディレクトリへの相対パスを取得し、ステータス出力に注入します。その結果、パスは現在の作業ディレクトリからの相対パスになります。
免責事項:sed
のすべてのバージョンでこのsed
スクリプトが動作しない可能性があります。
この 'sed'はFreeBSDでは動作しません(MacOSについてはわかりません)。私はsed regexは埋め込まれたNULで動作しないと思うが、他にも問題があるかもしれない。しかし、これは一般的に正しいアイデアです: '--show-cdup'の結果を使って事実を修正しなければなりません。 – torek
@torek私はFreeBSDを利用できません。 FreeBSDでそれを正しく行う方法を教えてください。私はうれしく答えを更新します。 – Vampire
私はもっと能力の高いフィルター、おそらくPerlを使用したいと思いますが(私は本当にPerlを嫌いですが:-))。あるいは、 'git status -z'で機械可読な出力をマシンで読み込んでいるところで... – torek