Qual è la differenza tra tutti i diversi tipi di controllo della versione?

StackOverflow https://stackoverflow.com/questions/3859

  •  08-06-2019
  •  | 
  •  

Domanda

Dopo che almeno 10 persone su SO mi hanno detto che il controllo della versione era una buona cosa anche se ero solo io, ora ho una domanda di follow-up.

Qual è la differenza tra tutti i diversi tipi di controllo della versione ed esiste una guida che qualcuno conosce per il controllo della versione che sia molto semplice e facile da capire?

È stato utile?

Soluzione

Eric Sink ha un buona panoramica del controllo del codice sorgente.Ce ne sono anche alcuni esistente domande qui su SO.

Altri suggerimenti

Sembra che siamo nell'età d'oro del controllo delle versioni, con tantissime scelte, tutte con i loro pro e contro.

Ecco quelli che vedo più utilizzati:

  • svn - attualmente l'open source più popolare?
  • git - molto interessante da quando Linus è passato ad esso
  • mercuriale: alcune persone intelligenti che conosco lo giurano
  • cvs - quello da cui tutti passano
  • per forza: imho, le migliori funzionalità, ma non è open source.La licenza per due utenti è però gratuita.
  • visual sourcesafe - Non sono molto nel mondo Microsoft, quindi non ho idea di questo, a parte il fatto che alla gente piace lamentarsene mentre si lamentano di tutto ciò che viene da Microsoft.
  • sccs - per interesse storico citiamo questo, bisnonno di molti dei precedenti
  • rcs - e il nonno di molti dei precedenti

La mia raccomandazione:sei più sicuro con git, svn o perforce, dal momento che molte persone li usano, sono multipiattaforma, hanno una buona GUI, puoi acquistare libri su di loro, ecc.

Non considerare cvs, sccs, rcs, sono antichi.

La cosa bella è che, poiché i tuoi progetti saranno relativamente piccoli, sarai in grado di spostare il tuo codice su un nuovo sistema una volta che avrai più esperienza e deciderai di voler lavorare con un altro sistema.

A tutti coloro che hanno appena iniziato a utilizzare il controllo della versione:

Per favore non usare git (o hg o bzr) a causa dell'hype

Usa git (o hg o bzr) perché lo sono strumenti migliori per la gestione del codice sorgente rispetto a SVN.

Ho usato SVN per alcuni anni al lavoro e sono passato a Git 6 mesi fa.Senza prima imparare SVN sarei completamente perso quando si tratta di utilizzare un DVCS.

Per le persone che hanno appena iniziato con il controllo della versione:

  • Inizia scaricando SVN
  • Imparare Perché hai bisogno del controllo della versione
  • Scopri come effettuare commit, checkout, branch
  • Scopri perché la fusione in SVN è così complicata

Quindi passa a un DVCS e impara:

  • Come clonare/ramificare/commettere
  • Com'è facile unire nuovamente i tuoi rami (impazzisci per i rami!)
  • Quanto è facile riscrivere la cronologia dei commit e mantenere i tuoi rami
    aggiornato con la linea principale (git rebase -i, )
  • Come pubblicare le modifiche in modo che altri possano trarne vantaggio

tldr;folla:

Inizia con SVN e apprendi le nozioni di base, quindi passa a un DVCS.

Inizierei con:

Quindi, una volta letto, scarica e installa SVN, TartarugaSVN e sfogliare i primi capitoli del libro e iniziare.

Il controllo della versione è essenziale per lo sviluppo, anche se lavori da solo perché ti protegge da te stesso.Se commetti un errore, è semplice ripristinare una versione precedente del codice che sai che funziona.Ciò ti consente anche di esplorare e sperimentare con il tuo codice perché non devi preoccuparti se ciò che stai facendo è reversibile o meno.Esistono due rami principali dei sistemi di controllo della versione (VCS), centralizzati e distribuiti.

I VCS centralizzati si basano sull'utilizzo di un server centrale, dove tutti "estraggono" un progetto, ci lavorano e "riconsegnano" le modifiche al server affinché chiunque altro possa utilizzarle.I principali VCS centralizzati sono CVS e SVN.Entrambi sono stati pesantemente criticati perché per loro la "fusione" dei "rami" è estremamente dolorosa.[FARE:scrivi una spiegazione su cosa sono i rami e perché la fusione è difficile con CVS e SVN]

Il VCS distribuito consente a ognuno di avere il proprio server, dove è possibile "estrarre" le modifiche da altre persone e "inviare" le modifiche a un server.I VCS distribuiti più comuni sono Git e Mercurial.[FARE:scrivere di più su VCS distribuiti]

