Rails勉強会@東京第30回に参加してきた#1
いつものように,まとめログを.
セッション一覧
- 前半
- scaffold 半歩先へ
- Redmine & git/github & ActiveRecord without Rails <- ここに参加
- OpenID
- 後半
- Rails 2.1の新機能 <- ここに参加
- Agile Web Development with Rails 3rd editionを読んでみる
- Passenger(mod_rails)
Redmine & git/github & ActiveRecord without Rails
git
- 分散バージョン管理システム
- offline でも commit や log を見ることができるのが便利
- merge が便利
- やってみる(Yuguiさんが開発中のRedmine for ruby-langを元に)
- githubから持ってくる
% git clone git://github.com/yugui/redmine4ruby-lang.git
-
- branchを見る
% git branch * master
-
-
- master が trunk にあたるものだが,名称は慣習的なもの
- .git/objects にオブジェクトデータベースがある.実体かな.
-
blob | file に対応する object |
tree | directory tree 構造の snapshot |
commit | commit 履歴の参照を保存するオブジェクト |
-
- HEAD は最新Revを指すポインターのようなもの
- [~]をHEADの後につけると,一つ前のRevに.
- HEAD は最新Revを指すポインターのようなもの
% git show HEAD % git show HEAD~ % git show HEAD~~ % git....
-
- 気軽にbranchが切れるのが便利そう.
- svn のようにコピーが別フォルダに作られないのがいいな.
$ git branch rust1
$ git checkout rust1
$ vim Rakefile
$ git stauts
# On branch rust1 # Changed but not updated: # (use "git add <file>..." to update what will be committed) # # modified: Rakefile # no changes added to commit (use "git add" and/or "git commit -a")
$ git add Rakefile
$ git commit
test
-
- gitk で見ると,branch の遷移具合がよくわかる(会社マシンに Ubuntu 入れたらやってよう).
- git push で clone 元に patch を上げる
- merge するには,例えば master に戻って下記のようにする.
$ git checkout master $ git merge rust1
% git reset --hard HEAD |<< ---local には commit してしまった >|ruby| % git reset --hard HEAD~ |<< ---HEAD~, HEAD~~ などで1つ前,2つ前.... --revertした参照を探すには >|ruby| % git fsck --lost-found
-
- 消えたcommit情報を見るには,上記で調べた SHA1 から
% git show SHA1
-
- branchを消すには(と言っても,参照を消すだけなので実体は残る)
% git branch -D rust1
-
- branchを切って編集したあとに,
- --mixed で HEAD を branch を切った場所まで戻し,commitし直すとログが1つにまとまる(これは仕事でも使えそうな気がする).
- branchを切って編集したあとに,
Redmine
-
- subversion/git/mercurial/... など様々な SCM で,adapter を書けばだいたい何でも対応できる
ActiveRecord は使わないが migration は使いたい場合
require 'active_record' ActiveRecord::Schema.define(:version => 1) do create_table "todos" do |t| t.string .... end end