Domanda

Quale sarebbe il miglior sistema di controllo della versione da imparare come principiante al controllo del codice sorgente?

È stato utile?

Soluzione

Tutto tranne che la sicurezza delle fonti visive;preferibilmente uno che supporti i concetti di ramificazione e fusione.Come altri hanno già detto, Subversion è un'ottima scelta, soprattutto con il client TortoiseSVN.

Assicurati di controllare (scusate il gioco di parole) La classica serie di articoli sul controllo del codice sorgente di Eric Sink.

Altri suggerimenti

Ti suggerirei di provare Subversion, ad esempio con il Programma di installazione SVN con 1 clic.Prova a cercare "Subversion" in SO e troverai un sacco di domande con risposte che rimandano a buoni tutorial.

Buona fortuna!

Io andrei dritto Idiota.Ho già usato la sovversione in passato, ma ho sempre avuto la sensazione di sbagliare.Git ha avuto senso fin dal primo giorno.

Risorse utili:

Ci sono alcuni concetti fondamentali che penso sia importante imparare:

  1. Check-in/check-out (ovviamente)
  2. Versioni locali vs.versioni del server
  3. Mappatura/associazione di uno spazio di lavoro locale a un archivio o repository remoto.
  4. Uscire le modifiche in un file che contiene modifiche dagli altri.
  5. Branching (cos'è, quando/perché usarlo)
  6. Unione delle modifiche da un ramo a un ramo o trunk principale.

La maggior parte dei moderni sistemi di controllo del codice sorgente richiedono una certa conoscenza degli argomenti di cui sopra e dovrebbero facilitare l'apprendimento degli stessi.Quindi hai il controllo del codice sorgente distribuito, con cui non ho alcuna esperienza ma dovrebbe essere abbastanza complicato e potrebbe non essere adatto a un principiante.

Sovversione è fantastico perché ha tutte le funzionalità moderne che desideri ed è gratuito.

Idiota sta diventando un'opzione sempre più popolare e rappresenta un'altra alternativa gratuita o a basso costo a Subversion.Tuttavia, la conoscenza dei concetti di ramificazione e fusione diventa fondamentale per l'utilizzo di Git.

Puoi usare disorientare come un modo semplice e gratuito per sperimentare sia Git che Subversion.Lo uso per ospitare un paio di repository subversion per alcuni progetti collaterali su cui ho lavorato in passato.

Non sono un utente avanzato del controllo del codice sorgente, ma sto imparando.Ecco la mia esperienza con i prodotti di controllo del codice sorgente:

  1. Molto tempo fa, l'azienda per cui lavoravo all'epoca decise di utilizzare il controllo del codice sorgente.Hanno introdotto il concetto agli sviluppatori e hanno convinto tutti a provarlo.Hanno scelto di utilizzare il PVC e lo hanno implementato.Tra non molto, gli sviluppatori avrebbero dovuto coordinarsi per bloccare/sbloccare moduli e oggetti e in realtà non abbiamo visto molti vantaggi.

  2. Qualche anno dopo, stavo giocando a realizzare un progetto open source e all'epoca rubyforge offriva repository CVS.L'ho provato ed era leggermente migliore del PVC.Certo, ero l'unico a utilizzare il repository.Tuttavia mi sono sentito frustrato quando ho provato a riorganizzare la struttura dei miei file perché non mi piaceva il modo in cui li avevo inizialmente importati.Non ha funzionato davvero in CVS.

  3. Alcuni anni dopo stavo lavorando a un altro progetto personale e il mio provider di web hosting offriva repository Subversion (SVN) facili da configurare.Mi ci sono volute un po' di ricerche per installarlo e farlo funzionare correttamente, ma una volta superata la curva di apprendimento iniziale, mi è piaciuto.

  4. Non molto tempo dopo mi sono reso conto che mi piaceva avere il controllo del codice sorgente e che il mio lavoro attuale non lo aveva.Quindi ho evangelizzato e, dopo un lungo periodo di tempo, il mio team ha implementato Source Safe perché lavoriamo in Visual Studio e generalmente siamo un negozio Microsoft.Ero ansioso di usarlo, ma in breve tempo ho scoperto che stavo perdendo file e che Visual Studio metteva le cose nel posto sbagliato e che avrei lavorato su un progetto per un po' e poi avrei esportato il mio lavoro in un'altra posizione e scopri che non esporterebbe o esporterebbe solo alcuni dei progetti in una soluzione.Questo mi ha fatto capire che anche se pensavo di utilizzare un "sistema di controllo della versione", la copia del codice più sicura, robusta e completa era la mia copia di lavoro.L'esatto opposto di ciò che dovrebbe fare il controllo del codice sorgente.

  5. Quindi la settimana scorsa ero così stufo di Source Safe che sono andato a cercarlo.Dopo aver esaminato alcune soluzioni, ho deciso di provare git.Non dirò che è stato tutto rose e fiori, dal momento che ho avuto ancora una volta una curva di apprendimento per farlo fare quello che voglio che faccia, tuttavia, mi è piaciuto abbastanza da convertire tutto il mio lavoro e i miei progetti personali su di esso.Una delle cose veramente belle è che non ho bisogno di un repository centralizzato, quindi posso usarlo senza dover affrontare un sacco di burocrazia al lavoro per installarlo.

Quindi in breve consiglierei git, utilizzo Mysysgit in Windows e ha il vantaggio aggiuntivo di darmi una shell bash.Su Linux puoi semplicemente installarlo dal tuo gestore pacchetti.Se non ti piace Git, prova subversion.Se non ti piace nessuno dei due probabilmente non ti piaceranno nemmeno CVS o PVCS.Non provare in nessun caso Source Safe, è terribile.

ho trovato http://unfuddle.com mi ha risparmiato problemi con l'installazione di SVN o git.Puoi ottenere un account gratuito lì e utilizzare uno di questi, inoltre puoi usare il tuo OpenID lì.

Quindi eviterai di doverti preoccupare di configurarlo correttamente e concentrarti su come lo utilizzerai!

Vault di SourceGear.com è eccezionale.È gratuito per singoli utenti e fornisce un'eccellente interfaccia VS 2005/2008.Lo adoro!

p.p

@Ian Nelson:

Sono d'accordo con te sul fatto che Source Safe è pessimo come sistema di controllo del codice sorgente, ma tieni presente che usare Source Safe è molto meglio che "portarsi dietro floppy disk" come ha detto Joel Spolsky.

Per un principiante potrebbe non essere una cattiva idea, poiché il costo di non avere alcun controllo del codice sorgente è molto più alto.

Ogni strumento ha i suoi punti di forza e di debolezza.La questione è soprattutto quali sono le tue esigenze.Sfortunatamente con questo problema, come molti altri, spesso non viene selezionato lo strumento migliore ma quello con cui qualcuno ha familiarità.Ad esempio, se non hai bisogno di molte filiali e il tuo team è piccolo e locale, quasi tutti i vcs faranno il lavoro (eccetto SourceSafe).Le cose cambiano se hai bisogno di rami (il che quasi per necessità significa che devi anche fare unioni), il tuo team è distribuito, hai bisogno di sicurezza avanzata (ai subappaltatori non è consentito accedere all'intero albero di origine), monitoraggio delle attività, ecc.C’è anche la questione dei costi in tre modi diversi:costo delle licenze, costo della manutenzione (alcuni strumenti sono così complicati che in pratica hai bisogno di qualcuno solo per controllare i repository) e costo della formazione.

Pertanto suggerire uno strumento piuttosto che un altro è come suggerire quale sarebbe il miglior linguaggio di programmazione.

Solo alcune indicazioni:

  • StarTeam è il più semplice degli strumenti Io l'ho usato.Ne è bastato davvero poco formazione.Ho ricevuto un corso di formazione di un giorno dal momento che dovevo essere il manutentore.Questo mantenimento mi ha richiesto meno di 30 minuti a settimana.Utenti che ho "addestrato" scrivendo un manuale di due pagine e dopodiché ho avuto pochissime domande rispondere.
  • Continuus era l'altra estremità del scala per quanto riguarda la facilità d'uso interessato.D'altra parte la gestione delle attività è stata ottima e ha offerto un buon supporto per la gestione dei rilasci.Il problema è che, anche come gestore dei rilasci, non ho mai pensato che la facilità di realizzare rilasci (si imparava una volta, ma ci voleva una notevole quantità di tempo) dovesse essere più importante del lavoro quotidiano svolto dagli sviluppatori.
  • L'unione e la creazione di diramazioni differiscono selvaggiamente tra gli strumenti.Alcuni strumenti rendono questo semplice, come git e ClearCase (anche se quest'ultimo è molto lento) alcuni fondamentalmente ti costringono a fare il Unisci a mano.Se hai bisogno di fare si fonde molto, il costo può diventare elevato.ClearCase era anche costoso in tutti i Tre categorie menzionate in precedenza (anche se va detto che abbiamo usato tutte le cose avanzate che non lo sono necessario).Git d'altra parte manca una buona interfaccia utente e alcuni concetti diverso da quello che potresti essere usato A.Le funzionalità di sicurezza di Git sono anche carente (la gitosi si rivolge ad alcuni ma non tutti).
  • La maggior parte degli strumenti che ho usato sono anche abbastanza lento.Strumenti come PVCS/Dimensions è stato solo lento, non importa cosa (di base cose come l'apertura di una directory in l'archivio), alcuni molto lenti nel modi più specifici (come ClearCase).

Tra gli strumenti che ho utilizzato, selezionerei StarTeam se i tuoi sviluppatori non sono molto esperti (e se non ti dispiace pagare la licenza, che è piuttosto costosa) e git se hai a bordo alcuni ragazzi esperti di vcs che possono configurare l'ambiente ad altri ragazzi.Anche Mercurial sembra un concorrente interessante e sembra avere un'interfaccia utente leggermente migliore.

Continuus, PVCS/Dimensions e ClearCase sono semplicemente troppo lenti, troppo complessi e troppo costosi per quasi tutti i progetti.Se qualcuno insiste nel selezionarne uno, sceglierei ClearCase.

Non ho usato Subversion, cosa che sembra piacere a molti (eppure, ho la sensazione che questo cambierà nel prossimo futuro), quindi non posso commentare come si confronta con gli altri strumenti che ho usato (di solito come build e/ o gestore del rilascio).

Per quanto riguarda il primo strumento da scegliere, il problema con Git, Bazaar e Mercurial è che sono vc distribuiti.Questo è diverso dal tradizionale modello server-client in cui si dispone di un repository centrale.Solo per imparare le cose, consiglierei anche di leggere i concetti.La ramificazione, ad esempio, è qualcosa che potresti non comprendere correttamente semplicemente provandoci tu stesso (esistono diverse strategie di ramificazione per situazioni diverse).Inoltre è molto diverso se sei l'unico ad accedere al repository, ad esempio unire i conflitti non sarebbe un problema (potresti vederli ma potresti anche risolverli facilmente poiché conosci il codice in entrambi i rami).Naturalmente impareresti a conoscere i check-out, i check-in e simili, ma non penso che questi problemi siano particolarmente difficili in primo luogo.

Un ulteriore problema con i vc è che tendono a utilizzare termini diversi.In StarTeam, che altrimenti è facile da usare, per qualche motivo insistono nell'usare i termini "check out" e "check out and lock".Quest'ultimo è ciò che la maggior parte delle persone pensa che faccia il primo.C'è una ragione per questo (puoi modificare i file anche se non disponi di un blocco esclusivo), ma avrebbe comunque molto più senso chiamarli "Get" e "Check out" per evitare confusione.

Qualunque cosa, ma imparerei io stesso un sistema moderno come git o subversion.Il mio primo VCS è stato RCS, ma ho capito le basi.

Bene, se vuoi solo imparare da solo, direi che dovresti optare per qualcosa di gratuito, come sovversione.Se sei un'azienda che non ha mai utilizzato il controllo del codice sorgente prima, dipende davvero dalle tue esigenze.

La mia prima esperienza è stata CVS con WinCVS come client.è stato orribile.Poi c'è stato Subversion, con TortoiseSVN e l'integrazione di Eclipse.Era intuitivo e paradisiaco.Penso che anche usare CVS con TortoiseCVS ed Eclipse sarebbe carino, anche se preferisco il modo in cui SVN gestisce la revisione.La versione dell'intero repository viene modificata a ogni check-in, non dei singoli file.

Consiglierei anche Subversion.La configurazione non richiede molto tempo, è gratuita e online è disponibile un ottimo libro che tratta le nozioni di base e alcuni argomenti avanzati: http://svnbook.red-bean.com/

Sovversione con tartarughevn.(tortoisesvn perché puoi vedere molto di ciò che accade visivamente e fornirà un buon punto di partenza per le cose da riga di comando.) C'è un sacco di documentazione là fuori e molto probabilmente la vedrai almeno in un momento della tua carriera.Quasi tutte le aziende per cui ho lavorato e con cui ho intervistato utilizzano SVN.

Se stai cercando di apprendere un prodotto commerciale mentre inizi, Perforce fornisce un client e un server gratuiti, con il server che supporta due utenti e cinque aree di lavoro client.

Nel mio precedente posto di lavoro veniva utilizzato religiosamente non solo per il codice dai nostri programmatori, ma per risorse artistiche, livelli di gioco e la mia documentazione.

Subversion è un buon punto di partenza.È un sistema di controllo della versione molto stabile e moderno.La migliore risorsa online per iniziare a conoscere Subversion sarebbe Controllo della versione con Subversion.Ci sono molte scelte per quanto riguarda i software server e client.Personalmente preferisco (per l'ambiente Windows).

  1. Server VisualSVN

  2. Client integrato nella shell TortoiseSVN e

  3. Componente aggiuntivo AnkhSVN Visual Studio Subversion

Ancora una volta, con Subversion ci sono molte opzioni disponibili.Inoltre, è un sistema di controllo della versione in continua evoluzione (a differenza del vecchio SourceSafe).Potrebbe essere facilmente integrato con numerosi strumenti di creazione automatizzata (CruiseControl, FinalBuilder) e sistemi di tracciamento di bug/problemi (JIRA).

Se stai cercando sistemi di controllo della versione all'avanguardia, scegli Git (sviluppato da Linus Torvalds).Ma se sei totalmente nuovo ai sistemi di controllo della versione, suggerirei di iniziare con subversion.

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