Как сохранить несколько версий тестовых файлов для разных клиентов? - PullRequest
1 голос
/ 24 января 2012

У меня есть текстовый файл, который мне нужно поддерживать несколько разные версии для нескольких клиентов клиентов.Содержание файла не очень важно, но я поделюсь в любом случае.Файл содержит сценарий SQL (вместе с некоторыми другими материалами), который мои клиенты загружают в локальное стороннее программное обеспечение (которое не принадлежит моей компании, и мы не имеем никакого контроля над этим программным обеспечением).Цель сценария - разрешить другому программному обеспечению выводить отчет.

Каждому клиенту требуется немного другая версия сценария.Как минимум, имя файла будет другим (содержащим имя клиента), а имя отчета (которое является текстом в файле) будет другим.Для некоторых из них SQL немного модифицирован для соответствия их среде.

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

Я рассмотрел вопрос об использовании программного обеспечения для контроля версий, с одной веткой на клиента, и затем я мог бы объединить любые обновленияв каждой ветви - но я не уверен, что слияние будет достаточно точным, и поэтому не сэкономит мне время и вызовет больше головной боли.Кроме того, сможет ли это обрабатывать разные имена файлов в каждой ветви?

Любые идеи приветствуются.

Обновление: Ниже приведены два упрощенных примера.

Имя файла: sql_abcclient_system2.txt

//Title
ABCClient Report
//end Title
SELECT site.name, site.phone
FROM site
WHERE site.type IN (1, 2, 3)

Имя файла: sql_xyzclient_system3.txt

//Title
XYZClient Report
//end Title
SELECT site.name, isnull(site.phone, 'no-phone'), site.status
FROM site
WHERE site.type IN (1, 2)

Кроме того, звучит разумно для храненияопределенные параметры в базе данных или конфигурационном файле, такие как имя клиента.Но я не уверен, что это будет возможно для других изменений в файле, таких как изменения в SQL.

Ответы [ 2 ]

1 голос
/ 25 января 2012

Это для управления крюком.

Вам нужна версия:

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

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

content filter driver

Таким образом, не нужно управлять несколькими филиалами, и любое общее обновление немедленно доступно для всех клиентов (путем обновления шаблона и / или сценария).

0 голосов
/ 25 января 2012

Что касается слияния файлов, я не думаю, что они могут быть сделаны автоматически.

Например, если вы использовали ClearCase и хотели объединить только то, что вы рассматривали как обновление, процесс объединения обнаружит, что в файлах также есть другие различия, и попытаетсячтобы понять, как объединить их тоже.

В конце вы должны были бы «помочь» слиянию, вручную выбрав, какую часть сохранить при слиянии для каждого файла.
Так много для автоматического слияния.

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

Если я получу то, что вы пытаетесь сделать, процедура с помощью системы контроля версий, я считаю, будет очень утомительной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...