Где я работаю, нам нужно переосмыслить способ разработки программного обеспечения и отслеживать каждую выпущенную версию. У вас есть предложения по решению наших проблем?Решение проблем с версиями и построением
Мы разрабатываем на Windows, в C++ с помощью VS 2005 (и C++ Builder для некоторого интерфейса материала)
Мы используем GIT, но в худшем из возможных способов можно себе представить. Мы несколько открыты для перехода к другому источнику контроля.
У нас есть 40 + встроенная DLL. Многие из них могут часто обновляться.
У нас есть несколько совершенно разных проектов, которые зависят от этих DLL.
Мы поставляем более 100 систем в год, каждый из которых требует специальной конфигурации. Большинство также требует пользовательских патчей. Мы стараемся как можно больше вернуть эти патчи в основной багажник, но вилки неизбежны.
Если через несколько лет мы должны обновить систему клиента, мы сможем вернуть код, используемый для этой версии, и все параметры среды. Нам нужен способ подтвердить, что этот код соответствует двоичным файлам в системе клиента. Возвращение кода должно быть настолько простым, насколько возможно, и, возможно, за исключением компилятора, у нас должно быть все необходимое для компиляции, выполнив несколько простых операций.
Программист должен иметь возможность выпускать обновление для системы клиента, не зависимо от любого другого программиста независимо от того, в каком проекте (DLL) находится патч. Он должен быть способен сделать это быстро (менее 30 минут). Это делает концепцию единого официального выпуска практически невозможным.
Обмен кодом между разработчиком, работающим над тем же проектом, должен быть простым и быстрым.
Учитывая нашу огромную базу кода, мы хотим ограничить, насколько разработчик должен перекомпилировать, когда он получает патч (совместное использование двоичных файлов является обязательным).
Разработчик должен иметь возможность переключаться с одного системного релиза или ветви на один из них на другой (обычно приходится работать одновременно с несколькими релизами).
Edit: -Мы не использовать Makefile до сих пор, но это то, что мы готовы рассмотреть. Все построено с использованием VS-решений.
Что вы подразумеваете под «Мы используем GIT, но в худшем возможном возможном виде»? – bdonlan
У нас нет канонического репо. Кто-то может выпускать новую версию DLL, но сохранить код в своем собственном репо. Невозможно отследить его до кода из версии DLL. –
Есть ли способ попытаться консолидировать код на меньшее количество ветвей? Похоже, что по каким-то причинам были сделаны некоторые плохие выборы (временные ограничения, отсутствие лидерства, недостаточная эффективная связь между разработчиками), достигающая высшей точки в том, что звучит как маленький кусок ада для любого в вашей позиции, пытающегося улучшить ситуацию. –