Si dovrebbe Utilizzare un Git Alternativa?

0
165

Git è incredibilmente popolare e sostenuto quasi ovunque. Con praticamente essere la versione di default del sistema di controllo, si pone la domanda, quali sono le alternative? Sono la pena di prendere in considerazione, e quanto sono diversi?

Si noti che questo articolo vengono illustrate le alternative di git come controllo del codice sorgente del software. Se siete semplicemente alla ricerca di alternative per un servizio di hosting come Github, è possibile leggere la nostra guida alla ospitato Git soluzioni, invece.

Gli aspetti Negativi di Git

Per meglio comprendere i limiti di Git, si deve prima iniziare con quello che è giusto.

Git utilizza una sorgente distribuita modello di controllo; ogni utente repository locale non è connesso ad alcun server centrale. L’utente può andare offline, fare un sacco di cambiamenti, e nessuno potrà vedere le modifiche fino a quando non sono spinto da remoto. Questo funziona molto bene per sviluppo di software open source; Git è molto più veloce per la maggior parte delle azioni, dal momento che i singoli utenti possono clonare un repository e fare piccole modifiche, senza doversi preoccupare di ciò che gli altri stanno facendo.

Questi cambiamenti possono essere integrati nel master repository utilizzando tirare le richieste (l’utente che effettua le richieste di modifica per il master repository per tirare impegna privato con una versione del repo), e gli aggiornamenti spinto da utenti autenticati, fornendo tutti i conflitti di unione sono correttamente risolto.

Questo modello fa un sacco di senso per questo ambiente di sviluppo distribuito, ma il problema con Git nasce quando si tenta di adattare per l’uso in un ambiente aziendale, dove si hanno spesso molte persone che lavorano sullo stesso bit di codice, e un coordinamento adeguato è la chiave.

Non farci male qui—è ancora fantastico, soprattutto se abbinato con esterni problema software di monitoraggio e CI/CD, oleodotti, qualcosa che servizi come GitLab e BitBucket fare abbastanza bene. Ma Git non era esattamente costruito per essere aziendali di controllo di origine, dove si sta quasi sempre andando ad avere un server centrale, che agisce come master repository. Richiede molto corretto utilizzo (e spesso strumenti esterni), per essere efficace, agile team di spingere un sacco di modifiche al codice.

Con Git, ogni client memorizza una copia completa del progetto il changelog. Ogni volta che si effettua un commit in Git, memorizza le modifiche che commettono fatti localmente sul vostro sistema. Questo rende il lavoro con Git molto veloce, dal momento che hai solo per query di un disco rigido e non un server centrale. Esso permette anche di lavorare offline molto più facilmente. Ma con progetti di grandi dimensioni con una lunga cambiare la storia, questo può anche portare alla .git cartella di intraprendere un’irragionevole quantità di spazio.

Inoltre, se si dispone di più progetti, probabilmente non si desidera che il codice sorgente di tutto ciò che è visibile per ogni sviluppatore. In Git, questo problema è di solito risolto avendo repository separati per ogni progetto, che funziona abbastanza bene, ma non è l’ideale se hai bisogno di integrare in un unico pezzo. Centralizzata controllo di versione, si può dare l’accesso solo a determinate cartelle.

Così, mentre Git probabilmente non è la scelta sbagliata per il vostro business, soprattutto se attuato correttamente, ci sono altre fonti opzioni di controllo costruito specificamente per gli dei flussi di lavoro, e può valere la pena di guardare la concorrenza.

CORRELATI: Come Impostare un Personale Gitlab Server

L’Alternativa Primaria: Centralizzato Di Controllo Di Versione

Il più comune differenza tra Git e le alternative per la rottura di controllo della versione decentrato a favore di una centrale, server autorevole. Apache Subversion e della Versione di Team Foundation di Controllo sono i principali sistemi di controllo di versione che segue questo formato.

Per un confronto, in un DVC sistema, ogni utente ha un repository locale, che commettono il loro modifiche. Quando si è pronti a inviare gli aggiornamenti al server master, è possibile che altri utenti hanno versioni diverse dello stesso file che si sta lavorando. Questo è noto come un conflitto di unione, ed è molto comune (anche se facilmente risolvibile) problema con Git.

Centralizzata controllo di versione (CVC) come Apache Subversion, c’è un unico repository di server e tanti client collegati direttamente ad esso. Se si apporta una modifica a un file, il file viene aggiornato su altre macchine ogni volta che si aggiorna. Si impegna direttamente al server master.

Per evitare conflitti di unione, la maggior parte di CVC uso dei sistemi di serrature. Se Un Utente vuole lavorare su un file, e non voglio che nessun altro di fare scherzi con esso, si può bloccare il file fino a quando hanno finito, impedendo ad altri utenti di fare lo stesso. Questo non è necessario in Subversion, e i conflitti di unione può ancora succedere, ma sono meno di un incidente.

Il problema è in gran parte attenuato con ramificazione e le copie locali, che consentono a più utenti di utilizzare le loro versioni per lunghi periodi di tempo prima di unire le modifiche.

Un’altra grande caratteristica centralizzata controllo di versione è la gestione delle autorizzazioni; piuttosto che dare accesso a tutta la repository, CVC rende facile la sezione off per l’accesso a specifiche cartelle. Della Versione di Team Foundation Controllo funziona in modo molto simile a come Subversion, permettendo di autorizzazione granulari delegazione giù a livello di file.

Tutte queste caratteristiche rendono centralizzata controllo di versione valida alternativa al DVC. Dopo tutto, Google ospita tutti loro codice in una massiccia, sistema centralizzato, molto più grande di qualsiasi sistema distribuito, in grado di gestire. Concesso, Windows codebase è un 300 GB repo Git, ma utilizzando Git Virtual File System plugin, che permette agli utenti di scaricare solo i file di cui hanno bisogno, e nulla di più.

Uno svantaggio di Subversion, però, è che spesso ha un sacco di copia e il download di fare, che può rendere molto più lento di Git locale-solo modello.

CORRELATI: Le Migliori Alternative a Github

Altre Alternative

Mentre ci siamo concentrati sul centralizzata, sistemi di controllo di versione che può sostituire Git, ci sono altri sistemi di controllo di versione distribuito, è possibile utilizzare, più in particolare, Mercurial.

Mercurial è un po ‘ più facile da usare rispetto a Git, e sono entrambi le stesse prestazioni-saggio, ma nel complesso sono molto simili. Davvero, non c’è molto motivo per scegliere Mercurial su Git, oltre alle preferenze personali, che probabilmente non dovrebbe essere dettare le decisioni aziendali.

Mercurial usato per essere un’opzione in BitBucket, ma hanno abbandonato il supporto di recente, il motivo principale che Git è solo il modo più popolare e ampiamente supportato. E ‘ praticamente la versione di default del sistema di controllo, e a meno che un’alternativa è cambiare radicalmente il modello (come CVC), non vale la pena di considerare.