Subversion:コミットされたすべてのファイルにテキストを追加する方法は?
-
08-07-2019 - |
質問
コミット前、コミット後、またはその他の方法で次のことを行う方法を探しています。
ここで作業する必要があります
- ユーザーがファイルをコミットします
- 何かが実行されている(フックなど)
- #2の別の何かが、コミットされるファイルに静的テキストを追加する必要がある
これに基づく http://subversion.open。 collab.net/ds/viewMessage.do?dsForumId=3&dsMessageId=296576 推奨されていませんが、コミットごとにファイルにテキストを追加する方法が必要です。
オペレーティングシステム:送信済みOs
必要な理由:法的通知を挿入してすべてのコードファイルを保護する
解決 3
これまでのところ、唯一の解決策は、tortoiseSVNのクライアント側フックを使用することです。
TortoiseSVNを使用してコメントを自動的に挿入しますか?
残念ながら、これにより開発者はTortoiseSVNのみを使用するように制限されます。 たとえば、Visual Studioプラグインを使用しても機能しません:(
誰かがこれを行う方法の一元化された方法を見つけた場合は、ここに投稿してください。
他のヒント
フックスクリプトはほとんど何でもできますが、フックスクリプトの作成者が制限を示す必要がある1つの側面があります。フックスクリプトを使用してコミットトランザクションを変更しないでください。フックスクリプトを使用して、コミット中のファイルに存在するエラー、欠点、またはポリシー違反を自動的に修正するのは魅力的かもしれませんが、そうすると問題が発生する可能性があります。 Subversionは、リポジトリデータの特定のビットのクライアント側キャッシュを保持します。この方法でコミットトランザクションを変更すると、それらのキャッシュは検出不能なほど古くなります。この矛盾は、驚くべき予期しない動作を引き起こす可能性があります。トランザクションを変更する代わりに、事前コミットフックでトランザクションを検証し、目的の要件を満たさない場合はコミットを拒否する必要があります。ボーナスとして、ユーザーは、コンプライアンスを重視した注意深い作業習慣の価値を学びます。
私はPOVを購読し、赤いボックス内のテキストは真剣に受け止められるべきだと考えています。
このスレッドによれば、コミット前のフックでそれを行うことができますが、それは悪いことです™ファイルに静的テキストが絶対に必要な場合は、開発者にテキストを入力してから、事前コミットフックを使用してそれが存在することを確認することをお勧めします。静的テキストが存在しないか、正しくない場合、コミットを拒否します。
この別の方法で作業するのはどうですか-ロボットを使用してください。 もう少し手間がかかりますが、基本的には、必要な法的セクションなしでリポジトリへのコミットを受け入れ、ロボットに見せる(またはロボットを定期的に見させる)ようにします。
その後、ロボットは、対象となるファイルのチェックアウト/更新を行い、ポリシーと法的通知を確認し、必要なものを自動的に追加してから、変更をチェックインします。すべてのファイルに。 Developerseは、他の変更と同様に、次の更新/コミットサイクルで変更をプルダウンします。必要な複雑さに応じて、ロボットに法的セクションを最新の定義で自動的に最新の状態に保つこともできます。
Hudsonのようなものを使用して、これを使用可能なフレームワークでホストすることもできます。
スクリプトを実行し、ファイルなどに情報を追加できるフックをSVNサーバーにインストールできます。
ここに小さな情報があります: http://svnbook.red-bean.com/en/1.4/svn.ref.reposhooks.post-commit.html
それでは、なぜ地球上でこれをしたいのですか?