仲間内の勉強会でMercurialについて話してきた

書くのがずいぶん遅くなりましたたが、8月25日に仲間内の勉強会で 分散バージョン管理Mercurial+フリーでオープンなリポジトリBitbucketについて発表及び軽いワークショップを行って来ました。私自身、1時間半の長い時間をもらって話すのは初めての事で、それなりに準備していったつもりでしたが、ワークショップ部分でつまづきがありました。

内容

  • 導入
  • 分散バージョン管理について
  • @matheneさんの資料を使って予定でした。(事前にご本人に確認したら、OKとの事だったので)ただ、バージョン管理自体初めてという方もいらっしゃったので、説明を簡単にするために飛ばしました。
  • 図を交えてMercurialの使い方について説明
  • 簡単なワークショップ
基本、以前参加させて頂いた SCMBC NAGOYAの内容を思い出しながら行いました。完成度は とても及びませんけれども。

発表資料

失敗

  • ネットワークがつながらずデモが出来なった。
  • 私の確認漏れです。何のためにWimaxルーター持ってるんだかTT
  • BitBucketの共同開発者の考えを理解していなかった。
  • ハイ!すっかり 「プライベートリポジトリにつき共同開発者4人」と勘違いしておりました。正確には、 1アカウントにつき、共同開発者4人なんですね。一部の人が見るだけになってしまったのが残念です。
  • Linuxで作ったファイル名が、日本語のファイル名だったため、Windows環境の方が文字化け
  • これも、研究不足でした。調べてみると、日本語ファイル名の文字化けはどうしても起こる様で、詳しくは時節で説明します。
などなど、いろいろと失敗しました。ただ、話を聞いてくださった方達が、 「ああいったハプニングはあって当然、むしろ楽しい」と言っていただけたのがありがたかったです。

フォロー

Mercurialの日本語ファイル名について
詳しくかかれていた方がいらっしゃったので、リンクをアップしておきます。
Mercurialの文字コード設定
今回の勉強会では、LinuxMacWindowsもいらっしゃったので、UTF-8設定が必要でしたね。
同一ネットワーク内のリモートリポジトリの作成について
質問がありましたので、試しにやってみました。gitには、こういう時のためのリポジトリ作成のやり方「git init --bare」があるのですけどMercurialには無い様です。ちょっとネットで調べてみると、普通にhg initで作ったリポジトリに対して行える様です。
まずはリモートリポジトリにするサーバーで普通にリポジトリを作ります。
hg init
cloneやpush、pullなどはLinux等ではSSHで、Windowsでは普通のネットワーク参照で到達できます。LinuxでのSSHでの接続の例は以下の様になります。
hg push ssh://ユーザー@IPもしくはサーバー名//宛先ディレクト
scpとは違い、サーバー名とリポジトリディレクトリの指定の間の記号は セミコロンではなくスラッシュになります。
以下に作成できる構成のモデルを図示します。

まとめ

今回は、貴重な経験をすることができました。勉強会参加者の皆さんに感謝しなくてはなりませんね。また、こういった機会があればぜひ参加していきたいと思います。