ブランチとトランクのサーバー リポジトリがあります。ブランチは、すべてのチーム メンバーのリポジトリです。ブランチの下のリポジトリでのみ使用しようとしていますsvn hooks
が、うまく機能していないようです。以下に、私がアプローチしようとした手順を示します。
my_repo
リモートサーバーからチェックアウトしましたbranch/my_repo
ローカル リポジトリ
my_repo
にはコンテンツがないため、新しい svn リポジトリをローカルに作成し、/hooks
フォルダを含むすべてをmy_repo
.で空のファイルを作成し、
my_repo
テキスト行を追加しました。次にsvn add
、このファイル。ファイルを変更し、
my_repo/hooks/pre-commit.tmpl
常にエラー コード 1 でパスしないようにします。今では次のようになります。
#!/ビン/sh 1番出口
を pre-commit にコピーし
pre-commit.tmpl
、pre-commit の実行許可を自分に追加しますサーバーには他の人が含まれており、サーバーの構造は次のようになります。
- サーバー - ブランチ - my_repo - マイファイル - フック - 事前コミット - トムのレポ - 他のチーム メンバーのリポジトリ - トランク
- チェックアウトしたレポで、次を使用して変更をコミットしました。
svn commit -m "dumb change"
ここからコミットできなくなり、コード 1 のエラーが表示されるはずですよね? しかし、私はそれをどこにも見ません。
- 次に、フックフォルダーをブランチとトランクと同じレベルの最上位に配置してみました。つまり、構造は次のようになります。
-サーバ - 枝 - my_repo - マイファイル - トムのレポ - 他のチーム メンバーのリポジトリ - トランク - フック - 事前コミット
しかし、まだ機能していません。はぁ...
ただし、David の助けを借りて、何をすべきか、何が問題なのかを突き止めました。したがって、所有者にフックファイルをサーバーに追加するよう依頼する必要がありました。サーバー上にリポジトリを作成しなかったため、作業ディレクトリにファイルが表示されません。2.今、私が試したことは次のとおりです。
1) 私自身の Linux システムで、svnadmin で新しいリポジトリを作成します。これはおそらく test_server と呼ばれます。フォルダには confs、db、hooks、locks があります。ファイル: フォーマット、readme.txt 2) 同じレベルで、新しいフォルダー (working_dir と呼ばれる) をローカルの作業ディレクトリとして mkdir し、test_server からチェックアウトします。現在、working_dir には test_server という名前のフォルダーが含まれており、このフォルダーは空です。手順 1 のフォルダーまたはファイルが表示されない 3) 上記のように、test_server のフック ファイルを変更します。 4) ファイルを追加して、working_dir/test_server フォルダー内のファイルに新しい行を追加してコミットします。 5) commit failed with message: svn: Commit blocks by pre-commit hook(exit code 1) with no output. が表示されるはずです。
デビッドに感謝します。