我有一个带有博客条目的Rails应用程序,我想从另一个Blog.git回购更新。
我设想我的工作流程如下:
此处的故障是找到哪些文件已更改。我想为此利用Git,我知道我可以在git diff
上做一些awk或Perl脚本。
但是有更好的方法吗?我简要地看了一下Grit,但找不到一个好的解决方案。
更新:事实证明,Grit是解决此问题的最佳解决方案,至少据我所知。以下是我用来解决问题的方法:
desc 'Posts all entries to database'
task :post_all do
Dir.chdir REPO do
Grit::Repo.new('.').tree.contents.each do |file|
# post_entry cleans up my blog entries and posts them via Post.create()
post_entry(file.data, :text) unless file.basename =~ /\.gitignore/
end
end
end
desc 'Posts all new or changed entries to database'
task :post_new do
Dir.chdir REPO do
Grit::Repo.new('.').head.commit.diffs.each do |diff|
post_entry diff.b_blob.data, :text
end
end
end
desc 'Deletes entries from database'
task :remove_all do
Post.destroy_all
end
desc 'Synchronizes the remote blog repo and the database'
task :sync => [ :remove_all, :post_all ]
答案 0 :(得分:2)
真的有必要使用数据库吗?看看jekyll宝石。数百个(如果不是数千个)简单博客使用它,包括我的两个。
http://github.com/mojombo/jekyll
否则,砂砾是一个很好的解决方案。我已经将它用于一些事情并且效果很好。