Я отвечаю за несколько файлов Excel и файлов схемы SQL. Как мне улучшить контроль версий документов для этих файлов?
Мне нужно знать, какая часть была изменена (другая часть) в этих файлах, и сохранить все версии для справки. В настоящее время я добавляю отметку времени к имени файла, но обнаружил, что это неэффективно.
Есть ли способ или передовая практика улучшить контроль версий документа?
Кстати, редакторы присылают мне файлы по электронной почте.
git
version-control
ms-office
versioning
Маркус Торнтон
источник
источник
Ответы:
Поскольку вы отметили свой вопрос мерзавец Я предполагаю, что вы спрашиваете об использовании Git для этого.
Что ж, дампы SQL - это обычные текстовые файлы, поэтому имеет смысл отслеживать их с помощью Git. Просто создайте репозиторий и храните их в нем. Когда вы получаете новую версию файла, просто перезапишите ее и зафиксируйте, Git все выяснит для вас, и вы сможете увидеть даты модификации, проверить конкретные версии этого файла и сравнить разные версии.
То же самое верно и для
.xlsx
их распаковки..xlsx
Файлы - это заархивированные каталоги файлов XML (см. Как правильно собрать действительный файл xlsx из его внутренних подкомпонентов? ). Git будет рассматривать их как двоичные, если они не распакованы. Можно распаковать.xlsx
и отслеживать изменения отдельных файлов XML внутри архива.Вы также можете сделать это с
.xls
файлами, но проблема здесь в том, что.xls
формат является двоичным, поэтому вы не можете получить из него значимые различия. Но вы по-прежнему сможете видеть историю изменений и проверять конкретные версии.источник
.xlsx
- это XML, поэтому все должно работать нормально. В общем, нет возможности легко сравнить два.xls
файла. Вы, вероятно, могли бы добавить хук перед фиксацией, который будет.csv
рядом с ним, и вы сможете различать их.Ответ, который я написал здесь, можно применить и в этом случае. Инструмент под названием xls2txt может обеспечить удобочитаемый вывод из файлов .xls. Короче говоря, вы должны поместить это в свой файл .gitattributes:
И в .git / config:
Конечно, я уверен, что вы можете найти аналогичные инструменты и для других типов файлов, что делает
git diff
их очень полезным инструментом для офисных документов. Вот что у меня сейчас есть в моем глобальном файле .gitconfig:В книге Pro Git есть хорошая глава на эту тему: 8.2 Настройка Git - Атрибуты Git
источник
Я боролся с этой проблемой в течение последних нескольких дней и написал небольшую утилиту .NET для извлечения и нормализации файлов Excel таким образом, чтобы их было намного легче хранить в системе контроля версий. Я опубликовал исполняемый файл здесь:
https://bitbucket.org/htilabs/ooxmlunpack/downloads/OoXmlUnpack.exe
..и источник здесь:
https://bitbucket.org/htilabs/ooxmlunpack
Если есть какой-либо интерес, я рад сделать это более настраиваемым, но на данный момент вы должны поместить исполняемый файл в папку (например, в корень исходного репозитория), и когда вы запустите его, он:
Ясно, что не все эти вещи необходимы, но конечным результатом является файл электронной таблицы, который по-прежнему будет открываться в Excel, но который гораздо лучше поддается различному и инкрементному сжатию. Кроме того, сохранение извлеченных файлов делает более очевидным в истории версий, какие изменения были применены в каждой версии.
Если есть какой-то аппетит, я рад сделать инструмент более настраиваемым, так как я думаю, не все захотят извлекать содержимое или, возможно, значения, удаленные из ячеек формулы, но на данный момент они очень полезны для меня.
В тестах электронная таблица размером 2 МБ «распаковывается» до 21 МБ, но затем я смог сохранить пять ее версий с небольшими изменениями между каждой в файле данных Mercurial размером 1,9 МБ и эффективно визуализировать различия между версиями, используя Beyond Compare в текстовый режим.
NB: хотя я использую Mercurial, я прочитал этот вопрос во время исследования своего решения, и в решении нет ничего специфичного для Mercurial, должно работать нормально для Git или любой другой VCS.
источник
Танте порекомендовала очень простой подход к управлению форматами файлов на основе ZIP в Git :
источник
Используйте расширение открытого документа
.fods
. Это простой несжатый формат разметки XML, который могут открывать как Excel, так и LibreOffice, и различия будут хорошо выглядеть.источник
Мы создали расширение командной строки Git с открытым исходным кодом для книг Excel: https://www.xltrail.com/git-xltrail .
Вкратце, главная особенность заключается в том, что он позволяет
git diff
работать с любыми форматами файлов книги, так что он показывает разницу в содержимом VBA книги (в какой-то момент мы сделаем эту работу и для содержимого рабочих листов).Пока еще рано, но это может помочь.
источник
Как упоминалось в другом комментарии к ответу, файлы .xlsx - это просто XML.
Чтобы попасть в каталог XML (который можно
git
использовать), вы должны «разархивировать» файл .xlsx в каталог. Быстрый способ увидеть это в Windows - переименовать файл <filename> .xlsx в <filename> .zip, и вы увидите внутреннее содержимое. Я бы сохранил это вместе с двоичным файлом, чтобы при оформлении заказа вам не нужно было выполнять другие шаги, чтобы открыть документ в Excel.источник
У меня очень хорошо работает эта утилита Excel:
Контроль версий для Excel
Это довольно простой инструмент для управления версиями книг и макросов VBA. После фиксации версии она сохраняется в репозитории Git на вашем ПК. Я никогда не пробовал повторно. Файлы схемы SQL, но я уверен, что есть выход.
источник
xltrail
намного проще, чем это.Мой подход к файлам Excel аналогичен подходу Джона, но вместо работы с необработанными текстовыми данными Excel я экспортирую в более удобные форматы.
Вот инструмент, который я использую: https://github.com/stenci/ExcelToGit/tree/master
Все, что вам нужно, - это загрузить файл .xlsm (щелкните ссылку «Просмотр исходных данных» на этой странице ). Не забудьте проверить настройки Excel, как описано в файле readme. Вы также можете добавить код для экспорта данных SQL в текстовые файлы.
Книга представляет собой конвертер из двоичного Excel в текстовые файлы и средство запуска инструментов Git для Windows, а также может использоваться с проектами, не связанными с Excel.
Моя рабочая версия сконфигурирована с десятками книг Excel. Я использую этот файл также для открытия Git-gui для проектов, отличных от Excel, просто добавляя папку git вручную.
источник