1

コミット前またはコミット後、あるいはその他の方法で次のことを行う方法を探しています。

これが私が働く必要があるものです

  1. ユーザーがファイルをコミットします
  2. 何かが実行されます(フックまたは何か他のもの)
  3. #2の他の何かが、コミットされているファイルに静的テキストを追加する必要があります

このhttp://subversion.open.collab.net/ds/viewMessage.do?dsForumId=3&dsMessageId=296576 に基づくと、推奨されていないようですが、コミットするたびにファイルにテキストを追加する方法が必要です。

オペレーティングシステム: Sent Os

必要な理由:法的通知を挿入してすべてのコードファイルを保護する

4

5 に答える 5

10

SVN ブックのこの章の最後にある赤いボックスを見てください。

フック スクリプトはほとんど何でも実行できますが、フック スクリプトの作成者が自制すべき点が 1 つあります。それは、フック スクリプトを使用してコミット トランザクションを変更しないことです。フック スクリプトを使用して、コミット中のファイルに存在するエラー、欠点、またはポリシー違反を自動的に修正したくなるかもしれませんが、そうすると問題が発生する可能性があります。Subversion は、リポジトリ データの特定のビットのクライアント側キャッシュを保持します。この方法でコミット トランザクションを変更すると、それらのキャッシュは検出できないほど古くなります。この不一致は、驚くべき予期しない動作につながる可能性があります。トランザクションを変更する代わりに、pre-commit フックでトランザクションを検証し、必要な要件を満たさない場合はコミットを拒否する必要があります。おまけとして、ユーザーは、コンプライアンスを重視した慎重な作業習慣の価値を学びます。

私は、赤いボックス内のテキストが真剣に受け止められるべきであるという POV に同意します。

于 2009-10-28T21:12:59.043 に答える
8

そのスレッドによると、pre-commitフックでそれを行うことができますが、それはBadThing™になります。ファイルに静的テキストが絶対に必要な場合は、開発者にテキストを入れてから使用することをお勧めします。そこにあったことを確認するためのpre-commitフック。静的テキストが存在しない場合、または正しくない場合は、コミットを拒否します。

于 2009-10-28T20:53:21.670 に答える
2

これまでのところ、実行可能な唯一の解決策は、tortoiseSVN のクライアント側フックを使用することです。

TortoiseSVN を使用して自動的にコメントを挿入しますか?

残念ながら、これにより開発者は TortoiseSVN しか使用できなくなります。たとえば、Visual Studio プラグインを使用しても機能しません:(

誰かがこれを行う一元的な方法を見つけた場合は、ここに投稿してください。

于 2009-11-01T16:18:30.703 に答える
0

これに別の方法で取り組んでみませんか。ロボットを使用してください。もう少し手間がかかりますが、基本的には、必要な法的セクションなしでリポジトリへのコミットを受け入れ、ロボットをトリガーして見てもらいます (またはロボットに定期的に見てもらいます)。

次に、ロボットは、管理しているファイルのチェックアウト/更新を行い、ポリシーと法的通知をチェックし、必要なものを自動的に追加してから、変更をチェックインします。このようにして、Subversion のキャッシュは適切であり、法的通知はすべてのファイルにあります。 . 開発者は、他の変更と同様に、次の更新/コミット サイクルで変更をプルダウンします。必要な複雑さに応じて、ロボットが自動的に法務セクションを最新の定義で最新の状態に保つようにすることもできます。

Hudson のようなものを利用して、使用可能なフレームワークでこれをホストすることさえできるかもしれません。

于 2009-10-29T12:08:14.047 に答える
-1

スクリプトを実行し、ファイルなどに情報を追加できるフックをSVNサーバーにインストールできます。

ここに少しの情報があります:http ://svnbook.red-bean.com/en/1.4/svn.ref.reposhooks.post-commit.html

そうは言っても、なぜ地球上でこれをしたいのですか?

于 2009-10-28T20:51:39.460 に答える