Ho un po 'di esperienza con SVN come programmatore / sviluppatore puro. All'interno della mia azienda, tuttavia, utilizziamo SVN come strumento di gestione della configurazione (CM). Pensavo che l'utilizzo di SVN per lo sviluppo allo stesso tempo fosse OK, dal momento che potevamo utilizzare le diramazioni e il trunk per dev e i tag per le versioni. Per me, i tag erano la parte CM, e i rami / tronco erano la parte dev.
Recentemente una persona, che sviluppa codice di alto livello (ma al di fuori del gruppo "puro SW") ha menzionato che la filosofia esistente (mescolando SVN per dev e CM) era sbagliata ... secondo lui. Il suo ragionamento è che pensa che lo strumento CM della società dovrebbe sempre collegarsi al SW eseguibile (quindi i rami infrangerebbero questa regola). Ha anche detto che uno strumento CM non dovrebbe essere un'utilità di backup per commit giornalieri o incrementali. Infine, non gli piace l'idea di dover saltare dalla revisione 143 all'89 per ottenere una copia funzionante ... e inoltre che gli strumenti CM non dovrebbero consentire il ritorno a uno stato rotto. In generale, vuole separare le utility CM e back-up / dev offerte da SVN.
Onestamente, sono nuovo e la persona con questa prospettiva è di anzianità, esperienza e successo, quindi voglio mettere in campo questo dilemma con la base di StackOverflow per vedere se il suo approccio ha un merito.
La mia domanda: l'SVN dovrebbe essere utilizzato puramente per lo sviluppo e un altro strumento per CM (o viceversa)? Perché? Se sì, quali strumenti suggeriresti per questa combo? O pensi che l'integrazione di CM e dev in SVN sia l'approccio migliore? Perché?
Grazie.
Modifica - durante la mia ricerca ho trovato il seguente sito che potrebbe fornire ulteriori motivi per non utilizzare SVN per CM. I punti dell'autore sono validi? Sento che questo è allineato con quello che il mio collega stava dicendo ...
Link: SVN non è CM