因此,我現在正在開發一個Rails應用程序中的'開發博客'。我使用Git進行版本控制和部署(儘管現在我是唯一一個在其上工作的人)。Embed Git Commit登錄Rails應用程序?
現在,當我在Git中進行更改時,我放了一個相當不錯的日誌條目,介紹了我所做的事情。我很樂意將Git提交日誌自動發佈到開發人員博客 - 或者以其他方式提供給其他人在部署的站點中閱讀。
是否有一種自動方式將Git提交日誌拉入Rails應用程序的視圖中?
因此,我現在正在開發一個Rails應用程序中的'開發博客'。我使用Git進行版本控制和部署(儘管現在我是唯一一個在其上工作的人)。Embed Git Commit登錄Rails應用程序?
現在,當我在Git中進行更改時,我放了一個相當不錯的日誌條目,介紹了我所做的事情。我很樂意將Git提交日誌自動發佈到開發人員博客 - 或者以其他方式提供給其他人在部署的站點中閱讀。
是否有一種自動方式將Git提交日誌拉入Rails應用程序的視圖中?
一些Git主機將允許您提供一個提交後掛鉤,這可以使您能夠進行HTTP調用以將相關的日誌語句發送到您的應用程序。
如果您是自託管,請查看githooks。
如果您使用Github上,你可以使用自己的post-commit後(詳情點擊這裏:http://help.github.com/post-receive-hooks/)
事實上,Github只會在下面顯示提交日誌「提交」。 – 2011-01-05 02:20:02
好吧,所以我從來沒有聽說過git掛鉤,但這非常有幫助。我是自託管的,所以......如果我把一個名爲post-commit的可執行文件放在理論上,可以將提交文件發佈到網站上。你能指點我有關如何編寫git鉤子的任何資源 - 最好在Ruby中?謝謝! – Andrew 2011-01-05 02:38:32
沒有使用過,但可能會有所幫助:https://github.com/schacon/ruby-git 此鏈接也有一些很好的信息:http://book.git-scm.com/5_git_hooks。 html – 2011-01-05 03:09:35
你可能想看看grit這是一個Ruby庫,讓在一個git獲得的東西回購。
我在我的個人博客中使用沙礫。我在文本文件中撰寫文章並將它們提交到git repo,然後將git repo推送到我的服務器,在那裏我的rails應用程序使用砂礫作爲博客文章從git repo中讀取文件。
例如,這裏是它是多麼容易獲得最後的提交信息:
require 'grit'
include Grit
repo = Repo.new('<path to your .git dir>')
puts repo.commits('master',1)[0].message # latest commit message
puts repo.commits('master',1)[0].date # last commit date
偉大的提示,這可能是非常有用的!我會檢查出來的。 – Andrew 2011-01-05 02:56:53
所以...'你的git目錄的路徑'...我在Heroku上部署,我的git目錄是本地的。我不認爲回購存在於Heroku服務器上,至少不以我能達到的任何方式存在(他們把它變成了他們稱之爲「slu」子「的東西)。但是,我確實有另一臺私人服務器可以存儲回購副本。這會成功從URL而不是路徑加載回購嗎? – Andrew 2011-01-05 03:01:09
嗯,我不確定<.git dir>的路徑是否可以成爲網址......我猜測,除非.git目錄是rails應用程序的本地目錄,否則它將不起作用。例如,在我的情況下,它是這樣的:'repo = Repo.new('/ home/dparoulek/rails-app/.git')' – Upgradingdave 2011-01-05 15:58:00
我添加了一個Capistrano的任務,做同樣的事情:
deploy.rb
namespace :deploy do
desc <<-DESC
Updates info.html with build and deploy info
DESC
task :timestamp do
run "cd #{current_path}; printf '<pre>\\nDeployed on: %s\\n\\n%s\\n</pre>' \"`date`\" \"`git log -n 1`\" > public/info.html"
end
end
after "deploy", "deploy:timestamp"
我只顯示最後一次提交,但可以改變git log命令以顯示任何你想要的內容。
好主意!那麼,同樣的道理,我可能會把這個作爲一個耙子任務呢?我正在部署Heroku,因此在我的工作流程中沒有capistrano。 – Andrew 2011-01-05 02:57:59
是的,你應該可以在rake任務中做同樣的事情,但看起來Heroku不會讓你寫出這樣的文件。 rake任務將git信息放入數據庫表中並讓info頁面成爲從數據庫中拉出的Rails視圖可能會更好。 – 2011-01-05 04:18:45
到目前爲止,只需簡單地回答一下回答者,這些建議就非常有幫助,我很欣賞他們每個人都提供了一種獨特但可行的方法! – Andrew 2011-01-05 02:58:39
仍然在做一些測試,每個選項都很有趣。當我找出哪種方式最適合我時,我會選擇一個答案,但如果其他人有關於如何執行此操作的其他想法,我仍然感興趣:) – Andrew 2011-01-06 20:21:33