odt2txtを利用してgitでODFの差分を取る

Posted by nogajun - 2014/03/17

_

以前、gitでODFファイルを管理するときフラットODF(FODT)を使う手法を書きましたが、slideshareのコメントでodt2txtを使う方法を教えてもらったので試してみました。

2dice

odt2txt(macportsあり)とgitの属性(.gitattributes)を使うとgitでodfファイルのテキストだけのdiffが取れました.

http://www.slideshare.net/nogajun/flat-odfredmine-gitgitolite-sparkleshare

1. odt2txtをインストールする gitを使うマシンにodt2txtをインストールしておきます。Debianなのでapt一発。

# sudo apt-get install odt2txt

2. gitリポジトリ内に「.gitattributes」というファイルを作る

gitリポジトリに「.gitattributes」というファイルを作って、以下の内容を書いておきます。

*.odp diff=odf
*.ods diff=odf
*.odt diff=odf
*.ott diff=odf

3. gitリポジトリ内の「.git/config」に以下の内容を書き込む

gitリポジトリ内にある「.git/config」の末尾に以下の内容を書き込んでおきます。

 [diff "odf"]
   binary = true
   textconv = /usr/bin/odt2txt

4. odtを作って差分を見てみた

git diffで差分を見てみました。

$ git diff HEAD HEAD^

diff --git a/difftest.odt b/difftest.odt
index 9d776ab..18fc834 100644
--- a/difftest.odt
+++ b/difftest.odt
@@ -6,7 +6,5 @@
 彼は素早く右に身を翻し、建物の間に消え去った。その時彼は、もう少しで道の真中に転がっていたごみバケツに躓き転ぶところだった。
 彼は暗闇の中で道を確かめようとじっと見つめた。どうやら自分の通ってきた道以外にこの中庭からの出道はないようだ。
 足音はだんだん近づき、彼には角を曲がる黒い人影が見えた。彼の目は夜の闇の中を必死にさまよい、逃げ道を探す。もうすべては終わりなのか。すべての苦労と準備は水の泡だというのか。
-突然、彼の横で扉が風に揺らぎ、
-
-だらだらしている。ほんのわずかにきしむのを聞いた時、彼は背中を壁に押し付け、追跡者に見付けられないことを願った。この扉は望みの綱として投げかけられた、彼のジレンマからの出口
なのだろうか。背中を壁にぴったり押し付けたまま、ゆっくりと彼は開いている扉の方へと身を動かして行った。この扉は彼の救いとなるのだろうか。
+突然、彼の横で扉が風に揺らぎ、ほんのわずかにきしむのを聞いた時、彼は背中を壁に押し付け、追跡者に見付けられないことを願った。この扉は望みの綱として投げかけられた、彼のジレン
マからの出口なのだろうか。背中を壁にぴったり押し付けたまま、ゆっくりと彼は開いている扉の方へと身を動かして行った。この扉は彼の救いとなるのだろうか。

普通にdiff取れますね。fodtと違って内容のみなのでわかりやすいと思います。 odtはテキストの差分とわかりますが、odpなどはどうなるかといえばテキスト情報の差分だけが表示されます。

fodtを使う方法とodt2txtを使う方法どっちがいい?

fodtの欠点はツールは入れなくていいけれど保存形式を変更しなければいけない。 一方odt2txtの欠点はodt2txtをインストールしてgitの設定を追加する必要があります。

どっちもひと手間があるので、環境とスキルに応じて使い分けるのがいいかなと思います。

_ LibreOffice ImpressでスライドマスターのスライドをコピーするTips

同じデザインでセクション用と本文用の2枚のスライドマスターを作りたいことがあります。 素直に考えれば、スライドマスター内でスライドをコピーすればと思いますが、スライドマスター内ではスライドのコピーができません。

スライドではコピーできるのに、スライドマスター内でスライドがコピーできない仕様はなんでやねんと思うけれど、そんなときに使える技。

  1. スライドのファイルをコピーして、2つのファイルを開く。
  2. コピーしたスライドファイルのスライドマスターに入り、スライドマスターの名前を変更する。
  3. スライド画面にもどり、名前を変更したスライドマスターが適用されたスライドを元のスライドにコピペする。

これで、元スライドのスライドマスターに名前が違う同じスライドが2つできるので、それを元にスライドデザインを変更すればおk。

BugTrackには報告されてるみたい

報告されてるみたいだけど放置されてるっぽい。あと、Tipsはわかりにくいかな。