2011-12-06 11 views
9

Ruby on Railsアプリケーション内で現在のGitのコミットバージョンを取得するにはどうすればよいですか?Railsアプリケーション内の現在のGitコミットバージョンを取得していますか?

Appバージョンとして機能するためにGitバージョン(またはおそらく最後の6文字程度)を表示したいですか?あなたはgitのバイナリへのフルパスを使用したい、そしておそらく環境変数または--git-dir経由GIT_DIRを指定することも、ご使用の環境によっては

commit = `git show --pretty=%H` 
puts commit 

答えて

9

あなたのスクリプト内からgitコマンドを呼び出すことができます。

+0

今日、新しい何かを学んだ、ありがとう!シェルコマンドにバッククォートを使用できるかどうかは分かりませんでした。 –

+0

私はそれを使用していないので経験から推薦できませんが、より多くのものが必要な場合は[grit](https://github.com/mojombo/grit)を使用することができます。 –

+0

アーロン、グリットと考えられていますが、それは私の単純な使用よりも複雑な解決策です。 –

1

私はあなたのHTMLにアプリ版をどこかに入れたいと思っていますか?前提条件は、リポジトリをデフォルトの方法で(リポジトリをアップロードしていて、アーカイブファイルを送信しないで)配置していることです。

Railsの初期設定にいくつかのコードをoutlined hereとして追加することができます。その方法は、最後のコミットからSHA1を取得し、環境変数として使用できるようにします。

これを行うもう1つの方法は、あなたにCapistranoタスクをコミットSHAを含むパブリックディレクトリに静的ファイルを生成させることです。このファイルに他の情報を含めることもできます。 @meagar同様

+0

capistrano 3では、現在のフォルダ内のファイルREVISIONを読み込むだけです。 – barbacan

15

は、あなたのアプリの中からシェルコマンドを実行するためにバッククォートを使用していますが、より便利に、これらの2つのコマンドを見つけることが、言った:

全ハッシュ:ハッシュの

git rev-parse HEAD 

第7文字:

git rev-parse --short HEAD 
関連する問題