connpass(告知サイト)
http://connpass.com/event/911/
togetter(ツイートまとめ)
http://togetter.com/li/387248
![]() | エキスパートPythonプログラミング (2010/05/28) Tarek Ziade 商品詳細を見る |
場所は目黒のバリストライドグループです。
今回は「第8章 コードの管理」が対象範囲でした。
最初に、バージョン管理システム(VCS)のお話が出てきます。
中央集中型システムはCVSやSubversion、分散型システムはGit, Mercurialあたりが有名ですかね。
んで、この本はMercurialに焦点を当ててます。
しかも今日はMercurialのコミッターである藤原克則さん(@flyingfoozy)さんも参加されてました。
私、Mercurialは使ったことなかったので、この本が初でした。
んで、実際に本に沿ってMercurialをUbuntu Linuxにインストールし、動かしてみました。
■1.Mercurialのインストール
まず、UbuntuにMercurialをインストールします。
apt-get install mercurial |
■2.リポジトリへファイルをコミット
んで、本に沿って設定を進め、リポジトリを作成します。
次にファイルをリポジトリにコミットしようとすると、以下のエラーが表示されました。

「ユーザ名が未指定です」とのエラーメッセージを元にググって原因を調べると、どうやら
設定ファイルにユーザ名を記載しておく必要があったようです。
ホームディレクトリに .hgrc というファイルを作成し、以下を追記することでエラーは出なくなりました。

■3.簡易Webサーバの起動とリポジトリ閲覧
以下のコマンドで、Mercurial自身が持つ簡易Webサーバが起動し、リポジトリをブラウザから閲覧できます。
hg serve |

■4.Webサーバ(Apache)の設定
MercurialのCGIスクリプトを実行するため、Webサーバを設定します。
Apacheのインストールが必要になりましたので、以下のコマンドでインストールします。
apt-get install apache2 |
次に /home/mercurial/atomisator/apache.confファイルを作成します。

↑の黄色い線の部分ですが、本から一部設定を変更しています。hgwebdir.cgiでなく、hgweb.cgiとしました。
hgwebdir.cgiが無かったからです。これで大丈夫みたい。
作成できたら本のとおり、 /etc/apache2/sites-enabled/の下にシンボリックリンクを設定しました。
あと、/home/mercurial/atomisator/hgweb.cgi を以下のように修正しています。configファイルのパス修正。
こうしないと怒られます。

あと、本のとおり /home/mercurial/atomisator/hgweb.config を作成します。

■5.MercurialのCGIスクリプトをApache上で実行
これらを設定後、http://localhost/hg にアクセスすると、以下の画面が表示されました。

ちゃんとMercurialのCGIスクリプトがApache上で動作しているようです。
この辺までが、実際に自分で本を写経して、Mercurialを触ってみた内容でした。
以下は、読書会のメモ。
■SubversionからのVCS移行で、bzrにするかhgにするかのツイートまとめ
togetter: svnからの切り替え先にbzrを検討するなど(最終的にはhgになった‥)
■Mercurialの要望とかは、ハッシュタグ #mercurialjp へツイートするとMercurialコミッターさんが拾ってくれるらしい。
■Git vs Mercurial
・GitとMercurialは、用語が対応してないので注意が必要。
・SubversionとMercurialは、用語とかコマンドとかが似ている。
→ SubversionからMercurialへの移行は、Gitへの移行より楽かも?
・Mercurialは、コマンドで簡略なことしかできない。
→ 人にMercurialを教えるのは楽かも。基本的なことしか最初はできないので。
・GitとMercurialでの違いで大きいのは、ブランチ戦略。
・Mercurialは、「標準」と「拡張(エクステンション)」がある。
- Mercurialは「標準」のままでは使えないようになってる機能がけっこうある。
- 初心者が触らなくても良いところは、「標準」では提供してない。
- 「拡張」を有効にすることで使えるようになる機能がある。
・Mercurialは、GUI(TortoiseHg)が使いやすい。
・Gitは、Githubが使えるのが大きい。Githubが使えないと、Gitの価値は軽減する。
・Gitは学ぶのが大変。
・GitはWindowsだと使いにくい。
■Mercurialのコマンドはメッセージが100%日本語化されている。
set LANGUAGE=ja と設定すると、Mercurialのプロンプトが日本語化される。
■Mercurialのコマンド実行時に -v オプションを付けると詳細なマニュアルが出る。
(例:hg -v help add)
■8.2節で紹介されている継続的インテグレーションツールのBuildbotは使わないほうが良い。
セットアップが大変なので。ニーズが発生したときに触るくらいで良い。
普段は、継続的インテグレーションツールとしてJenkinsを使うのが良い、とのこと。
■清水川さんの「Python Developers Camp 2008」でのテスト自動化に関する発表スライド
今日の読書会でチラッと触れられていたスライドです。Buildbotとか、いろいろ出てきてますねー。
■10月にTokyoMercurialという勉強会がある。
TokyoMercurial#6 : http://connpass.com/event/1162/
■PyCon JP 2012で「分散バージョン管理システムの組織化」というセッションがあった。
http://2012.pycon.jp/program/sessions.html#session-15-1430-room230-ja
(セッションの動画とスライドが置いてあります)
■継続的インテグレーションは「Travis CI」が便利らしい。
Travis CIってのを始めて知りました。
どうやらGitHubのリポジトリをビルドして結果を通知してくれるWebサービスのようです。
Travis CI: https://travis-ci.org/
懇親会&LT
読書会終了後は、その場で懇親会です。この日はお寿司とピザでしたー。
あと、希望者のLTタイムがありました。どのLTも面白くて興味深かったです。
LT1 @Alice1017さんの「蜘蛛の巣から抜け出すには?」
LT2 @hirokikyさんの「新卒から半年で会社辞めた」

(写真は @takanory さんのツイートより)
LT3 @tfmagicianさんの「Scrapyネタ」
・ScrapyはPython製のオープンソース・ソフトウェアらしく、Webサービスから必要な情報を抜き出したり、自動操作をしたりするスクレイピングと呼ばれる技術らしい。
参考: http://www.moongift.jp/2009/10/scrapy/
・Scrapyの公式サイト: http://scrapy.org/
・Rubyだと、Nokogiriとかが該当するみたい。 http://route477.net/rubyscraping/
★感想:
今回はPython自体というよりもバージョン管理しシステム、特にMercurialメインの会でした。
最近は自分もSubversionとかJenkinsとかを使ってるし、Gitとかにも興味あったので、Mercurialの話は
とても興味深かったです。
GitとMercurialの比較の話とかもいろいろ聞けたし、Mercurialコミッター藤原克則さん(@flyingfoozy)さんの生の話とかはとても興味深かったです。
運営や発表の皆さん、ありがとうございました。次回も楽しみにしてます。