Сейчас плавно идём к общему доступу ко всем исходникам у всех девелоперов — так вроде бы независимые разработчики смогут подсматривать друг у друга код, а может быть даже и указывать друг другу на ошибки. Но вот пароли шарить между ними не хотелось бы (даже к development окружению).
Как это выглядит сейчас (по большей части):
— все исходники в TFS вместе с конфигами, в которых пароли на development базы данных
— во время паблиша, всё хозяйство (бинарники) кладётся в тестовую среду (с машины разработчика), пароли/координаты бд перебиваются
— после тестов бинарники ручками кладутся с тестового сервера в продакшн. конфиги либо не копируются, либо (если нет уверенности, что конфиг не изменился) копируются и перебиваются пароли/координаты бд
Здравствуйте, Neco, Вы писали:
N>Сейчас плавно идём к общему доступу ко всем исходникам у всех девелоперов — так вроде бы независимые разработчики смогут подсматривать друг у друга код, а может быть даже и указывать друг другу на ошибки. Но вот пароли шарить между ними не хотелось бы (даже к development окружению). N>Как это выглядит сейчас (по большей части): N>- все исходники в TFS вместе с конфигами, в которых пароли на development базы данных N>- во время паблиша, всё хозяйство (бинарники) кладётся в тестовую среду (с машины разработчика), пароли/координаты бд перебиваются N>- после тестов бинарники ручками кладутся с тестового сервера в продакшн. конфиги либо не копируются, либо (если нет уверенности, что конфиг не изменился) копируются и перебиваются пароли/координаты бд
N>у кого были похожие трудности, как решали?
Если можно все такие вещи вынести в отдельные файлы, то имеет смысл сделать несколько наборов таких конфигов (в папочки их засунуть) и build task, запускающийся перед основным билдом, который бы брал эти конфиги и применял к текущему состоянию исходников. А сами конфиги в исходниках либо не коммитятся вообще, либо коммитится какой-нибудь из наборов (например тестовый на локальном окружении — как у вас сейчас). Папочки с наборами конфигов хранить в subrepositories, на которые выдавать права согласно регламенту. Не знаю только, можно ли в TFS настроить что-то такое.
Для prebuild таска в java можно использовать ant, в дотнете — MSBuild custom tasks.
Здравствуйте, Neco, Вы писали:
N>у кого были похожие трудности, как решали?
Сталкивался с такой проблемой, у нас у каждого разработчика своя база (бывает рабочая бывает тестовая и т.д.)
Решили так:
Каждый разработчик работает со своей базой (отличается не только адрес, но и тип БД).
Для этих целей был написан маленький конфиг: dev.config (в нем только описание работы с БД), все остальное из основного конфига.
В #if DEBUG $endif используется только этот конфигурационный файл для работы с БД, в релизе соответственно все берется с основного конфига.
Сам файл dev.config на TFS лежит только шаблонный, и комитить никому нельзя его.
Проблем все решились таким образом.
Остается одна только проблема: в TFS не нашел ignore in commit, такое было в subversion. Поэтому перед Check In-ом необходимо снимать флаг с файла dev.config иначе ругатся на права будет.
Думаю если надо можно многое так поделить, не только описание БД.