2016-05-12 8 views
1

私は本当にこの場所に行くべきか分かりませんし、私が考えることができるすべてを試しました。フックスクリプトのGITクローンは空のディレクトリになります

私はUbuntu 14.04で動作するGitLabサーバを持っています。私は/ tmpディレクトリの新しいフォルダにレポをクローン化してから、マウントされたリモートディレクトリにファイルをコピーするポスト受信フックスクリプト(bash)を作成しました。 gitユーザにログインしているときにスクリプトを実行すると、スクリプトは正常に動作しますが、フックスクリプトとして実行されても、スクリプトは正常に動作しません。スクリプトは正常に動作し始めますが、git cloneコマンドの結果は完全に空のフォルダです。レポファイルもありません。また、私はクローンコマンドから何のエラーもありません。

(私のコマンド) gitのクローンファイル:999

(リターン///var/opt/gitlab/git-data/..../999.git cloneコマンドは、単一の行を返します。 ) '999'へのクローン

また、同じユーザーからのコマンドラインから同じクローンコマンドを実行すると、この問題は発生しないため、許可のものとは思われません。

私はここからどこへ行くことができますか?

ありがとうございます!

答えて

1

Gitのバージョンが私のものよりも古いためです(私のバージョンは2.8.1で、別の作業ディレクトリに2.6の新しいオプションが追加されて問題のコードが多く変更されています;あなたが持っているバージョンを知っているが、私は2.6より前にそれを賭けている)。だから、これは正しい解決策ではないかもしれませんが、やはりそうかもしれません。 :-)

フックスクリプトを実行すると、環境変数GIT_DIRがリポジトリを含むパスに設定されます。 post-receiveの場合、これは常にちょうど.です(ポスト受信フックはリポジトリディレクトリで実行されます)。これが原因でクローンが失敗する可能性があります。

もしそうならば、git cloneを実行する前に、あなたのスクリプト内に単純にunset GIT_DIRと入力してください。

+0

これはそれでした!本当にありがとう。私はこれを得たことがないでしょう。 –

関連する問題