version-control - control - svn



Sistema di controllo del codice sorgente per singolo sviluppatore (18)

Ho lavorato con Bazaar ora per alcune settimane e mi piace davvero. Sono uno sviluppatore Linux quindi non so molto di Tortois ma se ti piace dovresti sapere che c'è un Tortoisbzr

https://src-bin.com

Qual è il sistema di controllo del codice sorgente consigliato per un team molto piccolo (uno sviluppatore)?

Il prezzo non ha importanza. Il cliente pagherebbe :-)
Sto lavorando su Vista32 con VS 2008 in C ++ e successivamente in C # e con WPF. Configurare un server extra (fisico) per questo mi sembra eccessivo.

Qualche opinione?


Answer #1

Bene, per cominciare, non è necessario averne distribuito uno :) Non sono sicuro di cosa significhi questa parte fisica, perché potresti mettere il server svn sulla tua macchina con pochi problemi.

D'altra parte, NetBeans ha un modulo di cronologia locale che registra tutte le modifiche locali di un file. Forse qualcosa del genere sarebbe abbastanza per te se Visual Studio avesse qualcosa di simile.


Answer #2

Consiglierei Subversion dato che è per singolo sviluppatore e presumo che non si stiano facendo unioni complesse e un sacco di controllo log / cronologia.

Sembra che molte persone utilizzino http://svnrepository.com/ per il loro hosting. Viene fornito con Trac e persino Git se ne hai bisogno in seguito.


Answer #3

Consiglierei anche Mercurial. Il suo set di comandi è molto simile a quello trovato in Subversion, quindi la curva di apprendimento non è così ripida. Come accennato in precedenza, è progettato per essere eseguito localmente, ma è anche facile condividere / unire le modifiche tra computer, o anche solo trasferirlo su un server remoto per i backup.

Offre strumenti eccellenti, come TortoiseHG , e ha ottimi plugin per NetBeans ed Eclipse. Funziona anche in modo nativo su Win32, come è scritto in Python.

Se non si desidera configurare autonomamente un server (per i backup, ad esempio), sono disponibili provider di hosting gratuiti; c'è un elenco completo su The Mercurial Wiki .


Answer #4

Io uso Mercurial . Esegue un trattamento in esecuzione stand alone sul mio sistema di sviluppo Vista senza altre dipendenze richieste. Io uso la riga di comando, ma c'è anche TortoiseHG da integrare con Explorer.

Due commenti:

  1. Esistono altri strumenti che probabilmente si integrano meglio con VS. Penso che Subversion abbia dei bei plug-in VS.
  2. Il vantaggio di un server separato è che è un bel backup di tutto il tuo lavoro nel caso in cui il tuo HDD muoia su di te ecc.

Modifica: @Slartibartfast: se si desidera eseguire il controllo del codice sorgente su una singola macchina, uno strumento di controllo del codice sorgente distribuito come git o Mercurial è ideale poiché sono progettati per eseguire repository completi su una macchina senza il sovraccarico di un server. Il fatto che non colleghi mai il tuo repository a nessun altro per spingere e tirare le modifiche non significa che lo strumento non abbia ragione.


Answer #5

Non vedo perché il fatto che il tuo uno sviluppatore cambi qualcosa sul problema del controllo del codice sorgente. Seguirò lo stesso sistema (in effetti faccio sui miei progetti solisti). Io uso wush.net (svn e trac) in questi casi. È veloce da configurare e non richiede che tu faccia o conosca alcun problema del server. Ti consiglio di usare qualcosa di simile.


Answer #6

Vai a subversion e tortoiseSVN, non è necessario configurarlo su un server.

  • I costi sono zero
  • La documentazione di sovversione è grande e divertente da leggere
  • tortoiseSVN è un client molto conveniente

Answer #7

Consiglierei l'uso di subversion. Molti hanno raccomandato l'uso di un box separato come server, nel caso in cui la macchina dev subisca una perdita. Cosa succede quando il server SVN muore? La risposta è che, indipendentemente da dove si sceglie di eseguire il server, assicurarsi di eseguire sempre backup frequenti, eventualmente automatizzati quotidianamente su una macchina secondaria, preferibilmente fuori sede.


Answer #8

Un sistema di controllo del codice sorgente non si preoccupa se c'è uno solo sviluppatore coinvolto :)

Ti consiglio di utilizzare un sistema di controllo del codice sorgente che hai usato prima e che ti è piaciuto.
Se ti piace l'integrazione del 2008 del sistema di controllo del codice sorgente, tuttavia, utilizzerei TFS anche se non ho mai avuto l'esperienza per configurarlo, ma non dovrebbe essere così difficile.

Un'altra possibilità è quella di usare svn (troverai alcuni server su google) e usare Tortoisesvn che si integra nella shell di Windows ed è bello lavorarci.


Answer #9

Uso Perforce anche per le mie cose personali, principalmente perché lo usiamo al lavoro. Ci sono anche i collegamenti di emacs, così puoi sincronizzare, controllare gli oggetti dentro o fuori, ecc. Tutti da emacs.


Answer #10

Mi rendo conto che il costo non è un problema, ma una buona soluzione gratuita che non implichi il check-in e l'uscita sarebbe quella di ospitare il codice all'interno di Dropbox facendo questo si otterrebbe immediatamente il controllo delle versioni e il backup che sono le caratteristiche principali che un singolo il sistema di sviluppo fornirebbe.


