Estou tentando reunir maneiras eficazes pelas quais outras pessoas resolveram o seguinte problema. No trabalho, fomos forçados a lançar um patch de software (a ser instalado nos sistemas do usuário final) que queremos apenas visível para um cliente específico. O código personalizado está em sua própria ramificação de controle de origem. O problema é que temos duas linhas de código paralelas (e construímos scripts) para mantermos sincronizadas, e toda vez que corrigimos o código original, precisamos corrigir e testar o código específico do cliente.
Estou curioso, como outras organizações lidam com esse cenário? Estamos abertos a soluções de negócios e não apenas técnicas (relacionadas ao controle de fonte). Por exemplo, falamos em dizer ao cliente que ele não pode receber atualizações nessa filial.
Nossa estratégia de ramificação é assim (com base no Guia de ramificação do Visual Studio TFS , embora estejamos usando o Subversion)
svn
meios para que eles não atrapalhem seu fluxo de trabalho normal. Se as Filas de Patch parecerem úteis, você poderá testá-las usando git-svn ou hgsubversion . O uso de um front end do DVCS para suavizar um fluxo de trabalho complicado svn
pode até encorajar as pessoas a considerar mudar para um atacado DVCS, para obter todos os outros benefícios.
hg
ougit
posso sugerir que você use Filas de Correção ( Mercurial Queues Extension ou Stacked Git ), mas não sei se o TFS tem algo semelhante.