2008-09-22 1 views
7

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

Как вы справляетесь с этим?

ответ

4

Наши файлы свойств находятся в каталоге «properties». Каждый разработчик имеет свои собственные файлы «username.properties», которые могут переопределять свойства в файлах, специфичных для среды, таких как «dev.properties» или «test.properties». Это использует непреложные свойства ANT (включая личные, свойства THEN).

2

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

0

Хорошо, но, например, файл db-config должен храниться под контролем версий и не должен игнорироваться.

+0

Пользователь никогда не должны храниться в системе управления версиями (см ответ Дастина за то, что кажется хорошим решением). – Mac 2008-09-22 17:26:05

2

Мы строим или приложение с помощью муравья и наши построения Ant файлов содержит ссылку на имя файла, как это:.

$ {env.COMPUTERNAME} - свойства

Все свойства в этом файле будет переопределите свойства в основном файле сборки, если они существуют. Поэтому разработчики могут создать файл переопределения, названный по имени своего компьютера, для переопределения любых свойств, которые им нравятся, например, имя базы данных и/или jdbc url. Этот файл можно затем проверить в контроле версии

-1

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

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

-1

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

<property environment="env" /> 
<property file="${basedir}/online/${env.LOGNAME}.build.properties" /> 
<property file="${basedir}/online/${env.USERNAME}.build.properties" /> 
<property file="${basedir}/online/default.properties" /> 

Если у вас есть LOGNAME набор, скажем, «davec» и davec.build.properties существует, то она перекрывает любые значения в default.properties.

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

0

Если они должны находиться в одном хранилище, создайте папку «dev» или что-то еще, а затем подпапку для каждого разработчика, чтобы проверить свои пользовательские файлы.

Или иметь отдельный репозиторий для пользовательских файлов.

Или оставьте это индивидуальному разработчику на том, что они делают со своими собственными файлами.

0

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

У нас есть файл personal.properties, который загружается и переопределяет любые значения по умолчанию для проекта. Файл находится в домашнем каталоге пользователей. При любых значениях, которые являются специфическими для пользователя, то значение по умолчанию устанавливается следующим образом:

database_user_name = DATABASE_USER_NAME_MUST_BE_SET_IN_PERSONAL_PROPERTIES_FILE 

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

Unable to login to database with username: "DATABASE_USER_NAME_MUST_BE_SET_IN_PERSONAL_PROPERTIES_FILE" 
3

Держите набор по умолчанию в системе управления версиями, а затем либо:

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

  • есть каждый разработчик держать свои конфиги под контролем источника под каким-то схему идентификации (username.properties как @Dustin использует)

Преимущество хранения Разработчика специфические конфигурации в исходном управлении позволяют легко переносить с одного компьютера на другой (например, в случае сбоя оборудования или обновления). Его простой svn co [repos] и ant

0

Используйте шаблоны, вы не добавляете db-config в исходное управление (на самом деле вы используете SVN: IGNORE на нем) и добавляете db-config.tmpl или db-config .template или db-config.tmp или что-то еще, что ясно говорит вам, что это шаблон.

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

0

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

2

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

Kind Regards конкретные параметры

Смежные вопросы