Предотвращение полной перестройки с использованием веток с помощью GIT и Visual Studio 2005 - PullRequest
1 голос
/ 02 октября 2009

Одна из проблем, с которой я столкнулся при использовании веток в GIT, заключалась в том, что при переключении веток было очень легко заставить Visual Studio 2005 полностью перестроить источник из-за изменения даты / времени при переключении ветвей. *

Мой типичный макет такой.
СВН / дистанционный
мастер
тест

При переключении между тестовой ветвью и главной ветвью, даже если обе они совместно используют одну и ту же метку времени в проекте. Это приведет к тому, что Visual Studio 2005 снова перестроит весь проект.

Чтобы решить эту проблему, я решил создать другой GIT-репозиторий, но создать новый репозиторий, извлеченный из основного репозитория c: / myPrimary 'test'. Таким образом, несмотря на то, что как основная ветвь, так и ветки тестирования имели свою собственную папку через дополнительный репозиторий, это решило необходимость полной перекомпиляции исходного кода при переключении между ними.

Просто проверяют, была ли у кого-то еще эта проблема, и решение, которое они придумали, чтобы решить ее. Обратите внимание, что полная перекомпиляция исходного кода занимает около 20 минут.

1 Ответ

1 голос
/ 02 октября 2009

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

Visual Studio 2005, как правило, очень хорош в инкрементных сборках, но в C ++ очень легко создавать чрезмерно взаимозависимые пути включения, если вы не будете осторожны в управлении сложностью проекта.

Вы пытались проанализировать зависимости исходного файла, чтобы увидеть, вызывает ли набор часто изменяемых заголовочных файлов большой набор объектных файлов?

...