August, 2008的存档

开始用 rails edge & git

通过 git 在本地创建一个 rails edge:

git clone github.com/rails/rails.git

以后用 rails edge 创建 rails 项目的时候需要先更新一下 edge,然后用 edge 里面的 rails 脚本来创建项目:

cd ~/rails
git pull
ruby ~/rails/railties/bin/rails myapp

然后在项目中初始化一下 git repository:

git init

此时用 git status 查看可以看到项目中的所有目录都是 untacked,先创建一个 .gitignore,设置一下 git 的文件忽略规则:

log/*.log
tmp/**/*
doc/api
doc/plugin
doc/app
vendor/rails
config/database.yml

由于 git 不会管理空目录,所以如果我们想添加一个空的 log/ 和 tmp/ 到 git repository 中的话可以在两个目录里面分别创建一个 .gitignore:

touch tmp/.gitignore
touch log/.gitignore

然后添加所有 untracked file 并 commit 所有的东西:

git add .
git commit -m ‘init rails project’

再用 git status 看看,nothing to commit (working directory clean)

最后添加一下远程 repository 的地址再将所有刚才 commit 的东西 push 到远端:

git remote add origin your_repository_path
git push origin master

这时就完成所有的提交工作了。

以后写代码的时候,先创建自己的一个 branch,尽量不要在 master branch 上直接修改:

git branch -b my_branch

修改完成准备提交的时候,回到 master branch 上和自己刚才工作的 branch 进行 merge,然后再提交:

git checkout master
git merge my_branch

因为要用 rails edge,所以肯定要在 vendor/ 中 freeze rails edge,一个可以用 rake rails:freeze:edge,这样是下载 rubyonrails.org 上面的一个 edge.zip;另一种方法可以使用从 rails edge 的 git repository 上 clone 一个:

git submodule add github.com/rails/rails.git vendor/rails
git submodule init
git submodule update

好了现在基本可以干活了。

参考文章:
http://www.robinlu.com/blog/archives/194
http://toolmantim.com/article/2007/12/5/setting_up_a_new_rails_app_with_git
http://www.caiwangqin.com/post/527

发表评论

ruby gems compatible issue

装了 Rails 2.1 以后升级了一些相应的 gems,比如 rubyforge, rubygem 之类。再到一个 Rails 1.2.3 的项目下运行 script/server, 收到错误提示:

can’t activate rubyforge (=0.4.4), already activated rubyforge-1.0.0

搜索一下很多人遇到同样的问题,因为安装的 rubyforge 版本太多了,解决方法就是删掉所有的再装一个最新版:

sudo gem uninstall -a rubyforge
sudo gem install rubyforge

再运行又遇到问题:

RedCloth is not a class (TypeError)

RedCloth 之前用的 3.0.4,后来装了 4.0.1,据说 4.x 的 main class 不再是 RedCloth,而改成了 RedCloth::TextileDoc,无语。后来发现新的 rubygems 可以指定版本来引入 gem:

require ‘rubygems’
gem ‘RedCloth’, ‘3.0.4′

再测试问题解决,或许将 3.0.4 freeze 到 vendor 下更好些?

发表评论

最近主题:

最近评论

  • g.zhen.ning: 有道理,有点喜欢ruby,不过不知道前...
  • Suave: rails 还是挺有局限性的,ruby 是个更...
  • g.zhen.ning: 对,rails越用越顺手~,交流还谈不上,...
  • Suave: @g.zhen.ning 跟着 rails 版本走事件挺有...
  • g.zhen.ning: 看了你写Web 开发大全 - Ruby on Rails 版...