Gitリポジトリを自前サーバーで管理するツール「GitServ」

git
LINEで送る
Share on GREE
Share on LinkedIn

GitHubは公開のOSSを管理するのに非常に便利なんですが、仕事などで使うのはNGですよね。

有料版を使えばいいわけだけど、この辺に費用をかけるのもモドカシイ。

GitLabを使えばいいじゃない?

類似ツールの「GitLab」を使ってもいいのだが、このツール、Ruby,Python,Nginx・・・という風に言語統一がされていないばかりか、
各モジュールのバージョンが非常に細かく制限されている。

実際にインストールしてみたが、確かに使い勝手はGitHubと同じぐらいなんだが、バージョンアップや、サーバーメンテの際にトラブルが必ず起きる。

あと、どのようなデータ管理をしているか知らないが、サーバーがよく落ちる。

求められる機能

・Gitリポジトリが共有サーバーで管理。
・サーバー上でブランチやソースコードなどの確認
・コミット履歴などの確認

とりあえず、このぐらいできれば、実はそんなにハイスペックな機能などいらないのだ・・・

ブランチ履歴など、GUIで見られると確かに便利なんだが、今後のバージョンアップで行うこととして、
まずは、最低限バージョンを作ってみた。

GitHubにアップしてます

https://github.com/yugeta/gitserv

気になる人は、ここからサーバーに直接ソースをcloneして、使ってみてくだされ。

スクリーンショット 2015-03-14 17.35.50

使い方

1.GitHubからcloneしたデータにapache接続でアクセスすると、以下のような画面が立ち上がります。

スクリーンショット 2015-03-14 17.50.59

2.「Config」メニューを押して必要情報を入力
スクリーンショット 2015-03-14 17.38.47

※データの保存先ディレクトリは、gitリポジトリをまとめて保存するディレクトリです。事前に作成しておいてください。
※サーバー作業用ユーザーアカウントは、gitアカウントを指定したほうがいいです。(gitインストールの時に作っておくと便利)

3.「Repository」メニューに移動すると、新規リポジトリが登録できます。
 ここは任意の名前を登録してください。

4.ようやくTopに言って、リポジトリデータにアクセスすると、以下の情報が見られるようになります。

・ソース・ファイル一覧
・ブランチ一覧
・コミット履歴
・ファイルを選択した場合はテキストファイルデータの内容表示

Issue

・リポジトリの削除ができません。(今のところ必要なかったので付けてないだけです)
・ファイルプレビューで画像対応(今のところテキストファイルのみです)
・設定やリポジトリ名のバリデーションチェック(半角英数でお願いします)

メリット

とにかくPHPだけで作っているんですが、非常に軽いと思います。
まだ大容量データで試してないのでわかりませんが、構成がシンプルというのが、自分で改良するのも容易ではないでしょうか。

僕もGitはそんなに深いところまでは理解できていないんですが、このツールを作って、まあまあ理解出来ました。

Gitが苦手という人用にAccessというところで、よく使うPUSHやCLONEなどのコマンドを表示してるんですが、こういったサポート機能は、作業をしている時にコマンド弱い人でも使えると思うので、今後は、commit、marge,diff,など、もっと実用的にしていきたいですね。

とりあえず、GitHubで問題無い人は、このツールは必要ないと思うのですが、このツール作るの面白かったので、RubyオンリーやPythonオンリーでも作ってみたいですね。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*