前置き
こんにちは、ハッピー佐藤です!
みなさんはモブプロやってますか?
最近開発チームでモブプロを始めましたが、色々と問題が起きました。
- 普段使ってる配列と違うキーボードで混乱
- リモートワーク中に遠隔操作すると、ラグがあってまともにコードを触れない
- IDEやVimといった開発環境の違い
モブプロ自体は全員が肯定的でしたが、開発のパフォーマンスに少し影響がありました。
やはりエンジニアは自分の好きな環境で開発したいですよね!
そこでGitHubを通してスムーズにドライバー(タイピングする人)を交代すべく、Commit &Pushを一発で行うべくスクリプトを作ってみました!
(シェルスクリプト初心者なので、実装が汚いのはお許しください!)
必要な機能
・1コマンドでプッシュ出来る
・共同編集者を記録する
複数の人が1つのコミットに関わる為、こちらを参考にメッセージに記録出来るようにしています。
自分が会社で使う事を前提としておりますので、全員のメールドメインが同じという仕様ですがお許しください。
完成したもの
#!/bin/bash
#check current branch
NB=`git rev-parse --abbrev-ref HEAD`
if [[ 'master' = ${NB} ]]; then
echo 'Not allowed master commit'
exit 1
fi
#get date
date=`date`
#create commit message
CM="git commit -m 'mob commit
${date}
"
ORG_IFS=$IFS
MOD_IFS=","
IFS=${MOD_IFS}
for i in $1
do
IFS=${ORG_IFS}
CM+="
Co-authored-by: ${i} <${i}@happysato.com>"
IFS=${MOD_IFS}
done
IFS=${ORG_IFS}
CM+="'"
#git commit
eval "${CM}"
#git push
`git push origin HEAD`
いい感じに改行出来る方法をご存知方は教えてください!
使い方
ドライバー終了時に、以下のようにコマンドを打ち込んで下さい。
. mob.sh happy,sato
そうするとコミットメッセージは次のようになります
mob commit
Fri Apr 26 20:53:24 JST 2019
Co-authored-by: happy <happy@happysato.com>
Co-authored-by: sato <sato@happysato.com>
GitHubではこのように表示され、共同で編集したメンバーが分かります。
あとは次のドライバーがpullして、自分の環境で開発を始めてください。
コミットメッセージが荒れて嫌だという方は、プルリクをGitHubでまとめてmergeするSquash and merge等の機能がありますので、ご自身の環境に合わせてお使いください。(参考)
シェルスクリプトに実行権限を与えるなどは、他の記事をご参考下さい!
終わりに
こんな方法でモブプロやリモートワークを便利にしてるよ!という事例がありましたら是非教えてください!