狠狠撸

狠狠撸Share a Scribd company logo
Subversion の導入から
運用について
~ワシのTipsは108つまであるぞ~
発表者:すがまさお
連絡先:sugamasao@gmail.com
ブログ:http://d.hatena.ne.jp/seiunsky
※画像と本プレゼンは関係ありません
1
自己紹介
名前:すがまさお
メールアドレス:sugamasao@gmail.com
ブログ: http://d.hatena.ne.jp/seiunsky
SVN歴:3年くらい
お仕事:2009/05 まで中堅 でした
今は別の会社で Flash やってます
2
アジェンダ
オレと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失敗時にはメールが来る
31
SVNの使い方
trunk branch tag private の4つ
プロジェクト(プログラム)繁忙期は private
ディレクトリに切ってある各自のディレクト
リに Commit して、適当なタイミングで
trunk へマージ。
git で言う所のローカルリポジトリ的な感じ
32
SVNの使い方
tag は結合試験等、フェーズの節目で実施
または客先の結合試験用サーバに渡すタイミ
ングなど(ひどいとほぼ毎日だがw)
最終的なカットオーバーしたときのタイミン
グなど
33
SVNの使い方
trunk は、開発がある程度落ち着いたら直接
コミットするようにしている
trunkにコミットするときはコンパイルの通る
ものを!軽い動作確認が済んでいるものを!
コンパイルが通らないとかは Hudson が即座
にキャッチしてくれる
34
オレと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/co?g
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" ./
リンク元リポジトリパス エイリアス名 配置場所
相対指定は、SVNサーバのURLに依存しない
ので、URLが変更になってもヒドい目には合
わないよ。
52
52
Q6.あ、オレのコミット
分が無くなってんだけ
ど!!!
53
A6.
1.ローカルにチェックアウトする
2.開発サーバ上でファイル編集
3.ローカルを update する
4.ローカルのファイルに [2.] で編集
したファイルを上書きする
5.コミットする
6.[3.]の時点でマージされた内容が消
滅/(^o^)\
このコンボがやべぇ
54
選手の体力を考慮し、本日の108つのTips 紹介
は終了することとなりました
突然ですけれど
※画像と本プレゼンは関係ありません
55
すがまさお先生の次回作
にご期待下さい!
(っていうか108個とか無理だろJK???)
56
ご清聴
ありがとうございました
57
余談
Ruby 製の sass というツールの作成補助
ツール[saag]を github で公開していま
す!
もしご興味があれば下記を参照下しあ!
http://wiki.github.com/sugamasao/
saag
58

More Related Content

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