gitolite 管理のリポジトリを簡単に追加できるようにした

公開用のリポジトリはもれなく github に置くようにしていますが, お仕事関係の非公開系のものは自鯖のリポジトリで管理しています。この管理用の自鯖は「さくらVPS」上に構築されています。リポジトリの管理方法には Gitolite を採用しています。

自鯖のリポジトリ管理でだるいところ

Gitolite でリポジトリを新設する場合, 次のような作業が発生します。

  1. Gitolite 管理用のリポジトリに移動する
  2. conf/gitolite.conf を開き新しいリポジトリを追加
  3. 変更を add && push し, サーバにリポジトリ作成

思いついた時にサクッとリポジトリを追加できない, といった問題がちょっとしたストレスでした。少し前までは作業PCは MacBookPro 1台だったのでそこまで気になることでは無かったのですが, MacMini + MacBook Air 併用環境になった為, よりお気軽な感じでリポジトリの作成作業ができるようにする必要がありました。

定型作業はコマンド化する

そこで, ほぼ書き捨てな感じで自鯖にリモートリポジトリを作成するコマンドを作成しました。

remoterepo.sh

このコマンドを Mac 環境で次のような alias を貼って利用しています。

$ ln -s path/to/remoterepo.sh /usr/local/bin/remoterepo

このコマンドは次の内容をコマンド1発で対応してくれます。

  1. Gitolite 管理リポジトリの最新の変更を pull --rebase (複数台マシンで管理するため最新版にする必要有)
  2. 引数に渡されたリポジトリを gitolite.conf に追記
  3. gitolite.conf の変更を Gitolite 管理リポジトリに add && push (このタイミングで自鯖に新たなリポジトリ作成)
  4. git remote add するべきコマンドを表示

今までファイルを開いて〜といったものを一切不要にした形です。使い方は次のような形を想定しています。重複するものがあった場合には処理を中断します。

$ remoterepo namespace/new-repos

コードとしてはかなり汚いのですが, 意味もなく公開するのもいいかなと…

作業の最適化を考える習慣について

以上のスクリプトはほぼ書き捨てで動くだけのものを書いたつもりです。ただ習慣として定型化されるべき作業はやはり自動化すべきなんだなぁと改めて思いました。このどうでもいいコマンド以前は gitolite.conf を編集しコミットするまでの作業をしていた訳です。どれだけの浪費をしていたのでしょうか。

今、群馬の山間部、東吾妻町からお送りしています。田舎だからこそ自動化するべき作業は積極的に自動化していくべきだなぁと改めて思った次第でした。

gitolite 管理のリポジトリを簡単に追加できるようにした」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。