Вопрос

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

Очевидные проблемы были бы различиями в самом кодедже между тестовыми и производственными средами, и это именно то, что я пытаюсь управлять с Git.

Поскольку мой тест Env - довольно волатильный, я подумал, что я могу создать ветку в Git для нее, в то время как существуют изменения (и хранить код с тестовыми конфигурациями там) и после того, как код был принят, я бы объединил его в производство.

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

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

PS.: Пожалуйста, заметите, я не спрашиваю, как настроить WinMerge на Git. У меня есть эти инструменты, работающие. Мой вопрос заключается в том, как всегда выполнять ручные сливки между филиалами.

Спасибо!

е.

Это было полезно?

Решение

Отключить автоматическое слияние

Это может быть достичь, написав небольшой драйвер слияния, установлен в а. .gitattributes файл.
Политика вроде unset может быть то, что вы ищете.

Unset

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

Но еще один интересный гитаттрибут водитель будет чистый фильтр:

http://git-scm.com/figures/18333fig0703-tn.png

Это автоматически выполнило бы «чистый» скрипт вашего выбора, прежде чем совершить «очищенное» контент в репо.
Такой 'clean«Сценарий может помочь вам автоматизировать изменения, которые вы должны вносить в свой код, чтобы сохранить или изменить значения конфигурации, встроенные в нее.

Другие советы

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

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

Это спасает вас от возможных ошибок во время объединения, а также время, необходимое для слияния.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top