Pistolfly のすべての投稿

Software Engineer in Tokyo, Japan

Rails 2.3.9でActionController::InvalidAuthenticityToken エラー

Rails 2.3.10 で修正された。
Rails2.3.9でセッションをActiveRecordにすると、auでのログイン時にActionController::InvalidAuthenticityToken エラーが発生する。
Rails 2.3.9のバグで、セッションにactiverecord または memcache storeを使用している場合に、'HTTP_COOKIE' headerのないリクエストのセッションクッキーがセットされないためにこのエラーが発生するらしい。
ActionController::InvalidAuthenticityToken in SessionsController#create error - Stack Overflow
#5581 Session cookie not sent with activerecord or memcache store in Rails 2.3.9 - Ruby on Rails - rails
パッチがある。
gist: 570149 - Sessions fix for Rails 2.3.9 apps- GitHub

Gitでリモートブランチとローカルブランチの差分を表示する

まず、リモートブランチを最新に更新しておく。

$ git fetch
$ git svn fetch  # git-svnでSubversionレポジトリをリモートリポジトリに持つ場合

リモートブランチを確認。

$ git branch -a
* master
  remotes/origin/master
  remotes/svn/tags/RELEASE_20101022
  remotes/svn/tags/RELEASE_20101025
  remotes/svn/trunk

現在のローカルブランチとリモートブランチの差分を表示。

$ git diff remotes/origin/master

現在のローカルブランチとリモートブランチの差分を表示(簡易表示)

$ git diff --name-status remotes/origin/master

現在のローカルブランチとリモートブランチの差分を表示(簡易表示、Subversionレポジトリ)

$ git diff --name-status remotes/svn/trunk

情報源: git svn status - showing changes that are not committed to svn - Stack Overflow

Redmineでレポジトリをgitと連携した場合のエラー

Redmineでレポジトリをgitと同期するため、cronでRepository.fetch_changesetsをscript/runnerで実行したら、
git: not found
となって同期できなかった。
redmine/lib/redmine/scm/adapters/git_adapter.rbを

#GIT_BIN = "git"
GIT_BIN = "/usr/local/bin/git"

のようにgitへのパスを設定するようにしたら解決。(※)

RedmineとGitの連携で「リポジトリに、エントリ/リビジョンが存在しません」と出た時の対処法 « Sinner The Sinner

※ r4795, r4797で、configuration.ymlにscm_git_commandを設定できるようになったので、上記修正は不要になった。

その他に、gitレポジトリのディレクトリ(xxxx.git)へアクセス権がない場合、Redmineで連携したレポジトリを見ると、「リポジトリに、エントリ/リビジョンが存在しません」となってしまう。
その場合は、

$ sudo chmod o+rx xxxx.git
  • gitosisやgitoliteでgitユーザのホームディレクトリにレポジトリがある場合は、gitユーザーのホームディレクトリもo+rxしておく。