1

私は最近svnから変換しました。私のサーバーはWindowsの下にあります(私を責めないでください、それは私の選択ではありませんでした:}

「マスター」と「安定」の 2 つのブランチを持つレポを作成しました。

私のサーバーでは、安定したブランチからファイルを取得したいと考えています。

私はやった:

git clone git://url/.git src
cd src
git checkout --track -b stable origin/stable

以前は .bat スクリプトがありました

cd my_repo_dir
svn update
echo APPLICATION_STAGE = 'production' > conf\__init__.py
net stop apache2.2
net start apache2.2

そしてそれはうまくいきました、今はgitで

cd my_repo_dir
git pull
echo APPLICATION_STAGE = 'production' > conf\__init__.py
net stop apache2.2
net start apache2.2

成功したか最新の状態かにかかわらず、git pull の後に何も実行されていません。警告なしでプロンプトを表示するために終了します。

フックについて考えました。私が作成しました:

.git/hooks/post-receive
.git/hooks/post-update

同じ内容の両方のファイル:

echo APPLICATION_STAGE = 'production' > conf\__init__.py
net stop apache2.2
net start apache2.2

いいえ、どちらも実行されていません...おそらく解釈された宣言行(* nixの#!/bin/sh)がありませんが、Windowsではそれが何であるかわかりません...

4

2 に答える 2

3

いくつかのポイント:

  • パスに git.exe があることを確認してください。aを実行すると、次のwhere gitようなものを取得する必要があります

    C:\Program Files (x86)\Git\bin\git.exe
    

    git.cmd が使用されている場合 ( C:\Program Files (x86)\Git\cmd\git.cmd から)、call git pull実行を継続するにはそれを行う必要があります。git.exeパスに追加して、それを使い始めると言います。

  • #!/bin/shWindows でも、フックを適切に実行するには、シバンが必要です。

  • フックをプルで実行したい場合は、おそらくpost-mergeフックを使用する必要があります。post-receiveそれらにプッシュすると、リモートリポジトリでpost-update実行されます。

于 2011-06-09T01:55:39.647 に答える
1

gitおそらく、実際の実行可能ファイルのバッチ ラッパーです。を使用しcall git pullます。

そして、これらのフックは、ドキュメントからわかる限り、コンテンツがリモートの場所からプッシュされたときにのみ起動します。したがって、それらは無視されpullます。

于 2011-06-09T01:21:20.723 に答える