Archive for category Git

ハウ・トゥ・セットアップ・ゲリット

Time to Read

15分

git での開発時に、コードレビューを支援するツール gerrit 。良さそうなのに日本語情報が非常に少なく、特に「インストールして Git リポジトリを設定するまで」の一通りの情報がなくて泣けたので、全世界の日本語ネイティブスピーカーのためにもなると思ってここにまとめたりする。

以下、 gerrit 2.2.2 における手順。バージョンが変わるとまったく違ったりしますので注意。

Read the rest of this entry »

 

NginXでは、git-httpサーバを公開することが困難な件

Time to Read

1分

理由は、NginXのhttp_dav-moduleが、PROPFINDなど一部のWebdavメソッドをサポートしていないため。

メソッドによってfastcgiでwebdav.cgiにリクエストを振る、などの手法も紹介されていましたが、それをするなら全リクエストをwebdav.cgiに振ってしまえばいいと思いました。

gitサーバをhttp(s)で公開する際は、素直にApache2、lighttpdなどを利用しましょう。。

参考

Apacheの場合の手順:

 

etckeeperのつかいかた(インストール、サブコマンド追加)

Time to Read

2分

etckeeperと言うものがあり、要するに /etc 以下をリポジトリにして変更履歴を管理してくれる、大変大雑把と言えば大雑把なソフトウェアがあります。大雑把ですが、結構便利です。

インストール

1
sudo aptitude install git-core etckeeper

そしたら、 /etc/etckeeper/etckeeper.conf と言う若干くどい名前の設定ファイルを編集。

1
2
3
4
5
# The VCS to use.
#VCS="hg"
VCS="git"
#VCS="bzr"
#VCS="darcs"

Gitの他、MercurialやBazaarなんかが使えます。ただし、Subversionなどのような、中央リポジトリが必要なバージョン管理システムは使えませんね(ローカルにコミットしていくため)。

VCSを決めたら:

1
2
sudo etckeeper init
sudo etckeeper commit

使い方

勝手にバージョン管理するんで、特にとりたててすることは無いです。

それで終わってもアレなので、、コミットのタイミングは主に以下の2点です。

  1. aptitudeの操作
  2. 日付が変わったとき

たとえばaptitude installしたりすると自動で変更をコミットしてくれます。また、 /etc/cron.daily/etckeeper というジョブがインストールされて、毎日変更をチェックし、変更があれば自動コミットします。

手動で /etc の変更をコミットしたい場合は:

1
sudo etckeeper commit "message"

サブコマンドの追加

/etc/etckeeper/ 以下には、commit.d、init.d、unclean.dなどのディレクトリがあり、サブコマンドcommit、init、unclean…といった感じで対応しています。そのサブコマンドを発行すると、 ${SUBCOMMAND}.d/ 以下の実行スクリプトを順次実行していきます。

たとえば、/etc/etckeeper/log.d と言うディレクトリを作れば、 etckeeper log と言うサブコマンドが利用できるようになります。 /etc/etckeeper/log.d/10LOG と言うシェルスクリプトを以下のように作成してみましょう。

1
2
3
4
5
6
#!/bin/bash
git --git-dir=/etc/.git log \
    --graph \
    --all \
    --color \
    --pretty='%x09%h %cn%x09%C(yellow)(%cr)%Creset%x09%s %Cred%d%Creset'

これで:

Logを見るのが楽になりました。etckeeper自体は微妙に機能不足感は否めませんが、大雑把な仕組みだけあって大雑把に機能追加出来ます。活用しましょう。

ちなみに、git --git-dir=/etc/.git log の順番でないと動きません。。。しばらく、動かないスクリプトを載せていて失礼しました(19:33修正)。

なお、上述のカラフルなGit logのフォーマットは、以下のサイトを参考にさせていただいております。

ドキュメントなど

 

Gitユーザのための、Bitbucket+Mercurial経由でのデプロイ方法

Time to Read

5分

Why Mercurial & Bitbucket

Mercurialとは

Gitっぽい分散型バージョン管理ツール。Python界隈でよく使われているらしい。コマンドは hg

Bitbucketとは

Mercurialを利用する、リポジトリホスティングサービス。簡単なWikiやトラッカも付く。無料利用可能。


ウェブサービスかなんかをデプロイする際、Capistranoなどが便利だけれど、Capistrano経由のデプロイではリポジトリが存在しないと旨味が少ない。この時、まあ、Webサーバと同じサーバに公開リポジトリを作るよりは、外部のリポジトリホスティングとかを頼りたいよね、と言う話。

Githubと言う最強のホスティングサービスでGitを使ってもいいけど、今回紹介するBitbucketは「無料でプライベートリポジトリが作成可能」なので、色々都合がいい場合が多い。ということで、Bitbucketを利用するための最低限のMercurialの使い方を紹介。

リポジトリをGit -> Mercurialに変換

Read the rest of this entry »

 

今日のワンライナー: 例えばログ検索で

最近もっぱらGitを使用していますが、軽くて高機能ですし便利だと思います。でも今日はGitの話しません。

そんなGitのlogを見る際に、色々いじって手ワンライナーに便利そうなコマンドオプションを幾つか発見したので、鬼の首を取ったようにメモしときますね。

言っておきますが分かってる人には当然の内容ですよ。。

Read the rest of this entry »