Ручное слияние на МЕРЗАВЦЕ

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

Очевидной проблемой были бы различия в самом коде между тестовыми и продуктивными средами, и это точно, чем я пытаюсь управлять с МЕРЗАВЦЕМ.

Поскольку мой тестовый ENV довольно энергозависим, я полагал, что мог создать ответвление в МЕРЗАВЦЕ для него, в то время как существуют внесенные изменения (и сохраните код с тестовыми конфигурациями там), и после того, как код был принят, я объединю его в производство.

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

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

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

спасибо!

f.

7
задан filippo 28 October 2011 в 09:19
поделиться

2 ответа

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

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

Unset

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

Но другим интересным драйвером gitattribute был бы clean filer:

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

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

5
ответ дан 7 December 2019 в 07:40
поделиться

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

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

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

2
ответ дан 7 December 2019 в 07:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: