7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Scrivener原稿のgit diffをとる

Last updated at Posted at 2015-03-13

動機

  • Scrivenerで書いている原稿をGitで管理したい
    • diffも見たい

保存されるファイル形式

  • Scrivenerは.scriv拡張子のバンドルを保存する
  • バンドルはフォルダの一種であり、原稿の実態は内部のrtfファイルである
    • そのままではdiffで差分を閲覧できない
    • プレーンテキストとして保存すればいいのだがそれはナシで
  • その他にも色々雑多なファイルが含まれるが全部無視

設定

  • .scrivバンドルを管理するGitリポジトリ内の各設定ファイルを以下のように記述

.git/info/attributes

*.rtf diff=richtext

.git/Config

# ここはどうでもいい
[core]
  repositoryformatversion = 0
  filemode = true
  bare = false
  logallrefupdates = true
  ignorecase = true
# ここが重要
[diff "richtext"]
  binary = true
  textconv = textutil -stdout -convert txt

.gitignore

# バンドル内の原稿以外のファイルを全部無視
*.html
*.checksum
*.xml
*.autosave
*.backup
*.indexes
*.lock
*.txt
*.jpg
*.scrivx
*.plist

補遺

  • あとは普通にgit diffでOK
  • いらんファイルがステージされたらgit rm --cached $(git ls-files --full-name -i --exclude-standard)でまとめて削除
  • textconvで指定するコマンドの標準出力が比較される模様

参考


giboで自動生成できるらしい

まだ試してない

7
8
1

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
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?