2017-01-17 10 views
0

インポートしたリポジトリの.gitconfigファイルに、次のGITフィルタが定義されています。GITフィルタの相対ディレクトリ?

[filter "csprojarrange"] 
    clean = CsProjArrange 

CsProjArrange.exeがリポジトリのルートディレクトリにチェックインされている場合CsProjArrange.exeは私のPATHの一部であり、そうでない場合しかし、それだけで動作します。

GITフィルタを相対ディレクトリで動作させることは可能ですか?

+0

これはセキュリティ上の悪夢です。想像してみましょう:リポジトリXを複製します。それは汚れフィルタFを指定します。Fにはキーストロークロガーを設定するコマンドが含まれています。 3週間後、あなたのシステムは完全にpwnされます。 (今、あなたはあなたのパスに '.'を入れることができますが、これはセキュリティ上の悪夢です...) – torek

+0

' .'を私のパスに入れるのは実際には効果がありますか?これは私と他のいくつかの人のためだけの私的なリポジトリです。 –

+0

'。/ Tools/CsProjArrange.exe'を試しましたが、うまくいかないようです。 –

答えて

1

私がコメントで言ったように、Gitがこれをしない重要な理由の1つは、セキュリティ上の大きなリスクであるということです。

今日のツールとテクノロジを使用して、リスクを軽減する明白な方法は、そのフィルタに有効なdigital signature(PGP/GPGシグネチャがある場合、すなわち.gitattributesファイル一方helper-check-git-signatureあなたはGitリポジトリおよび任意のリポジトリから独立してインストールしなければならないプログラムになり

[filter "csprojarrange"] 
    clean = helper-check-git-signature CsProjArrange 

または類似の、しかし、あなたは今まで、一度にそれをインストールする必要があります(そしておそらくあなたのOSが付属しています:読んでいました。このデジタル署名技術は、各フィルタ実行時ではなく、ダウンロード中に一度行う傾向があるものの、一部の電話OSがアプリを査定する方法であるため、適切なものです)

ヘルパーの仕事は、ファイルをリポジトリ内で見つけることです。を実行してから実行しても問題はありません。ヘルパーはコンピュータの「信頼できる」部分にインストールされているため(Linuxでは/usr/local/binまたはなど)、実行されます。リポジトリ内のフィルタを更新するときに、再インストールする必要はありません。

ここで「缶詰め」されていない部分は、ヘルパが検証を行う方法です(gpgがある場合は、必要なすべての署名検査と失効サポートがあるため、gpgを使用することもできます)。シグネチャそのものと、イン・レポ・フィルタとの関係、どのようにヘルパーがどのようにしてのさまざまな部分を見つけるかなどがあります。おそらくビジネスチャンスのようなことを考えてください。 :-)

関連する問題