Mi sono posto le stesse domande quando siamo venuti qui per implementare Subversion - circa 20 sviluppatori si sono sparsi per 4-6 progetti. Non ho trovato nessuna buona fonte con '' la risposta ''. Ecco alcune parti di come la nostra risposta si è sviluppata negli ultimi 3 anni:
- impegnarsi tutte le volte che è utile; la nostra regola empirica è impegnata ogni volta che hai svolto un lavoro sufficiente che sarebbe un problema doverlo rifare se le modifiche andassero perse; a volte mi impegno ogni 15 minuti circa, altre volte potrebbero essere giorni (sì, a volte mi ci vuole un giorno per scrivere 1 riga di codice)
- utilizziamo i rami, come suggerito da una delle tue precedenti risposte, per diversi percorsi di sviluppo; in questo momento per uno dei nostri programmi abbiamo 3 rami attivi: 1 per lo sviluppo principale, 1 per lo sforzo ancora incompiuto di parallelizzare il programma e 1 per lo sforzo di revisionarlo per utilizzare file di input e output XML;
- usiamo a malapena i tag, anche se pensiamo che dovremmo usarli per identificare i rilasci in produzione;
Pensa allo sviluppo che procede lungo un unico percorso. A un certo momento o lo stato di sviluppo del marketing decide di rilasciare la prima versione del prodotto, quindi si pianta una bandiera nel percorso etichettato '1' (o '1.0' o che cosa hai). In qualche altro momento una scintilla luminosa decide di parallelizzare il programma, ma decide che ci vorranno settimane e che le persone vogliono continuare a percorrere la strada principale nel frattempo. Quindi costruisci un bivio nel percorso e diverse persone vagano giù per le diverse forcelle.
Le bandiere nella strada sono chiamate "tag", e le forcelle nella strada sono dove si dividono i "rami". Occasionalmente, anche, i rami tornano insieme.
- mettiamo tutto il materiale necessario per creare un eseguibile (o sistema) nel repository; Ciò significa almeno il codice sorgente e creare file (o file di progetto per Visual Studio). Ma quando abbiamo icone, file di configurazione e tutto il resto, questo va nel repository. Parte della documentazione si trova nel repository; sicuramente fa qualsiasi documentazione come i file di aiuto che potrebbero essere parte integrante del programma, ed è un posto utile dove mettere la documentazione per gli sviluppatori.
Abbiamo anche messo gli eseguibili di Windows per le nostre versioni di produzione lì, per fornire un unico posto per le persone in cerca di software: le nostre versioni di Linux vanno su un server, quindi non è necessario memorizzarle.
- non richiediamo che il repository sia sempre in grado di fornire una versione più recente che viene compilata ed eseguita; alcuni progetti funzionano in questo modo, altri no; la decisione spetta al project manager e dipende da molti fattori, ma penso che si guasta quando si apportano modifiche importanti a un programma.