LoginSignup
9
10

More than 3 years have passed since last update.

MSwordをgitで管理する方法

Last updated at Posted at 2018-05-20

docx2txt(0.7) - A pure python-based utility to extract text and images from docx files.

環境

Archlinux(on vagrant)

docx2txtをインストール

$ pacman -S docx2txt
# または
$ pip install docx2txt
# または
# $ apt install docx2txt # ubuntuなら

管理方法

概要

ここでは仮にXXX管理文書.docxの差分を管理していくこととします。
docx形式はバイナリ形式なのでgit diffコマンドなどでは差分表示してくれません。

docx2txtはdocx形式をtxt形式に直してくれるので、そのtxtをgitに管理させていきます。

docx -> txt

$ docx2txt XXX管理文書_180514.docx
# XXX管理文書_180514.txtが生成される

まず、管理したいdocxファイルをdocx2txtを使用してtxtファイルに書き下します。

txtをリネーム

$ mv -f XXX管理文書_1805??.txt XXX管理文書.txt
# 日付なしのマスターtxtファイルに上書きする

次に、gitで差分管理できるように管理するtxtファイル名に上書きします。上の例ではXXX管理文書.txtの差分を見ていこうとしています。

mvするときに、正規表現の'?'をうまく使うことで、日付が変わってもヒストリを汚さず、繰り返し同じコマンドが使用できます。

.gitignore

.gitignore
/old/
~*

スワップファイル~の無視とoldディレクトリの無視。
oldディレクトリはgit使えない人用に、古い日付のdocxをoldにコピーしておきます。古き良き管理方法...

cp XXX管理文書_1805??.docx old/

もっと良くするために、ハッシュタグつきでoldフォルダに保存すれば、
同じ日付で変更が重なってoldフォルダに重複ファイルが
コピーされることはなく、どのハッシュのdocxか(自分だけは)わかります。

時間も記録すればいいよな。gitのハッシュタグによる管理は複数の人が同時刻にcommitする可能性があるし、ファイルの微妙に変えられている可能性もあるからハッシュを見るわけで、ここで一人で管理するならハッシュ使わなくてもいいよね

cp_to_old_with_hash
cp XXX管理文書_1805??.docx old/XXX管理文書_1805??$(git rev-parse --short HEAD).docx

git rev-parse --short HEADはHEADのハッシュタグ最初の7文字を返してくれるコマンド。

git commit

最後にコミット

$ git add XXX管理文書_1805??.docx XXX管理文書.txt
$ git commit -m '課長の朱書き直した'

git diff

git difftigで差分表示するとXXX管理文書.txtの差分が表示されます。

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10