Rails 3 app,如何获得GIT版本和更新网站?

Bla*_*man 9 git capistrano ruby-on-rails

我正在使用capistrano部署我的rails 3应用程序,我想得到git版本(和日期信息)并用此更新我的网站页脚.

我怎样才能做到这一点?

sgh*_*ael 9

根据David的指示,我通过创建初始化程序"git_info.rb"解决了这个问题.将此文件放在Rails初始化程序目录中

git_info.rb的内容是:

GIT_BRANCH = `git status | sed -n 1p`.split(" ").last
GIT_COMMIT = `git log | sed -n 1p`.split(" ").last
Run Code Online (Sandbox Code Playgroud)

然后在您的页脚中,您可以使用此输出(HAML语法):

#rev_info
  = "branch: #{GIT_BRANCH} | commit: #{GIT_COMMIT}"
Run Code Online (Sandbox Code Playgroud)

您可能希望将#rev_info的字体颜色设置为与背景颜色相同,因此仅当您使用光标突出显示文本时,该文本才可见.

我只是尝试了这一点,虽然它在开发模式下工作,但似乎分支过度编写了"部署"后capistrano部署.Capistrano必须在部署时创建自己的本地分支名为"deploy"吗?


rdl*_*dlu 9

对于那些不使用capistrano的人来说,一个更漂亮的人:

在config/initializers/git_info.rb上:

GIT_BRANCH = `git symbolic-ref HEAD 2>/dev/null | cut -d"/" -f 3`
GIT_COMMIT = `git log --pretty=format:'%h' -n 1`
GIT_COMMIT_TIMESTAMP = `git log --pretty=format:'%ct' -n 1`
Run Code Online (Sandbox Code Playgroud)

第二个给出了更漂亮的形式(例如:4df21c0).

第三个返回UNIX TIMESTAMP,我稍后使用Time/DateTime格式化.