Re: Guida tematica alla riga di comando.

#74637
Up
0
Down
::

Elrond” post=80625Il workflow di un progetto collaborativo in genere è questo: un “capo” ha accesso al repository “ufficiale”, tutti gli altri utenti creano fork, fanno le modifiche sul proprio fork e poi chiedono il merge nel repository “ufficiale”. In pratica tutti glu utenti hanno accesso in scrittura solo al proprio repository. È (più o meno) necessario una gestione del genere perché se tutti avessero accesso in scrittura contemporanea a un unico repository si potrebbero facilmente creare conflitti di cui ognuno dovrebbe occuparsi, in questo modo se ne occupa solo il responsabile del repository principale 😛

Questo può avvenire per repository personali (ai quali in genere l’unico ad avere accesso in scrittura è chi li crea) o progetti molto grandi (per questioni di controllo e integrazione dei diversi commit). Ma se sul progetto lavora un team abbastanza compatto, allora tutti i membri hanno accesso allo stesso repository in scrittura. Peraltro, se il repo è open source (nel senso che tutti lo possono leggere), allora chiunque può contribuire in maniera meno diretta al progetto con qualche forma di pull request.

Alcuni che si avvicinano a Git temono i conflitti a priori, ma nei progetti comuni solitamente i conflitti sono abbastanza rari. Una delle caratteristiche più importanti di Git è che è un Distributed VCS: non esiste alcun server, soprattutto non esiste alcun meccanismo di lock (che ha invece SVN). Il lock può essere utile per file binari che vengono modificati spesso, per i quali non si può fare alcun merge. Ma quando si scrive un documento LaTeX si lavora quasi esclusivamente su file di testo (tex, sty, cls, dtx, eccetera: le eventuali immagini sono aggiunte all’inizio e quasi mai modificate) e allora spesso i conflitti possono essere risolti in maniera quasi automatica. Comunque sia, tocca proprio a ciascuno sviluppatore risolvere i conflitti, in locale.

Non va mai dimenticato quel “distributed”… 😉


Comunque l’accoppiata Git+LaTeX è fenomenale e son d’accordo che una guida tematica a Git sarebbe molto utile. Tempo permettendo, mi piacerebbe anche contribuire. 🙂

Go to top