安敦誌


つまらない話など
by antonin
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
検索
最新の記事
水分子と日本人は似ている
at 2016-06-04 01:49
ほげ
at 2015-06-05 03:46
フリーランチハンター
at 2015-04-17 01:48
アメリカのプロテスタント的な部分
at 2015-04-08 02:23
卯月惚け
at 2015-04-01 02:22
光は本当に量子なのか
at 2015-03-17 23:48
自分のアタマで考えざるを得な..
at 2015-03-06 03:57
折り合い
at 2015-03-01 00:19
C++とC#
at 2015-02-07 02:10
浮世離れ補正
at 2015-01-25 01:21
記事ランキング
タグ
(294)
(146)
(120)
(94)
(76)
(64)
(59)
(54)
(45)
(40)
(40)
(39)
(32)
(31)
(28)
(27)
(25)
(24)
(22)
(15)
最新のコメント
>>通りすがり ソ..
by Appleは超絶ブラック企業 at 01:30
>デスクトップ級スマート..
by 通りすがり at 03:27
7年前に書いた駄文が、今..
by antonin at 02:20
助かりました。古典文学の..
by サボり気味の学生さん at 19:45
Appleから金でも貰っ..
by デスクトップ級スマートフォン at 22:10
以前の記事

Tortoisesvn 1.7.12 でWordファイルの差分を取ると失敗する

日常的にTortoisesvnを利用させていただいている。非常に便利でありがたい。いつもローカルリポジトリしか使っていないのでショボイ使い方ではあるのだが、Wordで書いた管理文書のdiffが取れたりするので非常に重宝している。

で、なんだかセキュリティアップデートが出たというので、自分の使い方では外部アクセスはしていないのでリスクは低いものの、ログ表示に新しいバージョンがあるから更新しろと赤文字メッセージが出て鬱陶しい。そこで tortoisesvn 1.7.12.24070 にアップデートしてみた。ところが、それからWordファイルのdiffが取れなくなった。

.docファイルのdiffを取ろうとすると、Windows Script Hostのダイアログが出て、

"You must have Microsoft Word or OpenOffice installed to perform this operation."

とかのたまう。原因を調べてみると、

%ProgramFiles%\Tortoisesvn\Diff-Scripts\diff-doc.js

というスクリプトファイルの実行でエラーが発生していた。r23995の改修でWord 2013用の処理が追加されているのだが、その条件文で使われている、

66: if(parseInt(word.Version) >= vOffice2013)

このvOffice2013という定数の定義が存在しないため、条件文が常に成立してしまいWord 2013専用の処理が例外を吐いてcatchされ、しかもそこでWordが存在しない時にOOoを探すとかいう処理に流れて、OOoもインストールされていない場合に上記のエラー表示が出てしまう。

なんでこんなことになったかというと、trunc上でr23995のパッチが当たったのだけれど、これをリリースパッケージに取り込むためのbranches/1.7.x/contrib/diff-doc.js (r23996) へマージする際に、かなり古いコードへ最新パッチの部分だけ取り込んでしまったためにこんなことになってしまったらしい。

これを解決するには、%ProgramFiles%\Tortoisesvn\Diff-Scripts\diff-doc.js の25行目あたりに定数定義を追加してやればいい。

25: var vOffice2013 = 15;

あるいはgoogle codeあたりからtruncの最新版を落として上記ファイルに上書きしても動く。

merge-doc.js - tortoisesvn - A Windows Subversion client, implemented as a shell extension - Google Project Hosting

まあ、上記の問題はbranches/1.7.x/contrib/diff-doc.js (r24094) ではもう修復されているので、次のリリースを待っていても早晩解決するでしょう。
[PR]
by antonin | 2013-04-10 22:20 | Trackback | Comments(2)
トラックバックURL : http://antonin.exblog.jp/tb/20270333
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
Commented by いしの at 2013-04-11 00:54 x
結局バイナリだからdocとxlsのバージョン管理はあきらめておりますがーーー。やっぱ需要あるんですね。

なんでもかんでもぶっこまれると、バイナリなのでリポジトリの容量が増えまくっていやん。

Commented by antonin at 2013-04-13 23:50
>いしにょさま

ご無沙汰しとります。

>やっぱ需要あるんですね。

んー、どうなんでしょうね。本文にも書いたように、私はローカルリポジトリで自分のミスをundoできるように履歴とってるだけで、別に誰かと共有しているわけじゃないですし、容量とか全然許容範囲なんですよ。文書もdocx世代じゃないんで圧縮利きますし。

ネット越しにリポジトリ見に行ってるとか、ファイルごとの担当者が複数いてコンフリクトやマージの問題があるとか、そういう状況だとバイナリはまずいかもしれませんが。

英語圏含めてネットで検索してみても、リリースから1週間くらい経過してましたが今回のregressionで困ってるって声は全くなくて、それでこんな場末のブログに書いたという次第でして、実際上の需要というのはあまり無いと思いますよ。

ただあれです。マシンならソースコードさえ書きゃ動きますが、日本のそれなりに大きい組織って、21世紀に入っても印刷してハンコが押せるドキュメント書かないと動いてくれなかったりしますんで、これはこれで重要なメンテナンス事項だったりするわけです。
<< 改憲心得 算術の話 >>


お気に入りブログ
外部リンク
外部リンク
ライフログ
ブログパーツ
Notesを使いこなす
ブログジャンル