ソースを git-hub サーバーにチェックアウトするたびに、ソース コードのリビジョン キーワード (@version、@date など) を更新する必要があります。
あなたが知っているかもしれないように:
Git でのこれに関する主な問題は、Git が最初にファイルのチェックサムを計算するため、コミット後にコミットに関する情報を使用してファイルを変更できないことです。
基本的に私が達成したいのは、私のソースコードが以下のようになることです:
* Git revision information:
*
* @version $Revision: 1e7f611039399b32e9000ec454609a0641dde368 $
* @author $Author: Eugen Mihailescu <eugenmihailescux@gmail.com> $
* @date $Date: Thu May 3 01:17:45 2012 +0200 $
*
* $Id: | Thu May 3 01:17:45 2012 +0200 | Eugen Mihailescu $
こことここで、Git でこれを実現する方法の完全な説明を見つけることができます。
コミット/チェックアウト時にファイルで置換を行うための独自のフィルターを作成できることがわかりました。これらは「クリーン」フィルターと「スマッジ」フィルターです。.gitattributes ファイルでは、特定のパスにフィルターを設定し、ファイルがチェックアウトされる直前 (「smudge」、図 7-2 を参照) およびコミットされる直前にファイルを処理するスクリプトを設定できます。
だから私はgitコマンドでそれを行う方法を知っています。私はテストしました、それはうまくいきます!私の本当の問題は、Eclipse IDE を使用して同じことを達成したいということです。Eclipse には、Git バージョン管理システムの純粋な Java 実装である JGit に基づく Eclipse Team プロバイダーである Eclipse Git があります。
Eclipse EGit には「git checkout」というコマンドはありませんが、ハード リセット (プロジェクトを右クリックし、[チーム] -> [リセット] -> [ハード] を選択) によって実現できます。残念ながら、これはクリーン/スマッジ フィルターを実行しません。実際には、キーワード展開なしで git ハブからソースのプレーン コピーを取得します。
ここで質問するので、全体のストーリーを詳細に説明したことを願っています。
- EGitを使用してEclipseでこれは可能ですか?