zip-файлы с контролем версий (docx, odt)

Существуют форматы, которые на самом деле являются замаскированными zip-файлами, например docx или odt. Если я храню их непосредственно в системе контроля версий, они обрабатываются как двоичные файлы. Моим идеальным решением было бы

  • иметь ловушку, которая создает каталог foo.docx / для каждого foo.docx файлов перед фиксацией, при необходимости распаковывая все файлы в него
  • , есть ловушка для повторного создания xml файлов
  • есть ловушка, которая воссоздает foo.docx из сохраненных файлов после обновления

Я не хочу, чтобы сами файлы docx контролировались версиями. (Мне известно о вопросе , где был предложен другой подход с настраиваемым различием.)

Выполнимо ли это? Можно ли это сделать с помощью Mercurial?

ОБНОВЛЕНИЕ:

Я знаю о крючках. Меня интересует конкретика. Вот сеанс, демонстрирующий ожидаемое поведение.

> hg add foo.docx
> hg status
A foo.docx
> hg commit
> # Change foo.docx with external editor
> hg status
M foo.docx
> hg diff
+++ foo.docx/word/document.xml
- An idea
+ A much better idea

20
задан Community 23 May 2017 в 10:27
поделиться