Best practice SVN: logica di codice diversa nelle filiali

3

Mentre lavoravo con un progetto a cui ero assegnato, ho notato un piccolo problema con la nostra strategia SVN. Qualche mese fa, qualcuno ha creato un nuovo ramo di funzionalità dal nostro baule. In questo ramo ha implementato una seconda implementazione di una funzionalità già implementata (ma in un modo più efficiente). Ha cambiato in realtà solo una lezione.

Dopo questa azione alcuni dei metodi delle classi sono comuni per entrambi i posti - trunk e feature branch - ma alcuni metodi sono specifici per ogni implementazione. È stato deciso di supportare entrambe le versioni, quindi a volte creiamo una distribuzione dal ramo, a volte dal trunk (alcune ipotesi di business).

Ora ho qualche problema con l'unione - normalmente voglio unire solo queste parti di codice che sono comuni per trunk e branch. Rende ogni unione più complicata perché ogni volta che ho dei conflitti da risolvere (e ne ho molti di loro) devo prestare particolare attenzione a quale azione devo intraprendere per ogni linea in conflitto.

La mia domanda è: ho ragione nel sostenere che la decisione di creare una "nuova versione" che dovrebbe essere supportata come feature branch fosse una cattiva idea? Quali sono le migliori pratiche in questo caso?

    
posta guitar_freak 29.08.2016 - 09:16
fonte

1 risposta

4

Cioè, ora hai due classi che condividono del codice. Hanno ancora lo stesso aspetto da un punto di vista esterno, cioè hanno le stesse firme dei loro metodi pubblici?

In tal caso, creare una classe base per le funzioni comuni e due classi derivate. Potrebbe essere necessario cambiare il nome di almeno uno di essi. Ora entrambe le versioni sono incluse nei tuoi eseguibili. In fase di runtime, lascia che qualche sistema di configurazione (ad esempio un contenitore di Dipendenza per iniezione o una soluzione semplice) decida quale delle classi utilizzare.

La tua ipotesi è giusta, il ramo non è un modo corretto per gestirlo.

    
risposta data 29.08.2016 - 10:15
fonte

Leggi altre domande sui tag