Domanda

Sono uno sviluppatore solitario al momento; ti preghiamo di condividere le tue esperienze su cosa è una buona configurazione VC per uno sviluppatore solitario.

I miei vincoli sono;

  • Lavoro su più macchine e devo mantenerle sincronizzate
  • A volte lavoro offline

Attualmente sto usando Subversion (solo il client su un server remoto), e funziona bene. Sono interessato a Mercurial e git DVCS, ma nessuno dei loro casi d'uso ha senso per la mia situazione.

EDIT: ho migrato il mio sviluppo attivo su Fossil http://www.fossil-scm.org/ dopo averlo provato con un client. Mi piacciono molto le funzionalità di sincronizzazione automatica dei miei repository (riduzione di fork accidentali), il supporto della documentazione (sia wiki che incorporato / versione) che supporta la mia necessità di documentare il codice e il progetto in spazi diversi, il tracker dei problemi facile da configurare, un buon accesso controllo, interfaccia web personalizzabile e community utile.

È stato utile?

Soluzione

Potrei suggerire un controllo di versione piuttosto nuovo chiamato fossile.

Questo non è un progetto anch'io, è scritto dal Dr. Richard Hipp, lo stesso ragazzo che ha fatto SQLite. L'intero repository è un file SQLite, quindi è molto solido. Hai un wiki e un sistema di ticket integrati. Puoi avere molti utenti con diritti diversi, quindi puoi ad esempio dare ai tuoi utenti il ??diritto di emettere biglietti ma non visualizzare il codice sorgente.

Questo è piuttosto semplice, diretto e funziona come un sistema distribuito, il che significa che puoi clonare e fare il checkout localmente e da remoto.

Ulteriori informazioni sono disponibili su http://www.fossil-scm.org/ e se guardi da vicino vedi che l'intero sito è in realtà fossile.

Una cosa che mi ha davvero colpito del fossile è che è solo un file, tutto qui. L'intero programma fossile è piuttosto piccolo, ma considerando chi è l'autore, questa non è davvero una sorpresa.

E poiché il tuo repository è un file sqlite, devi semplicemente copiarlo e hai un backup.

Altri suggerimenti

Ogni persona probabilmente ti dirà che il suo DVCS preferito è il migliore per te. Direi che Mercurial è il migliore! ; -)

Ma questa è una schifezza . Hai sicuramente bisogno di un DVCS, ma provali tutti, o almeno quelli maggiormente utilizzati, e fai la tua scelta da solo. Scegliere il DVCS per il quale conosci un guru è anche una scelta ragionevole, BTW. Consiglierei di provare (o leggere la documentazione di) almeno Mercurial, Git e Bazaar. SVK potrebbe avere la caratteristica desiderabile che è progettata per interagire con SVN, ma l'ultima volta che ho verificato che avevano problemi di prestazioni cattivi. Git ha anche alcuni plugin di interazione SVN, AFAIK.

Lavorare offline ha assolutamente senso per Git. Puoi sfogliare tutta la tua cronologia, effettuare commit, eseguire fusioni, creare filiali, essenzialmente fare tutto ciò che è collegato al tuo repository offline. Inoltre, puoi impostare un repository centrale che è il "master", ovvero spingerai tutte le modifiche in quel repository centrale. In questo modo sai sempre dove si trova l'ultimo codice, ma ottieni anche il vantaggio di poter inviare le modifiche da una macchina all'altra, se mai necessario.

Di recente ho convertito tutti i miei oltre 80 repository Subversion in Git e non ho guardato indietro.

Bazaar : vedi solo use case e Bazaar in 5 minuti .

Soprattutto per l'utilizzo offline, un sistema di controllo della versione distribuita è la strada da percorrere.

Subversion funziona alla grande (specialmente con TortoiseSVN). Non credo che qualsiasi VC distribuito avrebbe un vantaggio in un singolo scenario per sviluppatori.

