Redmine:エラー「404 リポジトリに、エントリ/リビジョンが存在しません。」


知らぬ間に、Redmineのリポジトリを開くと、「404 リポジトリに、エントリ/リビジョンが存在しません。」というエラーが発生し、リポジトリ参照ができなくなってました。

redmine-no-repository

いつもお世話になっている、Redmine.jpさんの記事も参考にしてみましたが、結局よくわからず、かなり悩みに悩み、やっと解決しましたので、その解決策を書いておきます。

原因

gitがどうやら悪さしていたこと。

自動更新でgitのバージョンが1.8.2.1になってましたようです。

対策

Redmine用に別のバージョンを入れて、Redmineはそっちを使うようにする

対策手順

  1. gitの別バージョン(今回は現在の最新版である、1.8.3.1)をダウンロードする
    gitのダウンロードは、本家からできます。tar.gzファイルのリンクは、DownloadsOlder releasesにあります。
  2. gitをディレクトリを指定し、インストールする
  3. Redmineの設定を変更し、今回インストールしたgitを利用するようにする
  4. Redmineを動かしているWebサーバ(今回はApache)を再起動する

詳細な手順は、以下の通りです。
(環境は、CentOS6.4)

cd /usr/local/src
sudo wget https://git-core.googlecode.com/files/git-1.8.3.1.tar.gz
sudo tar zxvf git-1.8.3.1.tar.gz
cd git-1.8.3.1
sudo ./configure --prefix=/usr/local/git1.8.3.1
sudo make
sudo make install
vi {redmineを格納しているディレクトリ}/config/configuration.yml

scm_git_command: と書かれている行を以下の通り変更

scm_git_command: /usr/local/git1.8.3.1/bin/git
sudo /etc/init.d/httpd restart

以上です。

悩んだこと

そもそも、gitのバージョンが変わってたことに気づかなかったので、ぜんぜん別のところをひたすら調べてました。最後のには、Redmineのソースを追ってたりもしてました...
全然原因がつかめなかった理由の一つに、まったくこの問題に関するログがでなかった(もしくは見つからなかった)ということがあります。ログレベルも変えてみたりしたんですが、何も出ないとやっぱりきついですね。

configuration.ymlを直すとき、「scm_git_command」 と書かれた箇所が複数あります。一つはコメントで、変更例が書かれた箇所。もう一つは、有効な記述であり、かつ設定値が空なものです。これに気づかず、いつものパターンでコメントで書かれているものを行コピーして、修正したにもかかわらず、その下の方に記述された設定のために、指定したgitが利用されなくて、数分固まりました。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。