Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Subversion の導入から
運用について
∼ワシのTipsは108つまであるぞ∼
発表者:すがまさお
連絡先:sugamasao@gmail.com
ブログ:http://d.hatena.ne.jp/seiunsky
※画像と本プレゼン...
自己紹介
名前:すがまさお
メールアドレス:sugamasao@gmail.com
ブログ: http://d.hatena.ne.jp/seiunsky
SVN歴:3年くらい
お仕事:2009/05 まで中堅 でした
今は別の会社で Flas...
アジェンダ
オレとSVNと上司達 ∼導入編∼
オレとSVNと環境周り ∼運用編∼
オレとSVNと苦悩達 ∼ワシのTipsは108つ
まであるぞ編∼
3
オレとSVNと上司達
∼導入編∼
4
ようするに
SVNを導入する時の話
5
2006年くらいの時の話
(当時、社会人2年目くらい)
6
VSSでの管理を辞
め、CVS へ移行しよう
か? という話があった
7
VSSを辞めたい
理由:ライセンス料パ
ネェっすwww
8
CVS をやりたい
理由:前のプロジェクト
(顧客側が用意した環境)で使ったし
9
オレ「CVSよかSVNの方
がよくね?」
10
上司&先輩「なんぞそ
れ」
11
オレ「CVSの改良版みた
いな奴ッス!まじスゴ
いッス!」
12
上司&先輩「例えば何
が?」
13
オレ「日本語ファイル名
とか使えるし!
そーすふぉーじとかが移
行するって言ってる
し!」
14
上司&先輩「例えば、
ロックとかできんの?」
15
オレ「デフォルトではで
いきないっす。でも設定
すればできるみたいです
よ」
16
上司&先輩「ロックっ
つってもチェックアウト
できんじゃん。
ないわー」
※VSSでは、ロックしているとチェックアウトも
できないらしい
17
オレ「・・・」
18
∼数日後∼
19
打ち合わせの時に、同席
していた協力会社の人に
きいてみた
20
オレ「バージョン管理
ツールってどういうのが
流行ってるんですか
ねー?」
21
協力会社の人「最近は
○○(某大手SIer)とかでも
SVN導入したりしてるみ
たいですよ」
22
上司「じゃあSVNにしよ
う」
先輩「そうしよう」
23
オレ「・・・」
24
結論:
提案するときは信頼のあ
る人を巻き込みましょう
25
オレとSVNと上司達
∼導入編 完∼
26
アジェンダ
オレとSVNと上司達 ∼導入編∼
オレとSVNと環境周り ∼運用編∼
オレとSVNと苦悩達 ∼ワシのTipsは108つ
まであるぞ編∼
27
オレとSVNと環境周り
∼運用編∼
28
SVNサーバ構成
OS : Windows 2003 Server
メモリ: 256M(!)
Webサーバ:Apache 2.2
認証:Basic認証
29
SVNリポジトリ
1プロジェクト 1リポジトリ
Post-Commit を取得して Commit したら
メールを送信するスクリプトを配置
(プロジェクトにより、置かない場合も)
30
SVNと周辺環境
本年度より、 Trac Lightning を導入(半ば
強引に実施したw)
昨年のプロジェクト以降、Hudson によるCI
サイクルを実施。Commit → Build が「常に
見える化」
Commit 時、Build失...
SVNの使い方
trunk branch tag private の4つ
プロジェクト(プログラム)繁忙期は private
ディレクトリに切ってある各自のディレクト
リに Commit して、適当なタイミングで
trunk へマージ。
git...
SVNの使い方
tag は結合試験等、フェーズの節目で実施
または客先の結合試験用サーバに渡すタイミ
ングなど(ひどいとほぼ毎日だがw)
最終的なカットオーバーしたときのタイミン
グなど
33
SVNの使い方
trunk は、開発がある程度落ち着いたら直接
コミットするようにしている
trunkにコミットするときはコンパイルの通る
ものを!軽い動作確認が済んでいるものを!
コンパイルが通らないとかは Hudson が即座
にキャッチし...
オレとSVNと環境周り
∼運用編 完∼
35
アジェンダ
オレとSVNと上司達 ∼導入編∼
オレとSVNと環境周り ∼運用編∼
オレとSVNと苦悩達 ∼ワシのTipsは108つ
まであるぞ編∼
36
オレとSVNと苦悩達
∼ ワシのTipsは108つまであるぞ編∼
37
Q1.トータスSVNでムカ
つく音が出るんですけど
38
A1.とりあえず svn up
してみろ
39
目標を up して commit
目標を up して commit
目標を up して commit
40
Q2.[.svn]ファイルいら
ないんですけど
41
Q2.svn export
しろ
42
Q3.$Id:$付けてるんです
けど、propset すぐに忘
れます
43
A3.設定ファイルに書い
ておくと良い
44
設定ファイルについて(1)
TortoiseSVN
設定→一般→「Subversionの設定ファイ
ル」の編集ボタン
純正 svn
/.subversion/cofig
45
設定ファイルについて(2)
[miscellany]セクションに
enable-auto-props = yes を追加
[auto-props]セクションに
*.rb = svn:keywords=Id って感じで追加
46
Q4.checkout すると日
付が現在になるんですが
47
A4.細けぇ事はいいんだ
よ!!(AA略
48
Checkout 時の日付問題
設定ファイル変える
[miscellany]セクションに
use-commit-times = yes を追加
サーバ上に svn up でデプロイしている時、
サーバ間で日付に違いがでなくて良い
49
Q5.SVN内でリンクはり
たいんですけど
50
A.externals で可能。
また、SVN 1.5からは相
対指定も可能となった
51
SVN内リンク問題
externals コマンドを使う(svn upを忘れずに)
svn propset svn:externals
"^/trunk/lang/perl/misc misc" ./
リンク元リポジトリパス エイリアス名 配置場...
Q6.あ、オレのコミット
分が無くなってんだけ
ど!!!
53
A6.
1.ローカルにチェックアウトする
2.開発サーバ上でファイル編集
3.ローカルを update する
4.ローカルのファイルに [2.] で編集
したファイルを上書きする
5.コミットする
6.[3.]の時点でマージされた内容が消
滅/...
選手の体力を考慮し、本日の108つのTips 紹介
は終了することとなりました
突然ですけれど
※画像と本プレゼンは関係ありません
55
すがまさお先生の次回作
にご期待下さい!
(っていうか108個とか無理だろJK・・・)
56
ご清聴
ありがとうございました
57
余談
Ruby 製の sass というツールの作成補助
ツール[saag]を github で公開していま
す!
もしご興味があれば下記を参照下しあ!
http://wiki.github.com/sugamasao/
saag
58
Upcoming SlideShare
Loading in …5
×

Subversion の導入から 運用について 〜ワシのTipsは108つまであるぞ〜

6,465 views

Published on

バージョン管理勉強会(第一回)での発表資料です。
http://groups.google.com/group/vcsstudy

Published in: Technology, Art & Photos

Subversion の導入から 運用について 〜ワシのTipsは108つまであるぞ〜

  1. 1. Subversion の導入から 運用について ∼ワシのTipsは108つまであるぞ∼ 発表者:すがまさお 連絡先:sugamasao@gmail.com ブログ:http://d.hatena.ne.jp/seiunsky ※画像と本プレゼンは関係ありません 1
  2. 2. 自己紹介 名前:すがまさお メールアドレス:sugamasao@gmail.com ブログ: http://d.hatena.ne.jp/seiunsky SVN歴:3年くらい お仕事:2009/05 まで中堅 でした 今は別の会社で Flash やってます 2
  3. 3. アジェンダ オレとSVNと上司達 ∼導入編∼ オレとSVNと環境周り ∼運用編∼ オレとSVNと苦悩達 ∼ワシのTipsは108つ まであるぞ編∼ 3
  4. 4. オレとSVNと上司達 ∼導入編∼ 4
  5. 5. ようするに SVNを導入する時の話 5
  6. 6. 2006年くらいの時の話 (当時、社会人2年目くらい) 6
  7. 7. VSSでの管理を辞 め、CVS へ移行しよう か? という話があった 7
  8. 8. VSSを辞めたい 理由:ライセンス料パ ネェっすwww 8
  9. 9. CVS をやりたい 理由:前のプロジェクト (顧客側が用意した環境)で使ったし 9
  10. 10. オレ「CVSよかSVNの方 がよくね?」 10
  11. 11. 上司&先輩「なんぞそ れ」 11
  12. 12. オレ「CVSの改良版みた いな奴ッス!まじスゴ いッス!」 12
  13. 13. 上司&先輩「例えば何 が?」 13
  14. 14. オレ「日本語ファイル名 とか使えるし! そーすふぉーじとかが移 行するって言ってる し!」 14
  15. 15. 上司&先輩「例えば、 ロックとかできんの?」 15
  16. 16. オレ「デフォルトではで いきないっす。でも設定 すればできるみたいです よ」 16
  17. 17. 上司&先輩「ロックっ つってもチェックアウト できんじゃん。 ないわー」 ※VSSでは、ロックしているとチェックアウトも できないらしい 17
  18. 18. オレ「・・・」 18
  19. 19. ∼数日後∼ 19
  20. 20. 打ち合わせの時に、同席 していた協力会社の人に きいてみた 20
  21. 21. オレ「バージョン管理 ツールってどういうのが 流行ってるんですか ねー?」 21
  22. 22. 協力会社の人「最近は ○○(某大手SIer)とかでも SVN導入したりしてるみ たいですよ」 22
  23. 23. 上司「じゃあSVNにしよ う」 先輩「そうしよう」 23
  24. 24. オレ「・・・」 24
  25. 25. 結論: 提案するときは信頼のあ る人を巻き込みましょう 25
  26. 26. オレとSVNと上司達 ∼導入編 完∼ 26
  27. 27. アジェンダ オレとSVNと上司達 ∼導入編∼ オレとSVNと環境周り ∼運用編∼ オレとSVNと苦悩達 ∼ワシのTipsは108つ まであるぞ編∼ 27
  28. 28. オレとSVNと環境周り ∼運用編∼ 28
  29. 29. SVNサーバ構成 OS : Windows 2003 Server メモリ: 256M(!) Webサーバ:Apache 2.2 認証:Basic認証 29
  30. 30. SVNリポジトリ 1プロジェクト 1リポジトリ Post-Commit を取得して Commit したら メールを送信するスクリプトを配置 (プロジェクトにより、置かない場合も) 30
  31. 31. SVNと周辺環境 本年度より、 Trac Lightning を導入(半ば 強引に実施したw) 昨年のプロジェクト以降、Hudson によるCI サイクルを実施。Commit → Build が「常に 見える化」 Commit 時、Build失敗時にはメールが来る 31
  32. 32. SVNの使い方 trunk branch tag private の4つ プロジェクト(プログラム)繁忙期は private ディレクトリに切ってある各自のディレクト リに Commit して、適当なタイミングで trunk へマージ。 git で言う所のローカルリポジトリ的な感じ 32
  33. 33. SVNの使い方 tag は結合試験等、フェーズの節目で実施 または客先の結合試験用サーバに渡すタイミ ングなど(ひどいとほぼ毎日だがw) 最終的なカットオーバーしたときのタイミン グなど 33
  34. 34. SVNの使い方 trunk は、開発がある程度落ち着いたら直接 コミットするようにしている trunkにコミットするときはコンパイルの通る ものを!軽い動作確認が済んでいるものを! コンパイルが通らないとかは Hudson が即座 にキャッチしてくれる 34
  35. 35. オレとSVNと環境周り ∼運用編 完∼ 35
  36. 36. アジェンダ オレとSVNと上司達 ∼導入編∼ オレとSVNと環境周り ∼運用編∼ オレとSVNと苦悩達 ∼ワシのTipsは108つ まであるぞ編∼ 36
  37. 37. オレとSVNと苦悩達 ∼ ワシのTipsは108つまであるぞ編∼ 37
  38. 38. Q1.トータスSVNでムカ つく音が出るんですけど 38
  39. 39. A1.とりあえず svn up してみろ 39
  40. 40. 目標を up して commit 目標を up して commit 目標を up して commit 40
  41. 41. Q2.[.svn]ファイルいら ないんですけど 41
  42. 42. Q2.svn export しろ 42
  43. 43. Q3.$Id:$付けてるんです けど、propset すぐに忘 れます 43
  44. 44. A3.設定ファイルに書い ておくと良い 44
  45. 45. 設定ファイルについて(1) TortoiseSVN 設定→一般→「Subversionの設定ファイ ル」の編集ボタン 純正 svn /.subversion/cofig 45
  46. 46. 設定ファイルについて(2) [miscellany]セクションに enable-auto-props = yes を追加 [auto-props]セクションに *.rb = svn:keywords=Id って感じで追加 46
  47. 47. Q4.checkout すると日 付が現在になるんですが 47
  48. 48. A4.細けぇ事はいいんだ よ!!(AA略 48
  49. 49. Checkout 時の日付問題 設定ファイル変える [miscellany]セクションに use-commit-times = yes を追加 サーバ上に svn up でデプロイしている時、 サーバ間で日付に違いがでなくて良い 49
  50. 50. Q5.SVN内でリンクはり たいんですけど 50
  51. 51. A.externals で可能。 また、SVN 1.5からは相 対指定も可能となった 51
  52. 52. SVN内リンク問題 externals コマンドを使う(svn upを忘れずに) svn propset svn:externals "^/trunk/lang/perl/misc misc" ./ リンク元リポジトリパス エイリアス名 配置場所 相対指定は、SVNサーバのURLに依存しない ので、URLが変更になってもヒドい目には合 わないよ。 52 52
  53. 53. Q6.あ、オレのコミット 分が無くなってんだけ ど!!! 53
  54. 54. A6. 1.ローカルにチェックアウトする 2.開発サーバ上でファイル編集 3.ローカルを update する 4.ローカルのファイルに [2.] で編集 したファイルを上書きする 5.コミットする 6.[3.]の時点でマージされた内容が消 滅/(^o^)\ このコンボがやべぇ 54
  55. 55. 選手の体力を考慮し、本日の108つのTips 紹介 は終了することとなりました 突然ですけれど ※画像と本プレゼンは関係ありません 55
  56. 56. すがまさお先生の次回作 にご期待下さい! (っていうか108個とか無理だろJK・・・) 56
  57. 57. ご清聴 ありがとうございました 57
  58. 58. 余談 Ruby 製の sass というツールの作成補助 ツール[saag]を github で公開していま す! もしご興味があれば下記を参照下しあ! http://wiki.github.com/sugamasao/ saag 58

×