GitHub は、毎日 5600 万人以上の開発者にサービスを提供し、2 億以上のリポジトリをホストしています。これらのリポジトリのごく一部を除いて、世界中の顧客に驚くべきパフォーマンスでサービスを提供しています。GitHub のような大規模なシステムでは、コードとアーキテクチャのずれというのは限界に達したときに初めて見つかるものです。例えば、何千人もの開発者が毎日同じリポジトリを更新するといったケースです。GitHub は、大規模なモノリポを使用する一部の顧客から、プッシュ操作が失敗するといったパフォーマンスの問題が発生しているというフィードバックを受けました。 そして、それはGitHub においても発生していました。 github/github はGitHub のモノリポですが、私達自身も時々プッシュに失敗することがありました。 調査を開始するにあたり、私たちは社内のチームや顧客

Ruby Core Development 2019というタイトルでRubyKaigiのCFPにプロポーザルを書いたのだが、 もう一つ書いた方の話が採択されたのでその話はしなかった。 さて、今日はRubyコア*1の開発がSubversionからGitに移った節目でもあったので、そっちのトークで言いたかったことの一部を記事にしておこうと思う。 Subversion → Git 移行 [Misc #14632] 去年くらいから @hsbt さんがcgit というGitフロントエンドを使ってGitリポジトリの準備を始め Misc #14632、ついに今日正式にcgitの方がupstreamになった。平成の時代でSubversionでのtrunkのRubyコア開発は幕を閉じた。 この辺を進めているのは主に @hsbt さんな中、僕がこれを偉そうに書いたり今回のRubyKaigiで壇上でアナウンス
code review の reviewer 選出をする時,pull request の内容をざっと眺めてから「この部分だから XX さんかな」とか「あそこのコードは YY さんが詳しいだろう」とか,そういう感じで選ぶことが多くて,つまりは勘と経験で選びがちになってしまう.これについては常々いくばくかの危うさを感じていた. そもそも,「reviewer として誰が最適か」という知識はプロジェクトに長く関わっている人でなければ知りにくいものであり,いわば属人的な知識のひとつだと思っている.プロジェクトからそういった長老的な人がいなくなってしまったら,最適な code review を実施できなくなってしまう可能性がある. 従って,やはり技術で解決ということになる. Facebook が作っている mention-bot というGitHub の bot として動作するやつがあって,これは p
Ruby/Pythonで依存パッケージをローカルインストールして開発環境構築やCIビルドを高速化する By raimon, 2015-11-08(日), in category Git 一般的にRuby/Pythonで書かれたアプリケーションの依存パッケージはBundler/pipでインストールされるが、rubygems.orgやPython Package Indexからの取得・展開に時間がかかり、またこれらの中央サーバがまれにダウンしていると何もできなくなってしまうケースがある。 回避策の一つとして、依存パッケージをGitリポジトリに飲んでしまい、パッケージリポジトリとは通信せずローカルインストールで済ませる、いわゆるvendoring(ベンダリング)と呼ばれる方法がある。 サンプルリポジトリ それぞれのサンプルとなるGitリポジトリをGitHubに作成した。ruby-local-g
About the content This content has been published here with the express permission of the author. Carthage is a new dependency manager for Objective-C andSwift projects, intended to be thesimplest way to add frameworks to aCocoa application. Carthage works by delegating tasks to Xcode and Git, minimizing new concepts as much as possible, so you can continue to use the tools you’re already famil
インフラストラクチャー部の菅原(@sgwr_dts)です。 インフラストラクチャー部のメンバーはオペレーションのため強力な権限のMySQLアカウントを使用していますが、サービス開発をするエンジニアも業務のためにサービスのDBの参照・更新権限を持ったアカウントが必要になることがあります。セキュリティやオペレーションミスのことを考えると、すべてのエンジニアのアカウントをスーパーユーザーにするわけにはいかないため、都度適切な権限を付与していますが、手動での作業は地味に手間がかかります。 そこでクックパッドではMySQLのアカウント情報をコード化し、リポジトリで管理するようにしています。 gratanによるコード化MySQLのアカウント管理はgratanという自作のツールを使って行っています。 gratanを使うとMySQLのアカウントをRubyのDSLで記述することができるようになります。
必要になったのでそういうものを作りました。 https://github.com/kyanny/git-prune-remote-branch パスの通ったところに置いて Git のワーキングディレクトリで実行すると master と develop にすでにマージ済みのリモートブランチを全部削除します。 --noop で dry-run モードになるので実際に消す前に確認もできます。なんで master だけじゃなく develop も?というと、僕のチームで gitflow を使っているからです。 $ git clone git://github.com/kyanny/git-prune-remote-branch.git $ git-prune-remote-branch --noop $ git-prune-remote-branchgit push --mirror じゃダメなの
GitHubのイベントである「TheGitHub poweredby Agile渋谷 〜日本のSOCIAL CODINGの今を見る〜」の懇親会を受付始めました@HIROCASTERでございませう。 イベント参加者以外でも参加可能のため、イベントは補欠だったけど、どういうふうにGitHubを使っているのか聞きたい人は、ご参加ください。(イベント参加者優先で、空気読んで登録してください) イベントではGitHubの話をするので、Gitが使えることが前提になっています。 そこで、Gitの基本操作方法を学べる「githug」を紹介します。 githug Gazler/githug 「githug」はgitの基本操作を実践的に学ぶための良いソフトウェアです。 特に他のバージョン管理システムを使ったことのある人がgitの基本操作だけを学ぶだけならちょうど良い。 インストール gemで公開されているの
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です -はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。はてなグループに投稿された日記データのエクスポートについて -はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記はてなグループ日記のエクスポートデータは2020年2月28
欠勤してるのにブログを書いていて解雇された、という話があったなー、ということを思い出しながら、このエントリを書いてます。(体調悪くて会社休んだ上に、まだ回復してない。) 最近仕事でGitHub を利用してるのですが、デプロイもGitHub 経由なため、GitHub がダウンしてしまうと、緊急で直さないといけないバグが発生したりすると困るなー、とか、それ以外にも、バックアップリポジトリがあればいろいろ安心かな、ということで、Git リポジトリを同期するツールをつくってみました。 https://github.com/mizzy/gitpusherGitHub の自分のアカウント(または指定された Organization)以下のリポジトリを、すべて Bitbucket に同期する、という動作をします。 今のところ、GitHub から Bitbucket への同期しか対応してませんが、逆
コミットメッセージの書き方ではコミットをわかりやすくするためには以下の2つの条件を満たす必要があると書きました。 コミットの内容が分かりやすく説明されていること コミットの内容が小さくまとまっていること このうち「コミットの内容が分かりやすく説明されていること」についてはすでに説明済みです。今回は「コミットの内容が小さくまとまっていること」について説明します。 めざすところ 単純にコミットの内容を小さくするだけではわかりやすくなりません。それでは、どのような基準で小さくすればよいのでしょうか。 よく言われることは1つのコミットには1つの小さな論理的にまとまった変更だけにする、というものです。たしかにこれは重要です。しかし、これだけを基準とすると、人によっては大きめなコミットになってしまいます。人それぞれで論理的なまとまりの大きさが異なるからです。 1つのコミットでどうすればよいかを考えるの

2月16日、17日の2日間、東京・目黒でDevelopers Summit 2012(通称デブサミ)が開催されました。2日目の午前中に、IIJが現在クローズドβとして開発中のPaaS「MOGOK」の発表がありました。IIJの藤原秀一氏(プラットフォームサービス部 プラットフォーム開発課 課長/Rubyアソシエーション)によるサービス紹介です。 MOGOK自体は、すでに昨年9月に概要が発表されていて、@ITでも報じています。今回の講演で少しサービスの輪郭が具体的に見えてきました。箇条書きでまとめると以下の通りです。 現在クローズドβ版は50人ほどに使ってもらっている 2012年の1Qか2Q辺りにオープンβ、年内に有償サービス提供 オンラインサインアップ(SDKをダウンロード可能) GitリポジトリをIIJ側に用意(1アプリあたり100MB) Gitリポジトリから実行環境への自動デプロイ機能

ソースコードのなかでバグが多いのは、より高頻度に、かつ最近になって集中的に直している部分。これが、グーグルで採用された「バグ予測アルゴリズム」であることを、先月の記事「グーグルはコードの品質向上のため「バグ予測アルゴリズム」を採用している」で紹介しました。 そのバグ予測アルゴリズムを実装したツール「bugspots」がオープンソースとして公開されています。 gitのレポジトリを分析 bugspotsはRubyで記述されており、gitのレポジトリから履歴を読み込んで分析し、どのモジュールにバグが含まれている確率が高いかを示してくれます。 以下のようにインストールして実行(説明ページから引用)。 $> gem install bugspots $> git bugspots /path/to/repo $> git bugspots . # (in current git directory)

釣りタイトルでスミマセン。こういうことなんです。Linuxの生みの親であるリーナス・トーバルス氏は、Linuxカーネルというホームランを打ち放ってオープンソース界の殿堂入りをしましたが、比較的最近になって分散バージョン管理システムの「Git」をサクッと実装して、これがまた大きなヒットとなっています。Linuxカーネルの開発に携わっている人なら、リーナスのエンジニアとしての腕を認めるところかもしれませんが、そうでない一般人には「幸運児」にも見えかねません。 「みんなx86で動いて自由に使えるUnixが欲しかっただけ。そのタイミングでおもちゃとしてのLinuxが登場したからみんな飛びついた。ちょうどインターネットが流行し出してサーバも必要だったし、ふと見ればインテルのプロセッサが安いわけ。速いわけ。もうx86サーバでいいんじゃね?」 と、時代の波に乗った印象があるからです。ところが、リーナ

1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く