TortoiseSVN 1.5 でマージの失敗

TortoiseSVN のマージメニューからマージを実行しようとすると「リポジトリのURLが不正です」という表示でエラーになるようになってしまった。おそらく他の人による 1.4以前の TortoiseSVN クライアントからのコミットが発生したのが原因だと想像される。

 

メニューで「系統情報を無視する」を選択してマージを実行してみたり、属性にある mergeinfo を削除して一度コミットしてから再度マージを実行してみたりしても、TortoiseSVN でリポジトリのURLが不正です、と言われる現象は解決しなかった。

結局別途コマンドラインの svn を利用してマージを実行した。コマンドラインでの実行にあたっては、今回リポジトリ置場になっている FreeBSD 上で行ったのだが、環境変数 LANG=ja_JP.UTF-8 が設定された状態の zsh + svn の場合日本語ファイル名も問題なく扱えた。

今後積極的にブランチを運用するにあたっては Subversion 1.4 クライアントから Subversion 1.5 サーバーへのコミットを拒否する方法 を採用することも検討したい。

(追記) start-commit の /bin/sh 版 コロンによる単語分離を IFS 変数+ for 文により実現した。でも処理内容が少なすぎて time で計測してもほとんど差異が出ない。

#!/bin/sh
#
#   [1] REPOS-PATH   (the path to this repository)
#   [2] USER         (the authenticated user attempting to commit)
#   [3] CAPABILITIES (a colon-separated list of capabilities reported
#                     by the client; see note below)
#
# Note: The CAPABILITIES parameter is new in Subversion 1.5, and 1.5
# clients will typically report at least the "mergeinfo" capability.
# If there are other capabilities, then the list is colon-separated,
# e.g.: "mergeinfo:some-other-capability" (the order is undefined).
#
# repos=$1
# user=$2
capa=$3

IFS=":"
for capaelem in $capa
do
  case $capaelem in
  "mergeinfo") exit 0 ;;
  esac
done

echo "commit fail: you must use Subversion 1.5 or later" 1>&2
exit 1
広告

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中

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