2011-01-27 5 views
2

私は、ライセンスのブロックが必要です。私のすべてのソース・ファイルに埋め込むプロジェクト内のすべてのファイルにライセンスブロックが存在することを確認する簡単な方法はありますか?

 
//   Copyright Billy O'Neal 2010 
// Distributed under the Boost Software License, Version 1.0. 
// (See accompanying file LICENSE_1_0.txt or copy at 
//   http://www.boost.org/LICENSE_1_0.txt) 

を。私はこれらのファイルの1つまたは複数を見逃している可能性があることを心配しています。これらのファイルがなければ、ソースをライブラリにリリースしたくありません。プロジェクトを見て、そのようなブロックを持たないすべてのファイルをダンプする簡単な方法はありますか?

ライセンスが不足しているファイルがある場合にコミットが成功できないように、これをMercurialにフックする方法のためのボーナスポイント。

(私はブロックを見つけるツールをたくさん持っているが、不足しているものを見つけるに工具)基本的には

答えて

4

は、あなたが結合する必要がありません:

  • hg log --keywordを、どの " ( "hg log"を参照):実際には、すべてのファイルコンテンツではなく、コミットメッセージを検索します。例えば
    が良い任意のスクリプト(のようなthis ant one)によって達成されたファイルを検索
    Ry4anは(Unixのenvironement用)コメントで示唆:
 
find $(hg root) -type f -name '*.cpp' | xargs grep --files-without-match LICENSE_1_0.txt 
  • with a pre-commit hook(「プリコミットの点に注意してください。フックは、レポからのファイルの自動追加/削除が実行された後に実行されます。これは、ここで必要なものではありません。「Mercurial Precommit Isn't Entirely "Pre"」を参照してください)
    注: dライセンス・メッセージがない場合にのみコミットをブロックしますが、コミットしようとしている変更セットにファイルを追加/削除しても構いません。次に事前コミットは問題ありません。
+0

'--keyword'はファイルではなくコミットメッセージをチェックすると思います。 –

+0

@ Ry4an:これは、あなたがそのコメントをしたときに私の答えを正確に編集していた理由です); http://stackoverflow.com/questions/746684/how-to-search-through-all-commits-in-the-repository/ 890923#890923(およびそのコメント)は、 '' hg log -k'コマンドについて詳しく説明しています。 – VonC

+0

あなたはおそらく、次のようなチェックでこの答えを入れ替えることができます: 'find $(hg root)-type f -name '* .cpp' | xargs grep --files-without-match LICENSE_1_0.txt'あなたがUNIX上にいる場合 –

関連する問題