[Python] Git, Mercurial o subversion
Enrico Franchi
enrico.franchi a gmail.com
Gio 22 Set 2011 10:14:42 CEST
Andrea Francia wrote:
> Quando ho scritto che è meno complicato intendevo che:
> - un versioning centralizzato è più facile da spiegare a persone che
> non ne sanno poco o niente di VCS
E di questo non ne sono esattamente convinto. In particolare, la mia
impressione e' che, anche ammettendo che la distribuzione aumenti la
complessita' (dal mio punto di vista invece la riduce, perche' si passa
da un modello asimmetrico ad uno simmetrico), tale aumento sia
irrilevante rispetto alla complessita' di spiegare i fondamenti di SCM.
> - che subversion ha meno comandi/concetti degli altri due.
Non so... non li ho contati! ;)
Certo, git ha un dozilione di comandi; ma a parte questo le operazioni
elementari che effettivamente si fanno sono grosso modo le stesse. E se
uno e' veramente da solo non ha nemmeno il problema della
sincronizzazione remota.
Che non credo sia un problema per chi ha usato il computer da un
pochetto: concettualmente il fatto che ci mandiamo avanti e indietro
dati in rete e compagnia e' qualcosa che abbiamo acquisito da tempo.
Insomma, non credo che il difficile siano pull/push.
> Avevo in mente persone che poi avrebbero dovuto usare il VCS per
> checkout e commit, persone che neanche si sognerebbero che si possono da
> sole mettere in piedi un server.
>
> Per il resto sono d'accordo con te, che per creare un repository con hg
> e git non ci vuole solo un comando (init), che ci vuole poco a spingere
> il repository sul server, e che i merge e i branch sono un dolore con
> Subversion.
Eh, ma purtroppo ci passi. Il merge prima o poi ti capita. Se lavori con
un'altra persona e' una certezza; se lavori da solo ma su piu'
postazioni pure.
E il branch e' uno strumento troppo importante per non volerlo imparare
prima o poi, con un certo bias verso il "prima" perche' permette di fare
cose importanti. Poi sono d'accordo che una serie di persone cercano di
evitarlo, ma questo solo perche' in molti sistemi e' un'operazione
inutilmente complessa da fare e da riunire.
> Su Subversion non è proprio vero che devi 'per forza' configurarti un
> server, come CVS puoi fare un repository in locale ma è vero proprio una
> soluzione da sconsigliare.
Vero. Ma appunto... non la consiglierei.
> Secondo me non è proprio esatto dire che
> Subversion copia tutti i file quando fai un branch perché nel repository
> ne resta una copia sola però riferita due volte, quindi lo spazio non è
> sprecato.
E' vero. Remotamente ne resta solo una copia.
> È però che il filesystem finale appare come se contenesse una
> copia di tutti i file e quindi (a parte lo spazio) crea uno spreco e un
> casino di namespace del filesystem.
Esatto. Poi voglio dire... lo spazio; i nostri favoriti si tirano dietro
tutto il repo, quindi li vince comunque svn. Sempre se la memoria non mi
inganna. Credo che siano anni che non lo uso.
> A scanso di equivoci la mia preferenza va a Git. A me piace perché anche
> se è complicato è anche super potente. La menata dell'add secondo me ha
> il suo perché, mi evita di committare per sbaglio cose che non dovevo.
Sono d'accordo sul fatto che ha un suo senso. Non ho ancora deciso se mi
piace o meno. Esattamente come l'edit di Perforce ha un suo senso... ma
dopo un po' veramente non ne potevo piu'.
L'add dura perche' mi e' capitato piu' spesso di quanto avrei voluto di
fare casino con -a e -m in combinazione. Ho trovato che -a aprendo vim e
mettendo li il commit e' abbastanza safe, nel senso che mentre scrivo
vedo "naturalmente" cosa sta includendo. Viceversa se uso -m mi e'
capitato che scappa dentro roba che non avrebbe dovuto.
--
.
..: -enrico-
Maggiori informazioni sulla lista
Python