仲間内の勉強会でMercurialについて話してきた
書くのがずいぶん遅くなりましたたが、8月25日に仲間内の勉強会で 分散バージョン管理Mercurial+フリーでオープンなリポジトリBitbucketについて発表及び軽いワークショップを行って来ました。私自身、1時間半の長い時間をもらって話すのは初めての事で、それなりに準備していったつもりでしたが、ワークショップ部分でつまづきがありました。
内容
- 導入
- 分散バージョン管理について @matheneさんの資料を使って予定でした。(事前にご本人に確認したら、OKとの事だったので)ただ、バージョン管理自体初めてという方もいらっしゃったので、説明を簡単にするために飛ばしました。
- 図を交えてMercurialの使い方について説明
- 簡単なワークショップ
発表資料
失敗
- ネットワークがつながらずデモが出来なった。 私の確認漏れです。何のためにWimaxルーター持ってるんだかTT
- BitBucketの共同開発者の考えを理解していなかった。 ハイ!すっかり 「プライベートリポジトリにつき共同開発者4人」と勘違いしておりました。正確には、 1アカウントにつき、共同開発者4人なんですね。一部の人が見るだけになってしまったのが残念です。
- Linuxで作ったファイル名が、日本語のファイル名だったため、Windows環境の方が文字化け これも、研究不足でした。調べてみると、日本語ファイル名の文字化けはどうしても起こる様で、詳しくは時節で説明します。
フォロー
Mercurialの日本語ファイル名について
詳しくかかれていた方がいらっしゃったので、リンクをアップしておきます。Mercurialの文字コード設定
今回の勉強会では、LinuxもMacもWindowsもいらっしゃったので、UTF-8設定が必要でしたね。
同一ネットワーク内のリモートリポジトリの作成について
質問がありましたので、試しにやってみました。gitには、こういう時のためのリポジトリ作成のやり方「git init --bare」があるのですけどMercurialには無い様です。ちょっとネットで調べてみると、普通にhg initで作ったリポジトリに対して行える様です。まずはリモートリポジトリにするサーバーで普通にリポジトリを作ります。
hg initcloneやpush、pullなどはLinux等ではSSHで、Windowsでは普通のネットワーク参照で到達できます。LinuxでのSSHでの接続の例は以下の様になります。
hg push ssh://ユーザー@IPもしくはサーバー名//宛先ディレクトリscpとは違い、サーバー名とリポジトリディレクトリの指定の間の記号は セミコロンではなくスラッシュになります。
以下に作成できる構成のモデルを図示します。