2017-02-10 16 views
0

は、それが機械可読形式(-z)でgit status出力を行いますが、現在のディレクトリ(-s)への相対パスをすることは可能ですか?Gitの状況

現在、-z -sのパスは、代わりにrepoルートに相対的な形式になっています。

答えて

1
git status -z | sed "s:\(^\|\x00\).. :\0$(git rev-parse --show-cdup):g" 

このコマンドは、ルートディレクトリへの相対パスを取得し、ステータス出力に注入します。その結果、パスは現在の作業ディレクトリからの相対パスになります。

免責事項:sedのすべてのバージョンでこのsedスクリプトが動作しない可能性があります。

+0

この 'sed'はFreeBSDでは動作しません(MacOSについてはわかりません)。私はsed regexは埋め込まれたNULで動作しないと思うが、他にも問題があるかもしれない。しかし、これは一般的に正しいアイデアです: '--show-cdup'の結果を使って事実を修正しなければなりません。 – torek

+0

@torek私はFreeBSDを利用できません。 FreeBSDでそれを正しく行う方法を教えてください。私はうれしく答えを更新します。 – Vampire

+0

私はもっと能力の高いフィルター、おそらくPerlを使用したいと思いますが(私は本当にPerlを嫌いですが:-))。あるいは、 'git status -z'で機械可読な出力をマシンで読み込んでいるところで... – torek