Rails勉強会@東京第30回に参加してきた#1

いつものように,まとめログを.

セッション一覧

Redmine & git/github & ActiveRecord without Rails

git
% 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に.
% 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
    • github
      • Rails製の git hosting service
    • revert
      • commit 前なら
% 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つにまとまる(これは仕事でも使えそうな気がする).
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
その他
  • drubyをキャッシュとして使ってるそうな.
    • 確かにそう言う使い方もできるな.
  • ActionMailer.receive(email)
    • かなり重い
    • drubyなど使って軽量化しているらしい.

長くなるので続きは明日書きます.