Я работаю в компании, которая использует SCCS для разработки своего основного приложения. В настоящее время у нас есть два потока разработки, которые называются стабильными и экспериментальными. В стабильную версию в настоящее время вносятся изменения, которые в основном являются исправлениями ошибок, а также могут устранять проблемы в Experimental. Experimental добавляет довольно большую новую функцию.
Основная проблема, с которой я сталкиваюсь, заключается в том, что разработчики, работающие над стабильной версией, также не вносят свои изменения в Experimental. Поскольку я работаю над Experimental, мне нужно объединить обе ветви.
Я сам использую Git около года, и он отлично работал с одной веткой (стабильной), так как я могу просто:
git checkout master
<copy all Stable files over, which will add changes>
git commit -a -m "Updated files 06/19/2011"
git checkout New_Feature
git rebase master
Это обновляет все мои файлы с изменениями из стабильной. Однако теперь, когда они используют две ветви разработки, я получаю много конфликтов слияния. Это связано с тем, что SCCS помещает метаданные в верхнюю часть исходных файлов, например:
#pragma ident "@(#)file1.c 1.233 06/17/11 Company_Experimental"
Обратите внимание на номер версии (1.233), дату и ключевые слова компании / филиала. Дата и номер версии меняются при каждой регистрации, а ветка меняется между обновлениями в Стабильном и Экспериментальном. Мне все равно, что находится наверху, так как, когда я проверяю файлы, он сбрасывает верх и получает новые значения в зависимости от того, когда и где я его проверяю.
С учетом всего сказанного эта строка всегда будет наверху. Есть ли способ игнорировать верхнюю строку или каким-то образом сделать этот рабочий процесс немного более управляемым, чтобы я мог объединять потоки разработки со своей собственной работой и не проходить через множество бессмысленных конфликтов слияния?
Примечание: я уже проводил кампанию по изменению систем контроля версий, но у нас есть много старых программистов, которые не собираются менять свои пути. Пожалуйста, не отвечайте: «Ваша компания должна перейти на X». Поверь мне, я с тобой на все 100%.