Quote:
Originariamente inviato da fbcyborg
Grazie per la preziosa spiegazione
A questo punto, se vado su sincronizza, cosa succede?
Si genera un "conflitto"?
Lo so forse potrei fare una prova, ma ora sono da solo
|
Sì, esatto, subversion rileva che la stessa riga è stata modificata da due persone diverse, e ci sono due revisioni in conflitto, e te lo segnala. A questo punto, hai tre scelte:
- scaricare la versione che sta sul server, sovrascrivendo la tua
- ingnorare la versione che sta sul server, sovrascrivendola con la tua
- effettuare un merge, cioè costruire una terza versione che riassume le modifiche di tutte e due, e inviare quella.
In realtà, subversion non controlla da chi è stata fatta la modifica, ma semplicemente se i cambiamente provengono da una copia del repository col numero di versione più basso di quella corrente, altrimenti si limita a creare una nuova revisione.
Per esempio, nel tuo caso, se la versione di base fosse la 1, e due sviluppatori la scaricano, poi il primo la modifica e fa commit, sul repository avresti la 2: a questo punto il secondo, la cui copia è ancora ferma alla 1, prova a fare commit ma il sistema segnala un errore perchè cerca di aggiornare una revisione 2 con la sua 1.
Questo implica anche che per esempio tu possa in realtà fare una prova, anche essendo da solo: semplicemente, fai il checkout del progetto in due directory diverse, e modifichi la stessa riga nello stesso file nelle due copie. A questo punto fai il commit di uno dei due: se provi a fare "synchronize" sul secondo, vedrai apparire il conflitto.