パスワードを忘れた? アカウント作成
9795588 story
Google

Google社内でのソースコード管理には「ブランチ」は使わない 33

ストーリー by hylom
Googleの樹の下で 部門より
あるAnonymous Coward 曰く、

Googleが開催している開発車向けイベントGoogle Test Automation Conference(GTAC)にて、Google社内での開発手法について発表されていたとのこと(発表資料発表動画Google の巨大レポジトリとブランチ無し運用 — Kato Kazuyoshi)。

これによると、Googleでは40以上のオフィス、1万5000人以上の開発社、5000以上のプロジェクトが存在するそうなのだが、これらプロジェクトで開発されるコードはソースコード管理システム内の単一のツリーに格納されており、どのプロジェクトも同一のリポジトリを利用する形になっているらしい。さらに、ソースコード管理システムのブランチ機能は利用せず、コミットはすべて最新バージョン(head)に対して行われるルールになっているそうだ。

これにより、プロジェクト間での使用するライブラリのバージョンが統一できる点がメリットになっている模様。ただ、こういった開発スタイルはGoogleだからこそできるわけで、さまざまな関係者が入り乱れ、そのスキルレベルも異なる日本の開発会社ではなかなか導入は難しいような気がする。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • スキルレベルが一定であることと、余計なブランチ作って管理を複雑にすることはない、みたいな当たり前の一般論と、何の関係があるのだろう・・・。

    もともと、元の発表資料の主題はテストエンジニアリング、自動テストに関するトピックが大半で、ブランチがうんぬんの話とはあんまり関係ない。

    Chrome 28 beta 作ってる間に、Chrome 26 のリリース準備してるとか、(バギーなものをリリースしてしまうと影響が大きいので当然ですが)分けるべきところは分けて、慎重にやってるようにも見えます。

    この動画と発表資料から学ぶべきことは、まさにテストのことであり、ソースコード管理などはそれに比べれば些細な話。

  • by Anonymous Coward on 2013年08月13日 12時11分 (#2439974)

    1万5千人以上いてスキルレベルが皆同じぐらいというのはちょっと信じがたいのですが。

    • 「皆同じ」じゃなくて「低い奴はクビになる/低い奴にはコードを書かせない」じゃね?

      日本は低い奴に書かせて、高い奴に尻ぬぐいさせるから……
      #そして一番低い奴らがマネージャーになる。

      親コメント
    • by Anonymous Coward

      同じ事を思った。
      なんか「Googleだからこそできるわけで」っていう神話で誤魔化してるよね。

    • by Anonymous Coward

      必要になったら新しいプロジェクトを立ち上げるのです。

    • by Anonymous Coward

      全世界から広域募集したなかから上澄み採用しているのだから
      これに満たない要因は足きりされて採用していないってことだよ。
      だからもんだない。

      ところが日本だと・・・。

    • by Anonymous Coward

      そもそもレベルが統一されてるって日本語がおかしいだろ。

      • by Anonymous Coward

        レベル50:戦士
        レベル50:勇者
        レベル50:僧侶
        レベル50:おまえら

        あれ?統一されてね?それとも僕が日本人じゃない?

  • Webアプリ (スコア:2, すばらしい洞察)

    by firewheel (31280) on 2013年08月13日 15時01分 (#2440141)

    常に最新バージョンをサーバーに置くことのできるWebアプリだからということは
    最低限必要な条件だと思う。

    出荷済みの複数のバージョンのアプリがあって、それぞれにバグフィックスを
    していけば、自然とブランチが増えていく。

    とはいえ、Webアプリでもブランチ使ってる所は多そうだけどな。

    • by SteppingWind (2654) on 2013年08月13日 15時22分 (#2440164)

      出荷済みの複数のバージョンのアプリがあって、それぞれにバグフィックスを
      していけば、自然とブランチが増えていく。

      そういう意味では, 顧客が1つしかない社内向けシステムでブランチが無いのは自然ですね.

      # 事業部が違えば別会社も同然なんてとこもあるけど

      親コメント
      • by jaos (45820) on 2013年08月13日 22時24分 (#2440499) 日記

        全然自然じゃない。
        現行版の保守ブランチと次期版のブランチとって感じでやっぱり使う場合は使う。

        親コメント
        • by t-wata (10969) on 2013年08月13日 23時47分 (#2440562) 日記

          保守ブランチは必要になったときに作ればいいから、都度作る必要はないです。
          次期版はHEADで行うとして、次期版の開発期間が十分短い、かつ何度も更新を繰り返すなら、自然とHEAD一本になるかと。

          親コメント
        • by Anonymous Coward

          > 次期版のブランチ

          これは幹(HEAD)じゃないの?

          • by jaos (45820) on 2013年08月15日 0時33分 (#2441310) 日記

            次期版の内容が盛りだくさんだと、スケジュール通りにならない場合もあるので、分けたほうがよいです。
            まぁ別コメにもらったように内容次第ではHEAD一本で十分なので、そのほうが面倒がなくてよいですが。
            要は「顧客が1つしかない社内向けシステム」だからブランチがないのが自然ではなくて、「これか何をするか」でブランチを作ったり作らなかったりするのが自然かと。

            親コメント
    • by Anonymous Coward

      Webアプリ。現在branch 2本。
      コミット履歴に記入して、その後リリース申請書を書いて申請書チェックツールを噛まして、さらにチェックリストおよび修正前後のエビデンス等々を格納し…。

      ちなみに本番稼動前。

    • by Anonymous Coward
      「次バージョンで修正予定」
      パッケージソフトウェアでバグフィックスにブランチ切る必要をなくす魔法の言葉
  • by tri_try (37879) on 2013年08月13日 16時32分 (#2440228)
    branchではなくbrunchを使わない。 管理なんて朝飯前。
  • googleって、プロジェクトへの修正や実装は「全てパッチでやりとりして」プロジェクトリーダーのコードレビュー通すんじゃありませんでしたっけ? (要は、pull-reqquest方式)

    だから1日に何十ものパッチのやりとりが行われるって、昔何かで見た覚えがあるんですが。

    # google. コロコロやり方変えるから。今でもそーなのか知らないけど。その話見た時からブランチ使ってないって、書いてあったんだよなぁ。

    --
    ==========================================
    投稿処理前プレビュー確認後書込処理検証処理前反映可否確認処理後……
    • by Anonymous Coward
      ぶら下げどころを見つけた。

      レビューがあってレビューが通らなければコミットできないとすれば、同時にコミットして枝分かれって起きないよね。

      さらに言えばgitつかっているならfast-forwardかrebase使えば1本になってしまうと思うし。
  • by Anonymous Coward on 2013年08月13日 12時27分 (#2439981)

    スキルレベルはあまり関係ないですね。
    むしろこういった手法を取り入れるのに困った場合、ルールを徹底出来ない「諸事情」のほうが問題なのでは。

    #上がGOせず、取り入れようともしないというところが大半かもしれませんが

    • by nim (10479) on 2013年08月13日 14時46分 (#2440123)

      >#上がGOせず、取り入れようともしないというところが大半かもしれませんが

      Google だったら優秀な人材がたくさん(Ken Thompson とか)いて、簡単に Go できるでしょうが、
      うちなんかはそもそも Go できる人材が皆無に近いです。

      親コメント
      • by Anonymous Coward

        一読しても しばらく、気がつかなかった。

  • by Anonymous Coward on 2013年08月13日 12時41分 (#2439993)

    お客様の枝の剪定が大変です。

    • by Anonymous Coward
      剪定(マージ)してたら、その間に枝が2本増えてた。

      # 君らはなんでそんなに互いに衝突するような機能を作るのか。
  • の説明(根拠)がどこにもないw

    • なければググればいいじゃないかな

      親コメント
    • by Anonymous Coward

      根拠も何もGoogleが実際にやってるしかも成功してるようだってことでしょ。
      そしてこの開発スタイルはいわゆるベストプラクティスでないどころか、
      どちらかというとやってはいけないことになってるわけです。
      あなたは知らないかもしれませんがソースコード管理ではほぼ共通認識です。
      それもあってこのような開発スタイルとをってるという例を他に見たことがない。

      ということで「ただ、こういった開発スタイルはGoogleだからこそできるわけで」
      というのは十分説得力があります。あなたは知識が足りないようですからそうは
      思わなかったようですがね。
      プログラマが多くいるサイトだしあなたに配慮する必要もないし。

  • by Anonymous Coward on 2013年08月13日 13時47分 (#2440061)

    >開発車向けイベント

    …ですよね?

    • by Anonymous Coward

      「車(くるま)」でも「社(やしろ)」でもなく「者(もの)」

      …ではないかと思われますが,いかがでしょうか?

      • by Anonymous Coward


        マジレスすんなよ・・・
    • by Anonymous Coward

      >1万5000人以上の開発社

  • by Anonymous Coward on 2013年08月18日 13時15分 (#2443425)

    ブランチなんて問題の先送りにしかならない。
    単品の開発なら最後にデバッグ期間を儲ければいいが、
    常にバージョンアップを繰り返すサービスでは無理。

    レベルが統一されてない、信頼出来ないからこそ、ブランチは不要。

typodupeerror

最初のバージョンは常に打ち捨てられる。

読み込み中...