Allied ArchitectsAllied ArchitectsEngineer Blog

Gitのマージ済みブランチ検出ツールを作った (Advent Calendar 5日目)

2014/12/5 Go

こんにちは、しゃかまるです。
MH4Gでは しゃか。 という名前でやっています。「。」は必要です。
最近、社内では口が悪いヤツのような不当な扱いを受けていますが、そんなことはありませんよ。

さて、今回はGoでツールを作ってみた記事を書こうと思います。

merged_branch

Gitのマージ済みなブランチを表示するツールです。
ソースはこちらにあります。
この書き方おかしいだろ、などあれば是非ともご指摘ください。

何が問題なの?

多分この記事を読もうと思う人はGitを使ってるだろう、ということで進めていきます。
Gitで運用していると、既にマージしたブランチがリモートに溜まったまま消されずに残る、ということが起こりがちじゃないかな、と思います。ありますよね?
運用フローにもよりますが、hotfix系のブランチとか、他の人に「このブランチをマージしてあとよろしく」としたブランチなんかがよく残っている印象です。

いらないブランチがリモートに溜まっていると、一覧を出した時に不要な情報が増えて作業の邪魔です。
作業者に、作ったら消す、マージしたら消すという認識があれば良いのですが、「え、わざわざ消さないといけないものだったんですか?」という認識だと困りますよね。
そこで、終わったブランチは消すという意識付けのためにも、「おう作業終わったらちゃんと消せや」と言えるツールがあれば良いな、と思った次第です。

何をするツールなの?

簡単に書くと

で検出したマージ済みの各ブランチに対して、

を叩いて、最終コミッターの名前、メールアドレスをリストアップします。

現状、このツールで行うのはここまでです。

git-showはデフォルトでページャを起動したり、いらない情報が多いので

というオプションで実行しています。

Usage

検査したいgitプロジェクト内にmerged_branchを置いて実行するだけです。
カレントブランチにマージされてるブランチ一覧が取得できます。

私が担当しているプロジェクトのdevelopブランチで実行したところ、以下のような出力が得られました。

$ ./merged_branch

develop
Murakami.Shunsuke (hoge@example.com)

remotes/origin/hogehoge
foo (foo@example.com)

remotes/origin/feature/fugafuga
bar (bar@example.com)

remotes/origin/feature/piyopiyo
bar (bar@example.com)

remotes/origin/feature/foobar
fuga (fuga@example.com)

名前とアドレスは隠していますが

branch-name
name (mail-address)

という形式で出力しています。
マージ済みのfeatureが残っていますね。これは良くない。
(私が作ったブランチも残っていましたがしれっと消しました)

おそらくうちで最も巨大なプロジェクトに対して流したところ、100近くのリモートブランチが残っていたので
cronにでも組み込んでみてもらったら面白いんじゃないかと思います。こんな感じかな。

想定される質問

なんでGoなの?

趣味です。
Goである必要は一切ないし、この程度だとシェルのワンライナーで書けるんじゃないかな、と思っています。

なんかネチネチしたツールだね

てへぺろ(・ω<)

まとめ

リモートブランチは消そうね!
盛大なブーメランにならないように気をつけたいと思います。

明日はmassa142 の番です。

しゃかまる
  • しゃかまる
  • エンジニア
  • フロントエンドだったりバックエンドだったりサーバだったり その時の流行りと気分でいろいろ迷走してます。

RELATION ENTRY

JSでページ遷移しないフォームを作る(Advent Calendar 24日目(仮))

JSでページ遷移しないフォームを作る(A...

2014/12/25 2014 Advent Calendar

こんにちは、Advent Calendar 24日目(仮)を担当する村上です。 昨日の紹介と違う理由は推して知るべしです。 前回と前々回がゆるふわ記事だったのでマジメな記事です。 今回は素のJSでページ遷移しないフォームを作った話を書こうと思います。 目的 ページ遷移しないフォームを作ることが...

続きを読む

シェル芸人への道 その1 (Advent Calendar 16日目)

シェル芸人への道 その1 (Advent...

2014/12/16 Shell

こんにちは、しゃかまるです。 Advent Calendarも16日目です。進捗どうですか?私はダメです。 今回もゆるふわな記事です。 概要 シェル芸ってご存知ですか? こんな感じのことをされている方々です。 私もCUIが好きでgitの操作は全てターミナルでやったりしてるタイプですが、シェル芸人...

続きを読む

しゃかまるの記事一覧へ

ページTOPへ