Answer #11

Recentemente ho trasferito il mio studio da Subversion a Perforce e ho messo alcune note su di esso, una sorta di postmortem, sul mio blog qui . Spero sia utile


Answer #12

Bazaar è un buon sistema di controllo della versione. Mi piace usarlo per le mie configurazioni di Linux perché non è necessario creare un repository separato.



Answer #14

Consiglio vivamente git

Funziona alla grande sia per team grandi che piccoli. Unico inconveniente è il supporto nativo di Windows. Anche se funziona bene per me in Cygwin. Esiste anche una porta Windows nativa .

Alcuni dei suoi benefici:

  • Supporto eccellente per un flusso di lavoro non lineare. La sua ramificazione e fusione è di gran lunga migliore di quella di Subversion.
  • Buoni strumenti per navigare nel tuo repository
  • Gestisce bene i progetti di grandi dimensioni.
  • Non è possibile modificare la cronologia senza modificare la firma crittografica del repository
  • Con il suo design non monolitico, è facile da scrivere.

Alcune persone scoprono di avere una curva di apprendimento ripida. Ma una volta capito, puoi fare quasi tutto ciò che vorresti.


Answer #15

Sourcegear's Vault è una grande opzione, funziona su SqlServer ed è in circolazione da molti anni. Non userei alcuna versione di VSS (Visual Source Safe).



Answer #17

Vorrei usare Subversion (infatti lo uso) [ aggiornamento : luglio 2014 - Uso Git - vedere la fine della risposta]. SVN è:

  • gratuito,
  • abbastanza buono (vedi sotto gli svantaggi),
  • semplice,
  • funziona bene su Windows (e anche su Linux),
  • un sacco di persone lo usano quindi è facile ottenere aiuto,
  • può integrarsi con la maggior parte degli IDE, ad es. Visual Studio (ad es. ankhsvn o VisualSVN - maggiori informazioni ) o Eclipse (es. Subclipse - qui qualcuno ha chiesto questo).

Vorrei fortemente raccomandare una macchina separata per controllare il server di controllo. Nel migliore dei casi da qualche parte nel cloud . vantaggi:

  • Non perdi i repository di controllo del codice sorgente se la tua casella di sviluppo muore.
  • Non devi preoccuparti della manutenzione di un'altra casella.

Ci sono aziende che ospitano repository SVN .

Ecco i collegamenti ai pacchetti SVN (client e server) per vari sistemi operativi.

Svantaggi di SVN

Sto usando SVN su Windows per circa 5 anni e ho scoperto che SVN ha alcuni svantaggi :).

È lento su grandi repository

SVN (o il suo client - TortoiseSVN) ha un grosso svantaggio - è terribile lento (durante l'aggiornamento o il commit) su repository di grandi dimensioni (migliaia di file) a meno che non si disponga di un'unità SSD .

L'unione può essere difficile

Molte persone si lamentano di quanto sia difficile la fusione con SVN.

Faccio la fusione per circa 4 anni (compresi circa 2 anni in CVS - che è stato terribile, ma fattibile) e circa 2 anni con SVN.

E personalmente non lo trovo difficile - d'altra parte - qualsiasi fusione è facile dopo la fusione di rami in CVS :).

Unisco un repository di grandi dimensioni (due repository di fatto) una volta alla settimana e raramente ho conflitti difficili da risolvere (la maggior parte dei conflitti viene risolta automaticamente con software diff che uso).

Tuttavia, in caso di progetto di alcuni sviluppatori la fusione non dovrebbe essere affatto un problema se si mantengono alcune semplici regole:

  • unire le modifiche spesso,
  • evitare lo sviluppo attivo in vari rami contemporaneamente.

Aggiunto a luglio 2011

Molti sviluppatori hanno consigliato il controllo delle versioni distribuite come Git o Mercurial .

Dal punto di vista del singolo sviluppatore , ci sono solo alcuni importanti vantaggi del DVCS rispetto a SVN:

  • DVCS può essere più veloce.
  • È possibile eseguire il commit nel repository locale senza accedere a quello centrale.
  • DVCS è una cosa calda e fantastica da usare / imparare (se qualcuno paga per il tuo apprendimento).

E non credo che la fusione sia un problema nel caso di un singolo sviluppatore.

Joel Spolsky ha scritto tutorial su Mercurial che vale la pena di leggere definitivamente.

Quindi, nonostante molti vantaggi del DVCS, rimango con SVN se la fusione o la velocità non sono un problema.

Oppure prova Mercurial, che secondo questa e queste domande SO, è meglio supportato (a luglio 2011) su Windows.

Aggiunto a luglio 2014

Per circa un anno utilizzo Git (principalmente Git Bash) per i miei progetti di animali domestici (es. Risolvere problemi di Eulero) e le filiali locali per ogni problema di Eulero sono davvero una bella funzionalità - esattamente come è descritto come vantaggio di DVCS.

Oggi gli strumenti Git su Windows sono molto, molto meglio di 2 o più anni fa. È possibile utilizzare il repository remoto (come GitHub o ProjectLocker e molti altri) per mantenere la copia del proprio progetto lontano dalla propria stazione di lavoro senza ulteriori sforzi / denaro.

Comunque uso il client della GUI solo per guardare i diff (e talvolta per scegliere i file da salvare), quindi è meglio non aver paura della riga di comando - è davvero bello.

Quindi oggi vorrei andare con Git.





version-control