1

svn サーバーにプッシュするときに、プロジェクトの zip アーカイブを作成しようとしています。私の古いセットアップでは、これを行うためにリモート git リポジトリで post-receive フックを使用していました。ただし、現在svnを使用しており、svnサーバーを所有していないため、そこに何も置くことができません。次の pre-push フックをセットアップしましたが、これは で実行されませんgit svn dcommit:

$cat .git/hooks/pre-push
#!/bin/sh
git archive -o foo_bar.zip --prefix foo_bar/ master

どのフックを使用できるかについてのアイデアはありますか?

ありがとう!

4

2 に答える 2

2

あなたはgit-svnを使用していますよね?あなたはどこにもそれを引用していないので、あなたがそうであるかどうかはわかりません. これらgit-hooksは純粋な svn では機能しません。git を使用している必要があります。明らかかもしれませんが、確認したほうがよいでしょう。

あなたの問題に関しては、おそらくpost-commitフックを使用できます。コミットが終了したら、物事を圧縮します。これの欠点は、zip ファイルがリポジトリに追加されないことです。

リポジトリに zip が必要な場合は、pre-commitフックとstashツリーを使用してください。このツリーを簡単にアーカイブし、圧縮されたファイルを git インデックスに追加すれば完了です!

この回答は、これをスクリプト化するのに役立つ場合があります: Git archive of repository with uncommitted changes

于 2013-12-19T19:25:51.320 に答える
1

そのようなフックがないので、代わりにエイリアスを作成するのはどうですか?

dcm = "!f(){ git archive -o foo_bar.zip --prefix foo_bar/ master; git svn dcommit; }; f"
于 2013-12-19T19:28:57.737 に答える