1

以下の 2 つのことを実行できる SVN フック シェル スクリプトを 2 時間検索しましたが、見つかりませんでした。関連するテンプレートや資料があれば教えてください。

  1. ファイルの種類を確認する必要があります (*.java、*.css、*.js...)
  2. ファイルがコミットされるたびにファイルの先頭に追加する必要があります

    /* * Copyright (c) 1994, 2010, Oracle および/またはその関連会社。全著作権所有。* オラクル専有/機密。使用にはライセンス条項が適用されます。* 作成者: * ファイル バージョン: * ファイル パス名: * およびその他の有用なタグ。*/

4

2 に答える 2

3
  1. スクリプトではsvnlook、着信トランザクションを分析し、コミットを拒否するか許可するかのロジックを実装するために使用します。

  2. これをしてはいけません。SVNBookを参照してください:

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

于 2013-03-18T12:53:05.027 に答える
1

私は解決策を見つけましたが、フックスクリプトでは見つかりませんでした。私はsvnトークンでやった。

  1. 一部の SVN クライアントを使用して、必要なトークンを svn の特定のプロジェクトまたはフォルダーにアタッチ (アクティブ化) する必要があります。

  2. このようなテンプレートを書く必要があります。

    /* *

    • Copyright (c) 1992-2013 XXXX, Inc および/またはその関連会社。全著作権所有。
    • XXXX 専有/​​機密。使用にはライセンス条項が適用されます
    • 最終更新者:$Author$
    • 修正時刻 :$Date$
    • ファイル バージョン :$Revision$
    • ファイルパス:$URL$ */
  3. 初めてこのテンプレートをソース コードに追加する必要があります。そしてコミットします。次回は行う必要はありません。

  4. 注意: テンプレートは、ベース 1 ファイル時間で変更する必要があります。上記の .java ファイルのテンプレートを .xml などに適用する場合は、特定のテクノロジのコメント構文に基づいて変更する必要があります。

  5. コミットするだけ....完了..

于 2013-03-21T07:51:41.287 に答える