「 2012年05月 」一覧

gitをhttp経由で使いたい その2


先日の追記情報だけではまだ不十分でした。
確かにclone, commit, push まで成功するのですが、それは最初にcloneしたリポジトリでの操作に限定したものでした。他のcloneした場所で編集して push しようとして失敗したり、そもそもcloneで失敗(空っぽリポジトリ)といった現象が見られました。

再度確認してみると足りなかったのは以下の2点

  • hooks/post-update.sampleを post-update として配置
  • サーバー側のリポジトリのアクセス権が全てapache(wwwのユーザー)になっていること

これらをまず確認してみることが必要かと思います。

意外に、git update-server-info を実行するとファイルが作成されて、それが実行したユーザーになっていたりするので、apacheユーザーが所有者ではないファイルができてしまっていたりします。
また、pushのたびに update-server-info の実行が必要なようで、それをやってくれるのが post-updateのスクリプト内となっています。

他に、リバースプロキシ背後で動かそうとするとまたパスの問題が出てきそうなので、それはまたいずれ調査と言うことで。


gitをhttp経由で使いたい(ついでにgitweb)


以前にGitLabのインストールや使い方を書いてみたのですが、どうやらあれはsshをつかえる環境でないといけないようで、簡単にhttp(やhttps)を経由してのclone, pushなどはできないようでした。おまけに各ユーザーのプライベートリポジトリを作ることが前提で、非登録のユーザーが閲覧することもできないようです。(言い分としてはその場合はGitHubでいいでしょ、ということだそうで)。

さて、なぜHttp経由かという理由ですが、httpプロトコルしか通過できないファイアウォールがあるところも多いです。特に開発の現場ではまだまだ多く存在するようです。こういった場合にはgitを使う場合にclone,pushらをhttpによって行う必要が出てきます。
Subversionでもsvnプロトコルではなくhttp経由のWebDAVを用いて使っている例も多いのはその理由によるところもあるのかなと思ったりしています。

前提条件

次のものはインストール済みで設定も終わっているものとします。

  • Apache(WebDAV有効状態で)
  • git

設定

リポジトリらを /var/www/html/repos-git に配置するとして、ディレクトリを用意しておきます。
これから説明するディレクトリらの所有者はapacheとしておきます。

Apacheの設定ファイル(httpd.conf)を開いて、リポジトリらをWebDAVでアクセスできるように修正します。

※上記で指定するWebDAVを有効にするディレクトリを指定する際には、gitリポジトリそのものである必要があります。
SVNのよう な親ディレクトリを指定すればOKな感じでは無く、各リポジトリそれぞれでDAV ONとしなくてはならないようです。この点にはまりました(5/29追記)

apacheを再起動した上で、テストのためにリポジトリを用意してみます。

動作チェック

次のコマンドを実行していき、リモートリポジトリを用意します。

入力するアドレスは、 http://(サーバーのIP)/repos-git/test です。
うまくいけば、Success を表示されて、リポジトリが取得できます。

gitを試していると、リポジトリが取得できても、push ができないことが割と発生しますので、ここでpushも正常にできるかを確認しておきます。
適当なファイルを追加して、編集した後で、commit, push してリモートリポジトリにpushが成功するかを確認してみてください。

Gitwebのインストール

せっかくなのでGitwebも入れてみました。

このコマンドで簡単にインストールが完了します。
あとは設定ファイル /etc/gitweb.conf を編集するだけです。

$projectroot という変数にGitリポジトリの場所を設定するようになっているので、次のように書き換えます。

そして、apacheを再起動して、http://(サーバーのIP)/git/ にアクセスしてみます。
問題なければ、testリポジトリが一覧に並んでいることでしょう。

まとめ

とりあえずユーザー認証はなしでまずはサーバーにgitを用意してhttpによるアクセスをさせるというところを目的として、環境設定を行ってみました。今のところやっぱりWebDAVによってhttp経由のアクセスをさせるというところに落ち着いてしまいました。 ただWebDAVを使っていると遅いという話もあるようなので、別の方法でhttp経由のgitリポジトリ取得の方法がないかを、もうしばらく探してみたいと思います。


Intel HD Graphics 4000をちょっとはかってみる


グラフィックス性能を上げたというIvyBridgeの Intel HD Graphics 4000 (HD4000)
これについて、どのくらいの性能なのかを計測してみました。

定番の 3DMark 06を動かしてみてその結果を貼ってみます。
ちなみに 3770Tで動作させています。

SM2 :  2222
SM3 :  7165

という結果が出ました。
WinPC 4月号では、 Intel HD Graphics 3000 の場合で、
SM2 : 1641
SM3 : 1383
となっており、かなりの性能UPを実現できていることがわかりました。

また Geforce 7600GT の場合では、
SM2 : 1218
SM3 : 1322
というスコアで、7600GTとHD4000を比較した場合では圧倒的に HD4000が勝利している結果となりました。

Ivyで性能を上げたから、7600GTくらいにはなっているだろうと思っていたのですが、
実は追いついていたのは SandyBridge時代で、Ivyではもう抜いたという事実に驚きました。

これはもう、Intel HD Graphicsは低スペックだから動作サポート外とはいえない性能を持っているなと思いました。


3770Tかった


IvyBridge祭りにあわせて、i7 3770T を購入しました。
何店舗か探し回ったもののGWに手に入れることができました。

とりあえずせっかくの超省電力版(TDP 45W)なので そのあたりを確認してみました。
電力は、PCのコンセントにワットチェッカーを入れて計測しました。
CPU温度は、Core Temp 1.0 RC3 を使用して計測しています。

Idle状態で、CPU温度は 32度くらい、消費電力は 40Wを切るくらいでした。
一方、論理コアを含めてフルロードさせた状態だと、CPU温度は 60度を超えることがあるものの60度前後で落ち着く感じで、消費電力は 92W となっていました。

Intel HD Graphics を使ってGPUもCPUもフルロードさせると、115W ほど電力を消費する結果となりました。

 

SandyBridgeを使っている人の話からすると、意外とCPU温度が高いねと言われましたが、
SandyBridge以前のCPUを使っている身としては、結構温度が下がっているなと思いました。
また、フルロードさせてもこのくらいの消費電力というのもすごいなと。
現在 i7 870 を使っていて 30%くらいコンスタントに消費しているシステムでも 120W くらい到達していたりしますので。

 

3770Tを使って、オーバークロック試した例もあるようですが、手元の環境では駄目っぽい感じでした。
どうがんばっても 4GHz には行かない感じです。 TBしても 3.5G程度で止まってしまう・・・。