Фиксация машины определенные конфигурационные файлы

Вы больше не плохо себя чувствуете об использовании 'не средства управления обратной передачи - и расчет как к smush их в традиционную среду asp.net.

Это означает, что современный (свободный использовать) JavaScript управляет таким это или это , или это может все использоваться без той попытки приспособить круглый штепсель в чувстве квадратного отверстия.

78
задан R0MANARMY 10 October 2012 в 02:42
поделиться

4 ответа

Пусть ваша программа прочитает пару файлов конфигурации для своих настроек. Сначала он должен прочитать файл config.defaults , который будет включен в репозиторий. Затем он должен прочитать файл config.local , который должен быть указан в .gitignore

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

В качестве варианта вы можете иметь только общий файл config , который вы отправляете в систему управления версиями, и заставляете его делать что-то вроде включают config.local для внесения значений, зависящих от компьютера. Это вводит в код более общий механизм (по сравнению с политикой), и, следовательно, позволяет выполнять более сложные конфигурации (если это желательно для вашего приложения). Популярное расширение от этого, которое встречается во многих крупномасштабных программах с открытым исходным кодом, - это include conf.d , который считывает конфигурацию из всех файлов в каталоге.

Также см. Мой ответьте на аналогичный вопрос.

57
ответ дан 24 November 2019 в 10:39
поделиться

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

Сначала я создаю новую ветку на основе главной ветки (в этом конкретном случае я использую git-svn, поэтому мне нужно зафиксировать from master, но здесь это не очень важно):

git checkout -b work master

Теперь измените файл (ы) конфигурации по мере необходимости и выполните фиксацию. Обычно я помещаю в сообщение фиксации что-то особенное, например «NOCOMMIT» или «PRIVATE» (это будет полезно позже). На этом этапе вы можете работать в своей частной ветке, используя свой собственный файл конфигурации.

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

#!/bin/sh

BRANCH=`git branch | grep ^\\* | cut -d' ' -f2`
if [ $BRANCH != "master" ]; then
  echo "$0: Current branch is not master"
  exit 1
fi

git log --pretty=oneline work...master | grep -v NOCOMMIT: | cut -d' ' -f1 | tac | xargs -l git cherry-pick

Сначала проверяется, что я нахожусь на ветке master (проверка работоспособности). Затем он перечисляет каждую фиксацию в работе , отфильтровывает те, которые упоминают ключевое слово NOCOMMIT, меняет порядок и, наконец, отбирает каждую фиксацию (теперь начиная с самой старой) в master ].

Наконец, после внесения изменений в основной восходящий поток, я переключаюсь обратно на work и перебазирую:

git checkout work
git rebase master

Git повторно применяет каждый из коммитов в ветке work , фактически пропуская по сравнению с теми, которые уже были применены в master через выборку вишен. У вас должны остаться только локальные коммиты NOCOMMIT.

10
ответ дан 24 November 2019 в 10:39
поделиться

Одна из возможностей - иметь актуальные файлы в вашем .gitignore, но проверять конфигурации по умолчанию с другим расширением. Типичным примером приложения Rails может служить файл config / database.yml. Мы проверяем config / database.yml.sample, и каждый разработчик создает свой собственный config / database.yml, который уже имеет .gitignored.

8
ответ дан 24 November 2019 в 10:39
поделиться

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

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

Мы использовали аналогичный подход в предыдущей компании. Сценарий установки автоматически определил, в какой среде вы работали (песочница, разработка, контроль качества, производство), и автоматически поступил правильно. Если у вас есть файл config.sandbox, и вы запускаете его из песочницы, он будет связывать его (в противном случае он просто связывает файл .defaults). Обычная процедура заключалась в копировании .defaults и изменении настроек по мере необходимости.

1
ответ дан 24 November 2019 в 10:39
поделиться
Другие вопросы по тегам:

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