2

make のようなビルド システムは、2 つのビルド中に依存関係が変更された場合にタイムスタンプ チェックを使用します。タイムスタンプで遭遇するいくつかの一般的な問題を次に示します

  • ファイルを開き、変更を加えますが、後で、それは良くないと判断しました。たとえば、git checkout -- fileプロジェクトに git を使用している場合は、変更を元に戻します。
  • ファイルを開き、エディターの保存のために誤ってキーボード ショートカットを押してしまいました

いずれにせよ、ファイルのタイムスタンプが変更されます。プロジェクトをビルドしたい場合は、そのファイルに依存するすべてを再ビルドする必要があります。これは多くの場合、プロジェクト全体を意味します。

これらの問題の周りにとにかくありますか? たとえば、ファイルの変更をチェックするためにバージョン管理を使用するビルド システム (できれば git)。または、上記の問題に対する他の解決策を歓迎します。

よろしくお願いします。

4

1 に答える 1

2

SConsはデフォルトでタイムスタンプではなくチェックサムを使用します。ただし、チェックサムでは、ディスク上のすべてのソース ファイルのすべての内容を読み取る必要があり、ディレクトリ エントリを単に読み取るよりもはるかに時間がかかります。これが、ほとんどのビルド システムがタイムスタンプを使用する理由です。

Software Build Systemsは、これらの問題の概要を説明しています。

于 2012-11-16T18:51:37.703 に答える