いつものように,まとめログを.
##セッション一覧
- 前半
- 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に.
% 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など使って軽量化しているらしい.
長くなるので続きは明日書きます.
comments powered by Disqus