SVN или ртутный контроль версий текстовых документов - PullRequest
4 голосов
/ 16 июня 2011

Насколько я знаю, Microsoft использовала какое-то представление на основе xml в своей последней версии Office.Если это действительно так, то я бы предположил, что управление версиями будет работать, хотя вам, очевидно, придется разрешать любые встроенные изменения, используя старые отметки

<<<<<<

======

>>>>>>

в них перед загрузкой слова.

В этом другом вопросе упоминается проблема, но, похоже, принято считать, что предрешенный вывод о том, что управление версиями просто не работает в Word, и я хочу знать, почему?

Является ли управление версиями (т.е.Subversion) применяется в отслеживании документов?

Ответы [ 7 ]

7 голосов
/ 16 июня 2011

Существует расширение zipdoc для Mercurial, которое, похоже, обрабатывает сжатые файлы, такие как документы Word на основе XML, храня их несжатыми внутри, чтобы получить значимые дельты и осмысленно объединить их.Я не проверял это, но звучит как то, что вы ищете.

3 голосов
/ 16 июня 2011

Предрешенный вывод заключается в том, что, хотя большинство, если не все системы контроля версий, в том числе Mercurial, действительно работают с двоичными файлами, они дурачатся при их преобразовании и объединении.

Файлы Word имеют двоичную природу.Да, последние версии Office переключились на формат «Office Open XML», который включает в себя XML, но они по-прежнему оборачивают все это в zip-файл, что означает, что он все еще является двоичным (и да, я знаю, что все файлы находятся вдвоичный факт, вы понимаете, о чем я.)

Теперь многим системам управления версиями, как Mercurial, так и Subversion, можно сказать, как объединить любой тип файла, который он считает двоичным, предоставив ему внешний инструмент объединения, который может выполнятьзадание.

В основном это означает, что если вы можете найти программу, которая может взять два файла Word, различить их и разрешить примирить различия, то вы в деле.

Есливы разархивировали файл Word и версировали его содержимое, тогда да, вы можете получить конфликты слияния, которые вы можете разрешить с помощью Mercurial, однако содержимое все равно будет в формате, который вы не написали сами, поэтому согласование сложных конфликтов слияния может не сработать.быть просто трудным, они могут быть невозможными.

Короче говоря, системы контроля версий превосходятЯ в храню двоичных файлов, но они сосут в diffing и слиянии их.

Если вам никогда не понадобится diff или объединить, вы можетеиспользуйте Mercurial или Subversion или что-то еще, и это будет прекрасно работать.

2 голосов
/ 16 июня 2011

Новые форматы фактически основаны на XML, однако сам файл .docx фактически является файлом zip. Так что в конечном итоге это все еще двоичный файл ...

1 голос
/ 18 декабря 2013

Ответы на различные пункты или предположения, прочитанные здесь:

  • Да, subversion отлично справляется с различием двоичных файлов .Например, 60 версий файла размером 30 МБ занимают 90 МБ для одного из моих документов с большим количеством фотографий.
  • Да, Tortoise SVN автоматически вызывает собственный MSWord diff и, таким образом, позволяет видетьточные различия (включая форматы) между любыми двумя версиями на уровне персонажа.
  • Рассмотрите возможность использования функций отслеживания изменений msWord вместо постерио сравнения, это также будет отслеживать ходы, держать авторови т. д. Отвечает на различные запросы ...
  • Да, файл docx - это сжатый каталог с файлами xml.Попробуйте, просто откройте файл docx с помощью утилиты zip или распакуйте его!
  • Рассмотрите возможность сохранения в XML вместо docx, если вы хотите расширить ключевое слово:

  • Сохраните ваш файл как .xml вместо .docx;хотя ваш файл становится намного больше (больше не упаковывается в архив), вы можете сэкономить место с помощью сжатия SVN, более эффективным для текста, чем двоичные файлы, я ожидаю.

  • Вставьте ваши ключевые слова snv (например, $ Rev $) всвойства документа word (с помощью File-Info, Properties на правой панели)
  • Отображение информации в документе с помощью полей: Isert-Quick Parts-Document Property, например

Мне кажется, это работает.

Родольф

1 голос
/ 17 июня 2011

Я бы поставил вариант использования на передний план.Довольно многим людям в мире нужны инструменты для сравнения двух версий одного и того же документа Word, но они не разработчики, а, например, адвокаты.У клиентов моей юридической фирмы документы отправляются их клиентам и возвращаются с изменениями, поэтому сравнение на основе документов абсолютно необходимо.Они используют либо встроенную функцию сравнения Word, либо сторонние инструменты (WorkShare DeltaView - это что-то вроде промышленного стандарта).Эти инструменты позволяют также сравнивать PDF-документы.

Вариант использования здесь явно основан на содержании: адвокаты должны быстро получить обзор различий между двумя версиями контракта.Обе версии могут быть сохранены в системе управления документами как «версии», или, в случае DeltaView, файл дельты может быть сохранен для дальнейшего просмотра.

Каков вариант использования для разработчика?Системы контроля исходного кода означают контроль «ИСТОЧНИКА», а не «контроль всего, что происходит в моем проекте».Я предпочел бы хранить связанные с проектом документы (планы, спецификации, требования, электронные письма) в другом магазине, а не в Mercurial.- С другой стороны, я часто использую документы Word или шаблоны Word как часть решения в проектах шаблонов документов, и, конечно, эти документы являются исходными - поэтому они сохраняются в репозитории.Но необходимость визуализировать различия до сих пор была относительно небольшой, особенно если ваши комментарии хороши («Версия 1 - init», «Версия 2: добавлено текстовое поле в заголовке», «Версия 3: добавлена ​​информация нижнего колонтитула»"и т. д.).

1 голос
/ 16 июня 2011

Полагаю, это зависит от того, кто будет использовать документы. Обычно только разработчики могут использовать VCS, поэтому вы можете усложнить жизнь людям, которые просто хотят получить доступ через общий диск.

С другой стороны, история изменений часто очень важна, и я часто вижу текстовые документы с большими резюме вверху, в которых перечислены все изменения, что кажется действительно глупым.

Я думаю, что облачные решения, такие как Google Docs, вероятно, восполнят этот пробел в будущем. Или, может быть, просто команда вики. Как правило, вы торгуете некоторыми из более интересных функций слова, чтобы иметь более открытый обмен опытом, но Google Docs становится довольно мощным.

0 голосов
/ 16 июня 2011

Зависит от настройки.

Если это недолговечный документ, в котором вы хотите отслеживать изменения, используйте внутренний контроль Word.

В противном случае используйте SVN или Sharepoint или другие внешние средства записи версионных документов. Если вы этого не сделаете, вы рискуете, что кто-нибудь может перезаписать файл, потеряв всю информацию о версиях.

...