Modifica: non avevo notato " a volte lavoro offline " parte quando ho risposto inizialmente. In tal caso, suppongo che tu debba ponderare la complessità aggiunta di un DVCS con il fatto che ti dà cronologia / revisioni offline.

Consiglio sempre darcs per questa situazione ( ecco la mia risposta a una domanda simile ) poiché la sua interfaccia utente da riga di comando è una gioia da usare e la gioia è ciò che voglio dal mio proprio sviluppo :)

Git viene fornito in bundle con alcune GUI praticabili, ma l'ho trovato troppo ingombrante rispetto ai darc quando ho colpito la riga di comando per utilizzarlo per progetti personali.

Entrambi soddisferanno la tua necessità di lavorare offline e sono entrambi facili da sincronizzare con le modifiche.

Subversion richiede l'accesso a un repository centralizzato. Se lavori offline e da più macchine, ciò significa che non puoi effettuare revisioni mentre sei offline.

Una soluzione Unix con ossa nude sarebbe quella di mantenere una storia all'interno della directory di lavoro con RCS e sincronizza la directory di lavoro (inclusa la cronologia) tra macchine diverse utilizzando Unison . L'avvertenza principale sarebbe che, se si cambia macchina, è necessario sincronizzarle prima di iniziare a eseguire nuove revisioni. Se questo è un problema, è meglio cercare un vero DVCS.

Potresti trovare utili le risposte alla domanda che ho posto: alternativa a VSS per uno spettacolo one man (esercito di uno?):

Alternativa a VSS per un uomo mostra (esercito di uno?)

Devi provare un DVCS (o quello che chiamo un peer2peer VCS). Sono d'accordo con il nulla. Non perdere tempo con svn e tutto il software creato per renderlo utile. Un DVCS è più intuitivo del vecchio e deprecato stile client-server. SVN non sa cosa sia un tag o un ramo. Per Svn tutti sono solo copie.

Ad esempio: è così difficile implementare un tag come sinonimo di un numero di revisione.

In mercurial un tag è proprio questo. Non puoi tenere traccia delle versioni di un tag come in svn.

Leggi qui guida dvcs per iniziare. Quindi puoi usare svk, mercurial aka hg o git. Ma per favore non tornare indietro nel tempo

Sono un grande fan del controllo delle versioni distribuite. Ho giocato con git, mercurial e bzr e ora uso git per tutti i miei progetti. Tutti e tre sono fantastici per uso personale perché è così semplice creare un nuovo repository sul tuo computer. Non è necessario eseguire alcun server.

Ecco un paio di idee per condividere il tuo repository su più computer. 1) Utilizzare alcuni servizi ospitati come github. Di solito questi sono gratuiti per progetti open source e a basso costo per progetti commerciali. Stiamo usando github al lavoro. 2) Utilizzare la casella personale per creare un disco di backup condiviso su Internet a cui tutti i computer possano accedere. È gratuito per meno di 2 GB. (Se sei su Ubuntu, Ubuntu One è un'altra alternativa.) Metti il ??tuo repository master git su dropbox e quindi metti repository locali su ciascuno dei tuoi computer. (Quindi, Dropbox svolge lo stesso ruolo di Github.) È completamente gratuito, ti consente di lavorare facilmente offline, ti consente di condividere il repository con altri sviluppatori in seguito, se necessario, ed è eseguito il backup automaticamente.

Inoltre, se vuoi davvero usare SVN, guarda una soluzione ospitata come cvsdude (nonostante il nome, eseguono SVN) piuttosto che eseguire il tuo server. Potrai accedere al tuo codice da qualsiasi luogo e ti costerà solo ~ $ 5-10 al mese.

SourceGear Vault è gratuito per uno sviluppatore ed è ottimo.

Raccomando assemblla.com - forniscono svn, wiki e trac gratuiti. Non c'è niente di meglio di così!

Se sei a tuo agio con sovversione, ti suggerisco di dare un'occhiata a SVK

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