Я пытаюсь собрать эффективные способы, чтобы другие решили следующую проблему. На работе мы были вынуждены выпустить программную заплатку (которая будет установлена в системах конечного пользователя), которую мы хотим видеть только конкретному клиенту. Пользовательский код находится в собственной ветке управления исходным кодом. Проблема в том, что у нас есть две параллельные строки кода (и сценарии сборки) для синхронизации, и каждый раз, когда мы исправляем исходный код, мы должны исправлять и тестировать специфичный для клиента код.
Мне интересно, как другие организации справляются с этим сценарием? Мы открыты для бизнес-решений, а не только для технических (связанных с контролем источников). Например, мы говорили о том, чтобы сообщить клиенту, что он не может получать обновления в этой ветке.
Наша стратегия ветвления такая (на основе Руководства по ветвлению TFS в Visual Studio , хотя мы используем для этого Subversion)
svn
означает, что они не загромождают ваш обычный рабочий процесс. Если очереди исправлений выглядят так, как будто они могут быть полезны, вы можете попробовать их, используя git-svn или hgsubversion . Использование внешнего интерфейса DVCS для сглаживания сложного рабочего процесса svn
может даже побудить людей рассмотреть возможность перехода на оптовую продажу DVCS, чтобы получить все остальные преимущества.
hg
илиgit
я мог бы предложить вам использовать очереди исправлений ( расширение Mercurial Queues или Stacked Git ), но я не знаю, есть ли в TFS что-то подобное.