InfoQ

News

GitHub - RailsベースのGitリポジトリホスティングサービス

作者 Mirko Stocker, 翻訳者 角谷 信太郎 - (株)永和システムマネジメント 投稿日 2008年3月27日 午後12時12分

コミュニティ
Ruby
トピック
Ruby on Rails,
テクノロジー,
オープンソース,
コラボレーション
タグ
Rails,
Subversion

Git(サイト・英語)は分散バージョン管理システムである。元々GitはLinux TorvaldsがLinuxカーネルのソースコードを管理するために書かれたものだが、Linux以外のプロジェクトでも採用されている。Ruby界隈ではRubinius(サイト・英語)やMerb(サイト・英語)での利用が知られており、Capistrano(サイト・英語)やVlad the Deployer(サイト・英語)といったデプロイツールもGitに対応している。

繰り返しになるが、Gitは分散バージョン管理システムである。その意味するところは、中央集権的なマスターリポジトリが存在しないというだけに留まらない。これは、ユーザの手元にあるリポジトリクローンが独立したリポジトリになれるということであり、クローン同士で変更点の差分をマージできるということである。 

GitHub(サイト・英語)はgitリポジトリのホスティングと、リポジトリへのWebインターフェイスを提供するサービスだが、GitHubにはSourceForgeやGoogle Codeとは異なる独自のセールポイントがある。それは、GitHubでは他のプロジェクトからフォークすることが簡単だということだ。プロジェクトへのコントリビューションも同様に簡単だ。プロジェクトのWebサイトにある"fork"ボタンをクリックして、ソースコードをチェックアウトする。変更点をフォークしたリポジトリにコミットしたら、Gitのビルトイン機能である"pull request"を使ってプロジェクトオーナーにマージをリクエストする。GitHubが作り出したのは、ハッカー向けのMySpace(source)だ。

GitHubでフォークすることは、Myspace(またはFacebook)で「フレンドになる」ことによく似ています。いずれもソーシャルグラフのあるノードから別のノードへと線が引かれるのです。

もちろんGitHubプロジェクトもGitHubでホスティングされているが、リポジトリはプライベートな非公開リポジトリになっているので閲覧できない。GitHubではオープンソースプロジェクトは無料で(source)ホスティングされるが、プライベートなリポジトリはそうではない。 GitHubの開発者のひとりであるChris Wanstrathに確認したところ、プライベートリポジトリへ課金する計画は、無料ホスティングの資金調達のためであるとのことだった。

確かに、そうする予定です。現在の顧客向けの業務には、FamSpam(サイト・英語)の開発があります。GitHub自身の開発もそうです。私自身がGitHubのプライベートリポジトリのおかげで何度も救われました。時間の節約とチームメンバとの情報共有が大事だと思う人になら、きっと価値があると思ってもらえるはずです。

Chris WanstrathはGitHubの内部的な構成についてもInfoQに語ってくれた。

GitHubのほとんどはRailsで実装されていますが、post-commit でのリポジトリに統合させるための小さなアプリケーションはすべてMerbです。他にも、PythonのPygments(サイト・英語)をシンタックスハイライトに使っていますし、Ara T. HowardのBjプラグイン(サイト・英語)に自作のキューイング用Rubyスクリプトを追加して使っています。それから、GitとのインターフェイスはもちろんRuby(source)です。Gritを使っています。

GitHubにはすでにいくつもの見栄えのする機能が用意されている。リポジトリブラウザは当然のこととして、プロジェクトのWikiもあれば GitHub gem(source)というシェルからGitHubを快適に使うためのツールもある。今後も多くの機能が追加される予定である。

チケットシステムへの要望が強いので、シンプルなものを提供すべく作業中です。他にも、RubyGemsサーバの準備や、他のサービスとの連携を容易にするためのpost-commitフックをあらかじめ用意するといった作業もしています。自分ではGitデーモンを立てられないとか、立てたくないといった場合には私たちのリポジトリを使ってみてください。

それから、GitHubを利用いただいている企業に役立つような機能も開発中です。

あとは、APIも公開予定です。読み取り専用のAPIの一部は近いうちにお見せできると思います。その後に、何らかの"書き込み"ができるようにします。新着フィードへのお知らせの投稿やメッセージの送信など、他にもクールなことをAPI経由でできるようになるでしょう。
GitHubの公式リリース日程はまだ存在していないが、3月の終わり頃にローンチするだろうと予測されている(現在でもサイトにはアクセスできるが、ユーザ登録は招待制である)。より詳しく知りたければ、公式のGitHubウェブサイト(英語)かGitHubブログ(source)が参考になるだろう。GitHubでホストされているオープンソースプロジェクトの一覧も公開されている(source)

原文はこちらです: http://www.infoq.com/news/2008/03/github-git-repository-hosting

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

ジャンル別一覧

BlazeDSとAMFでWebとデスクトップのアプリケーションを構築する

現在のRIAアーキテクチャにおいて、クライアント/サーバーの通信は重要な位置を占めています。本稿では、James WardとShashank TiwariがアドビによるオープンソースのBlazeDSメッセージングサーバーの世界へ飛び込みます。

業務ソフトに手を加えずに暗号化を実現する~秘文の挑戦~

hibun

ウィルス対策ソフトや情報漏えい防止用のソフトは、いわば影の存在です。ユーザの操作性やGUIを工夫する以上に、いかに目立たない存在となるかにその技術を注ぎ込んでいます。ここでは日立ソフトが開発した「秘文」の事例を紹介します。

Google Chartとgchartrbの紹介

Google Chartは、チャートを作成するためのWebサービスです。本稿では、Google Chartのインターフェースと、Rubyコードから簡単にチャートを生成することができるgchartrbライブラリの説明をします。

SOAを超えて: 動的な業務アプリケーションのための新しいエンタープライズアーキテクチャフレームワーク

全二回からなるこの記事では、ダイナミックビジネスアプリケーション(Dynamic Business Applications:DBAs)の開発についての全体的な眺望を、アーキテクチャと方法論の観点から見ていくことになります。我々のゴールは、「ビジネスの変化や、その他に必要とされる変更に対して、いかにして容易に適応できるアプリケーションを構築していくか」を導きだすことです。

ESB接続形態のオルタナティブ

本稿では、Adrien Louis氏がESBベースのSOAに対する2つの接続形態についての賛否について説明しています。その2つとは、会社での単一のESB対「部門毎」に相互接続するESBによるシステムです。

AjaxプログラマのためのJavaOne2008 -GrizzlyでComet!-

誕生から2年を経てCometは「何が出来るのか」という議論から、「いかに実現するか」という議論に関心が移ってきたように見えます。そこで本稿では同じくJavaOneで数多く取り上げられたNetBeans 6.1とGlassFish v3を使いながら、サンプルを交えてCometを解説していく事にします。

SharePoint Webサービスを始めましょう

この記事では、WSS3とMOSS 2007に難しい設定など一切せず、すぐに利用可能なWebサービスと、Javaと.NETからそのWebサービスを消費する方法に目を向けます。

レトロスペクティブのプライムディレクティブに対する問い

この記事の始まりは、知的で思慮深い人たちの魅力的なグループが食事会を終えて話をしているところです。話はレトロスペクティブ(振り返り)プロセスの要であるプライムディレクティブ(最初の指示)に及んでいます。