Как обращаться с файлами, которые имеют отношение к управлению версиями, но которые часто меняются неактуальными способами?
.dproj
файлы необходимы для проектов Delphi, поэтому они должны находиться под контролем версий.
Эти файлы контролируются IDE, а также содержат некоторую информацию, которая часто изменяется, но совершенно не имеет отношения к управлению версиями.
Например: я часто меняю начальные параметры приложения (несколько раз в день), но не хочу случайно передавать файл проекта, если изменилась только часть, связанная с параметрами запуска.
Итак, как справиться с этой ситуацией?
Чистым решением было бы разделить файл, но это невозможно в Delay IDE AFAIK.
Можно ли игнорировать определенную часть файла?
Мы используем Subversion на данный момент, но можем скоро перейти на Git.
Ответы
Ответ 1
SVN/git не может "знать", какие биты файла важны, а перевод того, что важно для вас совершить или нет в "бит" файла, будет затруднен (особенно если вы точно не знаете, как информация структурирована внутри него). Наиболее практичным решением является проверка изменений, внесенных в файл, и принятие решения о том, следует ли их комментировать или нет.
Вы можете решить, какие биты файла вы хотите совершить с помощью git. Это, однако, не автоматический процесс, который вы, похоже, ищете.
Ответ 2
В нашем случае разработчику очень редко приходится вносить существенные изменения в файлы .bdsproj,.dpr,.res. Поэтому мы отклоняем фиксацию (pre-commit hook in subversion), если в комментарии коммита отсутствуют специальные теги: [добавить файл проекта] или [добавить файл res]. Это предотвращает "изменчивые" изменения этих файлов.
Ответ 3
Для конкретного случая начальных параметров: плагин DDevExtentions известного Andreas Hausladen позволяет хранить исходные параметры отдельно dproj
. Подробнее о DDevExtensions см. его сайт.
EDIT: если я правильно помню, эта функция была создана только потому, что у него была эта точная проблема с параметрами запуска и контролем версий.
Ответ 4
Я бы не сохранил файлы .dproj
непосредственно в управлении версиями, а предоставил файл по умолчанию, который должен быть переименован пользователем, чтобы получить дефектную работу Delphi.
Ответ 5
Используйте параметр --assume-unchanged
на git update-index <file>
, как описано здесь и fooobar.com/info/2009/....
Вы можете сделать простые псевдонимы для тех, кто в этом нуждается, просто.