もうちょっとデザイナさんにsubversionを使ってもらいたくて,TortoiseSVNのマニュアルを読んで使える機能をピックアップしてみる.そのためのメモ.当たり前の機能も入ってるけど
続きを読むTortoiseSVNで変更があったファイルだけ取り出したい
変更があったファイルのみをTortoiseSVNで取り出す方法.プログラム案件ではなさそうだけど,デザイン案件だと差分ファイル納品などもちょくちょくあるようです
ネタもと
キャプチャ付き手順
デザイナへのsubversion導入,その後
先月デザイナにバージョン管理(subversion)を使ってもらうために人柱を建てた - LAPISLAZULI HILL#Hatenaというタイトルでsubversionの導入について書いたのだけど,その途中経過とか.前提などは前のエントリィを見てもらうとして,導入の感触や今後の方針などを
現状
- デザイナ8人,全員に導入完了.現場のディレクタにも導入できた
導入時に失敗したこと
- インポート・コミット・更新などの動作はちゃんと伝達できたが,削除・名前変更・移動などに関しては十分に伝えていなかった
- 普段あまり使わないので失念.レポジトリの整合性を保つには必須の概念なので忘れないように
デザイナへの導入の感触
- すんなり使ってもらえている.要因としては
- 最近問題が起こったばかりで思いの外導入への意欲が高かった
- 共有フォルダへのアクセスをしてバックアップよりは,右クリックですぐにサーバに反映ができるTortoiseSVNのほうが手間が少なく使い勝手が良かった
- 目立ったコンフリクトがおきていない→いままでも更新対象ファイルの意思疎通は行ってきたのでその延長
現状での問題
- キーボードショートカットなどで更新やコミットができたらもっとよい(特にリテラシが高く作業効率を求めるメンバの意見)
- そのあたりは工夫などをして欲しい.方法はあると思う.提案も引き続きする
- DreamWeaverなどでファイル名の一括変更などの場合に,連続性が無くなる
- これはあきらめる.ちゃんとコメントを書く.連携するのが最高だが…
- サーバへのアップロード時にいちいちエクスポートするのが面倒
今後の課題
- tagsを使ってないので使うようにする
- コミットログのフォーマットなどを決める
- 現在主に実際にサイトに配置するhtml,css.js,gif,jpgが対象だが,今後は画像制作データなども対象に含めていく
- subversionを導入した形でのフローの見直し
- 逆に目立った問題が出ていないので,出た場合の対処方法
概ね順調です.慣れてしまえばいい環境になると思うのですが,この先バージョン管理が無いところに行ったときに困りそうなのは心配です
(追記2007/08/14)
# 2007年08月14日 terazzo 外部ツールのリネームへの連動が課題か。公開に関してはサーバにもsvnを入れてCGIでキックしてリポジトリから直接exportするのはどうだろう。
http://b.hatena.ne.jp/terazzo/20070814#bookmark-5561060
この方法はかなり良いと思いました.案件ごとのディレクトリ作ったり,タグを切ったりするのはCGIからできれば便利だと考えていました.Capistranoなどのデプロイのシステムと連携するのが理想のような気がします.リリースミスも少なくなるでしょうし,ミスしてもすぐに戻せるのはよいですね.メインの作業ではないので少しずつでも作っていこうと思います.ありがとうございました
subversionのプロパティを設定して,tracと連携
ソフト/Bug Tracking/trac/TortoiseSVNやSubclipseとチケットを連動 - discypusを参考にTortoiseSVNから設定した.作業コピーのディレクトリのプロパティにあるSubversionタブのpropaty(属性)で属性を追加する
まずはbugtraqとの連携.tracを使っているのでその設定を.http://example.com/tracにあるhogeというプロジェクトの場合の設定.warnifnoissueはコミットに必ずチケットのidが必要なときにtrueにする
bugtraq:url http://example.com/trac/hoge/ticket/%BUGID%
bugtraq:label Ticket id
bugtraq:message (#%BUGID%)
bugtraq:warnifnoissue true
TortoiseSVN専用のプロパティtsvn:logtemplateを設定すればログのテンプレートも設定可能です.やってませんが
http://tortoisesvn.net/docs/release/TortoiseSVN_ja/tsvn-dug-propertypage.html#tsvn-dug-propertypage-tsvn-props
1.5になると「Web ベースリポジトリビューアとの統合」も可能になるみたい
http://tortoisesvn.net/docs/nightly/TortoiseSVN_ja/tsvn-dug-repoviewer.html
細かいところで進化を続けてますねぇ
デザイナにバージョン管理(subversion)を使ってもらうために人柱を建てた
というわけで,説明+ハンズオンを2時間ほどやった.最初に人柱になったデザイナは自分とつきあいもそこそこ長く,コンピュータのリテラシも高め.案件の規模も手頃.経験も積んでいることもあって,利点はすぐに理解してもらえたようだ.うまくいくかはわからないけど始まったのは大きい.今回の導入の前提や考えてるポイントとか列挙
前提
考えてるポイント
- ツールの使い方の伝達
- プログラマが直接教えるより,デザイナ同士で使い方を共有する
- 最初はハンズオンで教えてとっかかりを作る
- 使い始める案件を精査する
- スケジュールが押してる案件や大規模な案件から使い始めることを避ける
- 使い始める人も選び・順番に拡大
- 管理の対象も順番に拡大
- まずは出力したhtmlやDreamWeaverのテンプレートなどを管理するところから始める
- 画像ファイルなどの管理は次の段階で
- 導入を焦らない
- 導入により混乱が見られる場合は運用を即時取りやめる→案件を確実に処理することを重視
- とにかく丁寧にマニュアルなどで解説して,ワークフローに組み込んでいくことが重要
導入例求む
どこかに「こうやって導入して成功/失敗しました」などの情報がないでしょうか.難しいって云われて終わりのところが多いのかなぁ
tracでソースコードの色つけと権限設定
SilverCityのインストール
ソースコードを色付けするためのツール.fedora core 6で.yumに関しては自分のところで足りなかった分.インストールでエラーがでる場合,追加するとよいかも
$ yum install gcc gcc-c++ python-devel $ wget http://downloads.sourceforge.net/silvercity/SilverCity-0.9.7.tar.gz $ cd SilverCity-0.9.7 $ python setup.py install
pythonはアプリケーションのインストール方法がいつでも同じで,わかりやすい.アーカイブが一人歩きしてもインストールできるし.WSGIといった仕組みもいい感じ
PHPのソースを色つきで表示するならtrac.iniを書き換える必要あり.enscript_modesとmime_mapにPHP関連の記述を足す
[mimeviewer] enscript_modes = text/x-dylan:dylan:4, text/x-php:php:4 enscript_path = /usr/bin/enscript max_preview_size = 262144 mime_map = text/x-dylan:dylan,text/x-idl:ice,text/x-ada:ads:adb, text/x-php:php php_path = /usr/bin/php silvercity_modes = tab_width = 4
権限の設定
認証自体はふつうにbasic認証で.権限を設定するためにtrac-adminコマンドを使う.trac立てれば,wikiに説明がある
認証設定に関するオプションはこんな感じ
permission list [user] -- List permission rules permission add <user> <action> [action] [...] -- Add a new permission rule permission remove <user> <action> [action] [...] -- Remove permission rule
tracの権限はパーミッションをグループ化できるので,グループを作って,その単位で権限付与するといい感じ.developerというグループを作って・そのグループに権限を付与して・ユーザにさらにそのグループを付与するという手順になる.ここではdeveloperというWikiの削除権限があるグループを作成した(あまり意味無いけど)
$ trac-admin /var/trac/project permission add developer WIKI_DELETE $ trac-admin /var/trac/project permission add lapis25 developer
- anonymousグループはログインしている人も,していない人も含めたすべての人
- だから先ほど作ったdeveloperというグループはanonymousグループの持っているすべての権限を持っている
- またログインした人というグループもあり,それはauthenticatedという名前でanonymousグループのすべての権限を持っていて,さらに権限を追加することもできる
- anonymousグループの権限が強いので,そのまま使うのならほかのグループを作る意味はあまりないような気もする
SELinuxが導入されているサーバでsubversionのレポジトリを作成
fedora core6で.chconコマンドを使う.selinuxはさっぱりわかっていない
% sudo svnadmin create /var/svn/repos % sudo chown -R apache.apache /var/svn/repos % sudo chcon -R system_u:object_r:httpd_sys_content_t /var/svn/repos
ちょっとメモ.Zオプションでcontextを表示する
# ls # -Z, --context # Display security context so it fits on most displays. Displays only # mode, user, group, security context and file name. % ls -Z drwxr-xr-x apache apache system_u:object_r:httpd_sys_content_t repos # ps # -Z display security context format (SELinux, etc.) % ps Z LABEL PID TTY STAT TIME COMMAND system_u:system_r:getty_t 2131 tty2 Ss+ 0:00 /sbin/mingetty tty2 system_u:system_r:getty_t 2142 tty3 Ss+ 0:00 /sbin/mingetty tty3 system_u:system_r:getty_t 2145 tty4 Ss+ 0:00 /sbin/mingetty tty4 system_u:system_r:getty_t 2146 tty5 Ss+ 0:00 /sbin/mingetty tty5 system_u:system_r:getty_t 2167 tty6 Ss+ 0:00 /sbin/mingetty tty6 system_u:system_r:getty_t 4207 tty1 Ss+ 0:00 /sbin/mingetty tty1 user_u:system_r:unconfined_t 21539 pts/0 S 0:00 zsh user_u:system_r:unconfined_t 21548 pts/0 R+ 0:00 ps Z