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

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