Вход |  Регистрация

Все Тэги

Настройка инструментов Diff и Merge для документов в TFS 2010 и VisualStudio 11 – Part 1 (Cравнение офисных документов MS Word)

26.07.20121035 просм.

Краткая справка:

Diff (сравнение)– инструмент, позволяющий  сравнить содержимое двух файлов и выделить их различия.

Merge (слияние)– инструмент, позволяющий  соединить 2 похожих файла в 1, с учётом изменений в каждом из них.

В ходе работы над большим проектом  по Банковскому ПО (Управление Кредитным портфелем) наш  Junior разработчик поделился в беседе возникшей сложностью. Проблема в том, что при работе с запросом на изменение в спецификации ему тяжело обнаружить все изменения в бухгалтерской модели проводок, обязательных к реализации.

Действительно, спецификация финансовых транзакций, которая к нам приходит от заказчика составляет порядка 300 страниц. Стандартный инструмент  MS Word «Track Changes» включен, и содержит историю всех изменений и согласований, через которые документ проходил у заказчика. Но «Tracking Changes» тут не помощник – он хранит историю изменнений , но не сравнивает два документа.

К счастью, все согласованные документы, поступающие в работу от заказчика, хранятся у нас в системе управления версиями. В качестве системы командной разработки мы используем TFS и Visual Studio 2010 (в перспективе планируем перейти на Visual Studio 11).

Таким образом вопрос упростился – как сравнить два варианта MS Word файла, хранящиеся в Source Control  TFS Visual Studio 2010 или Visual Studio 11?

Некоторые разработчики на проекте уже настроили Diff и Merge под себя. Мы решили поделиться этими знаниями как с командой, так и с Интернет-аудиторией.

Во-первых, есть замечательное коммерческое средство для сравнения основных форматов офисных документов – Diff Doc.

Во-вторых, Diff и Merge конфигурируются через VisualStudio IDE, которая позволяет выполнить программу с такими параметрами командной строки:

Tools > Options > Source Control > Visual Studio Team Foundation > Кнопка Configure User Tools…

Итак, для сравнения офисных документов c помощью приложения Diff Doc необходимо настроить следующие параметры:

  • Extention: .docx
  • Operation: Compare
  • Command: “C:Program Files (x86)Softinterface, IncDiffDocDiffDoc.exe”
  • Arguments: /M%1 /S%2

На практике это будет выглядеть так:

В зависимости от того, выбрали Вы Compare или Merge, в командной строке может быть использовано два или более параметра:

%1 Исходный файл сравнения (серверный) или “их”- файл, в случае 3-стороннего слияния
%2 Модифицированный файл сравнения (локальный) или “ваш”- файл, в случае 3-стороннего слияния
%3 Параметр используется для 3-стороннего слияния, чтобы указать на “общего прородителя” для “ваших” и  “их” изменений
%4 Заголовок для файла с результатом слияния, – файл, куда Merged-приложение  должно сохранить результат
%5 Дополнительные аргументы для Diff-приложения (примениемо только, если вы исполььзуете tf diff /options” из командной строки)
%6 Заголовок для файла %1
%7 Заголовок для файла %2
%8 Заголовок для файла %3
%9 Заголовок для файла %4

В-третьих, многие Open Source системы версионности (например SVN) уже в стандартной поставке интегрируются с офисными приложениями с помощью скриптов. Здесь можно подробней ознакомится с тем, как это делается в Tortoise SVN.

Помимо DiffDoс,  сам MS Word имеет замечательное средство для сравнения и слияния двух документов с включенным в них «Track Changes». Это команда «Compare» в закладке «Review»:

Эта команда доступна через COM-интерфейс MS Word. Рассмотрим интеграцию подробней на примере скрипта, написанного нашим специалистом:

Теперь нужно настроить Visual Studio на запуск нашего скрипта для Compare:

  • Extention: .docx
  • Operation: Compare
  • Command: ” C:WindowsSystem32wscript.exe “
  • Arguments: “C:diff-doc.js” %1 %2 //E:javascript

Цель достигнута – мы имеем возможность сопоставлять и объединять разные версии одного документа.

Во второй части статьи мы расскажем, как настраивать другие популярные приложения  для использования Diff и Merge из TFS Visual Studio 2010 или Visual Studio 11, WinMerge, Beyond Compare, Araxis, Beyond Compare, TortoiseMerge, Visual SlickEdit. Кроме  этого мы рассмотрим улучшения Diff и Merge в новом релизе Visual Studio 11.

Метки: , ,

Добавить комментарий

Для отправки комментария вам необходимо авторизоваться.

Партнеры DevOpsHub и DevOpsWiki