Se stai lavorando a un progetto, ti consiglio vivamente di utilizzare un VCS distribuito.Raccomando Git perché è incredibilmente veloce, ma è stato criticato perché troppo difficile da usare.Se non ti dispiace utilizzare un prodotto commerciale, BitKeeper è presumibilmente facile da usare.

IL risposta A un'altra domanda vale anche qui, soprattutto

Jon funziona disse:
La cosa più importante del controllo della versione è:

INIZIA A USARLO

La sua risposta va più in dettaglio e non voglio essere accusato di plaigerismo, quindi dai un'occhiata.

La risposta semplice è: ti piacciono i pulsanti Annulla?La risposta è ovviamente sì, perché noi come esseri umani commettiamo continuamente errori.

Come programmatori, capita spesso che siano necessarie diverse ore di test, modifiche al codice, sovrascritture, eliminazioni, spostamenti di file e rinominazioni prima di capire che il metodo che stiamo cercando di utilizzare per risolvere un problema è completamente sbagliato e il metodo il codice è più incompleto di quando abbiamo iniziato.

In quanto tale, il controllo del codice sorgente è un enorme pulsante Annulla per ripristinare il codice a un momento precedente quando l'erba era verde e il cibo abbondante.E non solo, a causa del modo in cui funziona il controllo del codice sorgente, puoi comunque conservare una copia del tuo codice rotto, nel caso in cui tra qualche settimana tu voglia fare nuovamente riferimento ad esso e scegliere tutte le buone idee che ne sono emerse .

Personalmente (anche se potrebbe essere definito eccessivo) utilizzo una versione gratuita con licenza per utente singolo di Source Gear Fortress (che è il loro prodotto di controllo del codice sorgente Vault con funzionalità di tracciamento dei bug).Trovo che l'interfaccia utente sia davvero semplice da usare, supporta sia il modello checkout > modifica > check-in sia il modello modifica > unisci > commit.Tuttavia, può essere un po' complicato da configurare, poiché richiede l'esecuzione di una copia locale di ISS e del server SQL.Potresti provare un programma più piccolo, come quelli consigliati da altre risposte qui.Scopri cosa ti piace e cosa puoi permetterti.

Marco ha detto:

git - molto interessante da quando Linus è passato ad esso

Voglio solo sottolineare che Linus non è passato ad esso, Linus ha scritto Esso.

Se lavori da solo in un ambiente Windows, allora il file licenza per utente singolo per SourceGear's Vault è gratuito.

Usiamo e ci piace Mercuriale.Segue un modello distribuito: elimina in parte la sensazione di dover "registrare" il lavoro.Mozilla ha si è trasferito su Mercurial, il che è un buon segno che non scomparirà presto.Uno svantaggio, secondo me, è che non esiste una GUI molto buona per questo.Se hai dimestichezza con la riga di comando, però, è piuttosto utile.

Documentazione mercuriale Manuale non ufficiale

Inizia semplicemente a utilizzare il controllo del codice sorgente, indipendentemente dal tipo che utilizzi.Ciò che usi non ha importanza;è l'uso che conta

Come tutti gli altri, SC dipende davvero dalle tue esigenze, dal tuo budget, dal tuo ambiente, ecc.

Fondamentalmente, il controllo del codice sorgente è progettato per fornire un repository centrale di tutto il codice e tenere traccia di chi ha fatto cosa e quando.Dovrebbe esserci una cronologia completa e puoi ottenere prodotti che eseguono registri completi delle modifiche, auditing, controllo degli accessi e così via...

Ogni prodotto disponibile inizia a brillare (per così dire) quando inizi a considerare come desideri o devi incorporare SC nel tuo ambiente (che si tratti del tuo codice e documenti personali o di una grande azienda).E man mano che le persone li usano, scoprono che lo strumento ha dei limiti, quindi ne scrivono di nuovi.SVN è nato dalle limitazioni che i creatori hanno visto in CVS.Linus voleva qualcosa di meglio per il kernel Linux, quindi ora lo abbiamo idiota.

Direi di iniziare a usarne uno (qualcosa come SVN che è molto popolare e abbastanza facile da usare) e vedere come va.Col passare del tempo potresti scoprire di aver bisogno di altre funzionalità o di interfacciarti con altri sistemi, quindi potresti aver bisogno di SourceSafe o di un altro strumento.

Il controllo del codice sorgente è sempre importante e, sebbene tu possa farla franca rinumerando manualmente le versioni dei file PSD o qualcosa del genere mentre lavori su di essi, ti dimenticherai di eseguire lo script batch una o due volte, o probabilmente dimenticherai quale numero è andato con quale cambiamento.È qui che la maggior parte di questi strumenti SC può essere d'aiuto (a patto che tu effettui il check-in/check-out).

Vedi anche questa domanda SO:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top