Newsgroup: it.comp.programmare.win32
Titolo: progettazione di gruppo in Visual C++

Salve a tutti,
per la prima volta nella mia ditta stiamo facendo un progetto usando il
Visual C++ in 4 o 5 persone che contemporaneamente dovranno lavorare sugli
stessi files.
Ovviamente piu' si andra' in avanti col progetto e meno pericoli di
"collisioni" di codice si avranno.
Fino ad ora si lavorava molto con WinDiff quando si dovevano fondere gli
stessi file sorgente su cui avevano lavorato piu' persone con dispendio di
energie.
Ora invece stiamo usando CVS che e' tipo il VisualSourceSafe, cioe'
un'applicazione che gestisce le versioni del software, i suoi backup di
sicurezza e principalmente le collisioni di codice con merge automatici e
manuali.
Per chi non lo avesse mai usato spiego in poche parole questa caratteristica
fondamentale per chi volesse lavorare in gruppo su un progetto.
Se io volessi modificare il file pippo.cpp, lo prelevo dal server CVS che
mette i file in condivisione con tutto il gruppo di lavoro, e comincio a
modificarlo nella mia copia locale del mio pc.
Se per caso un altro sviluppatore volesse lavorare con pippo.cpp, fa la
stessa cosa, ovvero lo preleva dal server senza problemi, visto che il file
non e' bloccato e puo' vedere con una info sul file che pippo.cpp e' in
questo momento in fase di modifica.
A questo punto puo' succedere che l'altro sviluppatore finisce prima di me e
aggiorna il file pippo.cpp sul server senza problemi visto che non possono
esserci conflitti di codice.
Quando a mia volta vado a fare l'aggiornamento sul server, CVS fa il merge
in automatico, del mio file pippo.cpp con quello del server che nel
frattempo era stato aggiornato.
Nel caso che il mio codice sia cambiato nelle stesse righe del codice
attualmente sul server allora CVS mi comunica che c'e' bisogno di un merging
manuale segnalandomi le righe dove devo fare il merge.
Ottimo meccanismo, ma adesso arriva il mio problema.
Nel caso di sviluppo con Visual C++ usando le MFC c'e' ampio uso del file
resource.h e di pippo.rc che sono i file usati dal resource compiler quando
si usano i controlli di windows.
Per cui ogni volta che io cambio l'interfaccia utente aggiungendo e
modificando bottoni, dialog box ecc.. il mio sistema localmente aggiorna il
resource.h mettendo gli ID dei controlli in modo sequenziale.
Lavorando su un solo pc non c'e' problema ma nel nostro casa questo
resource.h viene aggiornato anche nei pc locali degli altri sviluppatori che
in quel momento stanno aggiornando l'interfaccia utente.
Per cui al momento dell'aggiornamento sul server ci sono ogni volta molte
collisioni in resource.h che avra' molti ID di controlli con lo stesso
valore.
C'e' qualcuno che sa suggerirmi un metodo di lavoro che eviti cio' o che
riduca il lavorone di merge che poi bisgona fare?
Chi lavora con CVS o con SourceSafe in progetti di gruppo usando le MFC?
Luc?
Grazie a tutti.
Maurus

Chi lavora con CVS o con SourceSafe in progetti di gruppo usando le MFC?
Noi usiamo Visual Source Safe per file di tipi diversi fra loro
(testuali e binari).
Ogni collaboratore ha un proprio utente per il db di source safe e
lavora su copie locali tenute sincronizzate con quelle di source safe.
Quando si vuole modificare un file se ne fa il "check out", cioe'
source safe blocca la copia per tutti gli utenti, ad eccezione di chi
l'ha estratta. Source Safe non accetta nessun successivo "check in" di
tale file da utenti diversi da quello che ha fatto il check out.
Uso ormai Source Safe da parecchio tempo anche per progetti che
sviluppo da solo (lo trovo comodo per gestirmi le versioni di sorgenti
ed eseguibili) e mi trovo molto bene.
-- 
ciao, hal

 Chi lavora con CVS o con SourceSafe in progetti di gruppo usando le MFC?
Ciao!
Premetto che non conosco CVS o SS, quindi potrebbero esserci strategie molto
migliori della mia.
Il mio suggerimento č: datevi uno "spazio di indirizzi" (lol, neanche
fossero degli IP!) e modificate manualmente i vostri resource.h.
Ad es. tu userai solo costanti da 1 a 1000, il tuo collega a sinistra da
1001 a 2000 e cosě via.