0

テストを実行し、いくつかのファイルを圧縮し、ラップトップから実行するときにビルド ID を生成する、リモートの裸の Git リポジトリに pre-receive フックがあります。

 $ git push production master

pre-receive フックの簡略化されたバージョンは、次のようなものです。

while read oldrev newrev refname
do
# Export deployed branch to build directory
mkdir -p $BUILD_DIR
git archive $newrev | tar -x -C $BUILD_DIR 
cd $BUILD_DIR
the_build_script.sh 
done

現在、レポに 2 つのサブモジュールを追加しましたが、これを処理する方法に関するドキュメントや例が見つかりません。ビルド スクリプトの前に実行する必要があることはわかっています。

# git submodule init
# git submodule update

しかし、私の知る限り、それは古いリビジョン コードによって参照されるサブモジュールを取得し、リモート リポジトリにコミットされていない新しいプッシュ コードで参照されるサブモジュールは取得しません。

これを処理する方法に関するアイデアや例はありますか?

どうもありがとう。

4

1 に答える 1

0

わかりました、(今のところ)機能しているように見える解決策を見つけました。次のようなもので解決しました:

echo "Exporting repo and submodules for build process..."
git clone -l --recursive . $BUILD_DIR  
echo "Cleaning up git information..."
find $BUILD_DIR -name ".git" -exec rm -rf {} \; || true

それを行うためのよりクリーンな方法が見つかるまで...これで十分です:-)

于 2012-11-15T17:04:43.493 に答える