彷徨えるフジワラ

年がら年中さまよってます

SCMBootCamp in Tokyo 3

"SCMBootCamp in Tokyo 3" に参加してきた (togetter によるまとめ)。

主催者の id:kyon_mm 氏はじめ、運営スタッフおよび参加者の皆様、お疲れ様でした!

東京開催は、昨年 11 月の in Tokyo 2 以来の八ヶ月ぶり。

今回も基調講演枠でお話をさせて頂くことに。

この手の勉強会では、『周囲の構成管理ツール導入状況が思わしくない』という話を多々聞くので、そんな周囲を説得する材料になればということで準備したネタだったのに、参加者に聞いてみたら、思った以上に構成管理ツールが周囲に浸透している参加者だったのは、嬉しい話であるけれど、大誤算。

じゃぁ、真中ぐらいの話はバサっと削ってしまうか!?などと思いつつも、まぁ、そんなこともあるよね!ということで、少々時間オーバーしてしまったものの、発表は無事終了。
その後は、実際に手を動かす演習に。

以下、思ったこと、気が付いたことなどをつらつらと。

演習のチーム分けに関して

今回、僕の担当したテーブルは、参加者の経験レベルが結構バラバラだったので、逆に今後の SCMBC でのチーム編成に関する問題点が、浮き彫りになった感じ。

その分、参加者の中には物足りない思いをした方も居たかもしれない点は、大いに反省してます。御免なさい…… orz

例えば、同じ『対象 DVCS ツール初心者』でも、『DVCS 自体が初めての人』(VCS 初心者含む)の場合は、『厳密な説明』よりも『DVCS の基本的なメンタルモデルを作りやすい説明』の方が適切な筈だし、そちらの方向で説明しないと、肝心の DVCS らしい使い方まで、時間枠内で到達しきれない

その一方で、『他の DVCS ツール使用経験あり』な『対象 DVCS ツール初心者』の場合、他 DVCS との差を明確に理解する上では、どうしても『厳密な説明』が必要に。その一方で、最悪時間枠内にリポジトリ連携等の話まで行けなくても、ある程度は自力で何とかなるだろうから、必ずしも枠内で全範囲を網羅する必要は無いと思われる。

『対象 DVCS ツール経験者』の場合でも、『トピックブランチやリリースブランチを用いた運用』経験者もいれば、『単一ブランチでの運用のみ』や『一人開発で衝突解消経験も殆ど無い』レベルまで、結構な経験差がある筈。

但し、こちらの場合は:

  • 経験値の低い人は、専ら『並行作業』〜『ブランチ運用』の修得
  • 経験値の高い人は、連携作業でのトラブルシューティングノウハウや、MQ/graft/rebase 等のより高度な機能の修得

といった感じで、スキルレベルが混在していても、それなりに回せそうなイメージが。

経験者の中にも、『DVCS 自体が初めての人』と一緒のペースでも良い、と言ってくれる人が多いとは思うけれども、僕個人としては、折角参加してもらうからには、なにがしかの『スキルレベルに応じた新しい知見』を持ち帰って欲しいと思っているので、次回はもうちょっとチーム/テーブル毎のレベル分けを、しっかりやった方が良いと思う。

とりあえず『DVCS 自体が始めての人』『対象 DVCS ツール経験者』『対象外 DVCS ツール経験者』の、最低3種類ぐらいには分けたほうが良いのではなかろうか。

TortoiseHg での日本語ヘルプ参照

CUI でのコマンド実行がメインの利用者の場合、"hg help" でコマンド/各種トピックのヘルプを日本語で参照できるけれど、TortoiseHg の場合、『TortoiseHg 自体のヘルプ』(『ヘルプ』メニュー経由で表示されるアレ)は英語だし、『ヘルプだけコマンドラインで見てね?』というのも不親切。

しかし、mercurial-uses.jp で公開している日本語ヘルプはネットワーク接続が有効で無いと使えない点で、可用性に若干問題が。

そこで、Mercurial の簡易 HTTP サーバ機能を利用して、以下の要領で日本語ヘルプを参照するのがお勧め。

  1. TortoiseHg 経由でウェブサーバを起動
  2. ブラウザで "http://localhost:8000/" をアクセス
  3. 画面左側の "help" リンクをクリック

ちなみにヘルプの日本語表示には言語設定が必要なので忘れないように。

Windows 環境の場合、システムプロパティ設定からの環境変数設定が必要

TortoiseHg ワークベンチでの各種操作に関する備忘録

● 対象ファイルの複数選択

『作業ディレクトリ』選択時に左下に表示される『ファイル一覧』ペインでは:

● 改名/コピー

『ファイルの改名/コピー』操作は:

  1. 表示対象の絞込み指定(『ファイル一覧』ペイン上部の "?"マークのアイコンのプルダウンメニュー)で "C"(改変無し) 表示を有効化
  2. ファイル一覧から改名/コピー対象を選択
  3. コンテキストメニュー(右クリック)から『名前を変更』を選択
  4. ダイアログ上の "Copy source -> destination" をチェックすると『コピー』、しない場合は『改名』へと挙動が変化(ウィンドウタイトルやボタンの表示も変化)
  5. 『名前の変更』ないし『コピー』ボタンで実行

という手順で実施可能。

但し、複数選択時は、『ダイアログで改名/複製先を個別に指定』という UI の性質上、改名/コピーはできないので注意。

● 複数ヘッド

TortoiseHg ワークベンチでは、ヘッドの数を増やすコミット操作を行っても、特に警告等は表示されない。

これは、(1) Mercurial 本体側の "created new head" がそもそも "status" 情報ではあっても "warning" 情報ではないのと、(2) 仮に "warning" 情報であっても、このケースでの実行パスでは、TortoiseHg が特に Mercurial の "warning" を拾ってないらしい(西原さん情報)のが原因の模様。

もっとも、ヘッド以外に update した場合は、履歴表示画面にその旨が赤書きされているので、注意して見ていれば気付く筈。

TortoiseHg のライブ障害修正

今回は、TortoiseHg コミッタの西原氏が同じテーブルだったので、コレ幸いとばかりに、TortoiseHg に関する疑問は西原氏に丸投げすることに。色々無茶振りしてしまって本当に御免なさい orz > 西原氏

そんな中、以下のような TortoiseHg の潜在的な障害を発見。

後者は、発生ルート/原因の特定に随分手間取ったため、修正自体は後日になってしまったけれど、前者に関しては『障害発見』即『障害修正』という、すばらしいライブ修正っぷり。

和の心

僕のテーブルは、先述したように、初心者チームと経験者チームに分かれて作業を進めたのだけれど、『改行形式』や『文字コード』の齟齬は、むしろトラぶった方が良い経験になるだろうという意図から、経験者チームにはこれらの注意事項を話さずに進めてもらうことに。

ところが、演習枠終了後に、これらの問題発生に関して聞いたところ、特に問題にはならなかったとのこと。

今回は運が良かったのか、と思ったら:

  • 経験者チームは三人中二人が Mac 利用者
  • 唯一の Windows 利用者が二人に気を使って『LF 改行』+『UTF-8 符号化』を使用
  • 結果としてトラブルは発生せず

という、『海外から見た日本人の美徳』的な理由で回避できたらしい(笑)。