Sto cercando di raccogliere modi efficaci in cui altri hanno risolto il seguente problema. Al lavoro siamo stati costretti a rilasciare una patch software (da installare sui sistemi degli utenti finali) che vogliamo essere visibile solo a un cliente specifico. Il codice personalizzato si trova nel proprio ramo di controllo del codice sorgente. Il problema è che abbiamo due righe di codice parallele (e script di compilazione) da mantenere sincronizzati e ogni volta che correggiamo il codice originale dobbiamo correggere e testare il codice specifico del cliente.
Sono curioso, come fanno le altre organizzazioni a gestire questo scenario? Siamo aperti alle soluzioni aziendali e non solo a quelle tecniche (legate al controllo del codice sorgente). Ad esempio, abbiamo parlato di dire al cliente che non possono ricevere aggiornamenti su quel ramo.
La nostra strategia di branching è così (basata sulla Guida Branching TFS di Visual Studio , anche se per questo stiamo usando Subversion)
svn
che non ingombrano il normale flusso di lavoro. Se le code di patch sembrano essere utili, puoi provarle usando git-svn o hgsubversion . L'uso di un front-end DVCS per appianare un flusso di lavoro complicato svn
potrebbe persino incoraggiare le persone a prendere in considerazione il passaggio a un DVCS all'ingrosso, per ottenere tutti gli altri vantaggi.
hg
ogit
potrei suggerirti di esaminare le code di patch ( estensione delle code mercuriali o stacked Git ) ma non so se TFS ha qualcosa di simile.