Преимущества НЕ версионности .dproj - PullRequest
10 голосов
/ 20 февраля 2011

Я читал в блоге о версии Insight (http://www.delphifeeds.com/go/s/77066)) о том, что (помимо прочего) JCL не имеет своих файлов .dproj под управлением версией, и мне было интересно, каковы будут преимущества этого.

Тем более, что я и мой коллега-разработчик часто "глючим" друг с другом, проверяя файлы проекта с нашими любимыми настройками отладки (ему нравится оптимизация, я хочу выключить ее). И из-за регулярных сбоев Delphi 2007, которые запутывают файл dproj со всеми видами неисправных зависимостей. Разве управление версиями не помогает в этих вещах?

В настоящее время мы используем Starteam в качестве нашей VCS.

Ответы [ 6 ]

7 голосов
/ 21 февраля 2011

Если вы используете Delphi 2009 или более позднюю версию Наборы опций являются идеальным решением для этой проблемы.

Наборы опций - это, в основном, наборы настроек, которые обычно находятся в DPROJ (который вы делаете версией), но вместо этого хранятся в файле .OPTSET (который вы не делаете версией).

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

Далее в диспетчере проектов (D2009 и выше) сначала на узле конфигурации DEBUG, а затем на узле конфигурации RELEASE, щелкните правой кнопкой мыши и выберите «Новый набор параметров». Вызовите этот параметр, чтобы установить что-то вроде "Local Developer Debug Settings.optset" и "Local Release Release Settings.optset".

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

Если вы хотите внести локальное изменение в конфигурацию проекта, а не редактировать конфигурацию проекта, щелкните правой кнопкой мыши Набор параметров в менеджере проектов и выберите «Изменить набор параметров».

В среде IDE будут применены измененные настройки из наборов параметров без изменения исходного DPROJ. Настройки применяются иерархически с наборами параметров, которые применяются последними.

4 голосов
/ 20 февраля 2011

Я храню в своих файлах .dproj настройки, используемые msbuild для процесса сборки.Например, условные определения, настройки компилятора и т. Д. Если вы делаете то же самое, вам нужно их версии.

Если вы используете версию Delphi, в которой среда IDE регулярно ломает файл .dproj, то, безусловно, контроль версий поможет вам дать отпор.

Я не вижу никаких преимуществне версировать их.

2 голосов
/ 21 февраля 2011

Если вы решите не создавать версию своего DPROJ, при создании релизных сборок я рекомендую использовать отдельный сценарий сборки, который вы делаете в версии, например,

  • пакетный файл, который вызывает компилятор командной строки и указывает необходимые параметры компилятора и пути.
  • проект Finalbuilder (намного проще, чем командный файл)
  • скрипт msbuild (сам никогда этого не делал, но я предполагаю, что это возможно).
1 голос
/ 21 февраля 2011

Единственная причина, по которой я могу подумать, чтобы НЕ управлять файлами DPROJ, заключается в том, что, как и JCL, вы можете восстановить их как часть процесса сборки.JCL - это библиотека классов (code-library), а не приложение, и она нацелена на несколько версий Delphi с различиями в своих файлах .dproj.На самом деле версии Delphi до 2005 года вообще не использовали файлы .dproj.

1 голос
/ 20 февраля 2011

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

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

Я использую этот метод, чтобы никогда не регистрировать изменения барахлаиз DPROJ (например, изменение активной конфигурации с RELEASE на DEBUG) и DFM (например, изменения свойств ExplicitHeight и ExplicitWidth).

0 голосов
/ 08 сентября 2014

Более поздние версии Delphi XE4, 5, 6 и XE7 очень стабильно конструируют XML-файлы .dproj. Я не жалуюсь, используя git для версий .dproj и .groupproj файлов. Обновления этих файлов с использованием редактора IDE приводят только к ожидаемым аккуратным и чистым изменениям.

...