完全に機能するクロスプラットフォームシェバングラインのためのハックはありますか?

StackOverflow https://stackoverflow.com/questions/2296921

質問

問題:を明らかに.git内のスクリプトは、/ディレクトリをフックのファイル名マッチング1に依存します:

post-commit
pre-commit
pre-rebase

など...

「シェバング行は」限り、それは実行可能ファイルとLinuxマシン上で実行されているように、ファイルを実行すべきかを示すため、「ファイル拡張子」の概念は必要ありません。

あなたには、いくつかのスクリプトを持っている場合、問題は、Windowsボックス上で実行したいということです。

質問の:?のWindowsマシン上で理解することができるフックスクリプトを実行する方法はあります。

役に立ちましたか?

解決

私は、Windowsは、拡張子のないファイルを実行するという概念を持っているとは思いません。回避策)が1になるのbash、下のCygwinのgitのを使用する場所全体シェバングビジネス作品または2)実際にシェバングライン自体と負荷の適切なインタプリタを解析する、WindowsのGitのバージョンでハック。私はそれが起こることはないだろうと思いますので、私は、後者に哲学的な反論のすべての種類を見ることができます...

他のヒント

私はこの上の背後にある方法だけど、私はあなたのためのソリューションを持っています。あなたのpythonを使用している場合は、PATHEXT環境変数に(コントロールパネル、システム、高度な、環境変数を)「の.py」を追加します。同様に、特定のスクリプト言語のため。そして、プログラムは、特定のディレクトリ内の「ポストコミット」ファイルを実行するには、Windowsを要求すると、それはファイルのマッチングが見つかるまで、Windowsが順番にPATHEXTに目を通すだろうフックpost-commit.py、pre-commit.pyなどに名前を付けますそれは、その後に実行される「ポストcommit.extension」、。私は、Windows上のSVNのフックに長い時間前にこれをやっています。

私は実際に)オプション3のために定住します:

呼び出すgitののことをWindowsの「ラッパー」スクリプトを作成し、は、私が実行したいことをすべての関連するフックを呼び出します。欠点は、私はちょうど標準フックファイルを使用できる場合にのみ、Gitが自動的に行っているだろう何をすべきか、ラッパープログラムを設定する必要がある。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top