2009-06-04 20 views
12

Sono uno studente e sviluppo sempre progetti da solo, principalmente con Ruby On Rails.Come gestire i progetti personali

Ho notato che anche un semplice progetto può diventare complesso se non è possibile salvare facilmente il codice cancellato e passare da una versione all'altra. I backup di Time Machine non sono sufficienti.

Vorrei utilizzare un sistema di controllo versione, ma sembra che non siano destinati a progetti per utente singolo. Ho sbagliato? In tal caso, quale politica e software utilizzi per gestire il tuo codice?

+0

ho finalmente deciso di istituire Subversion a DreamHost (il mio blog è stato già ospitato lì). Grazie per il consiglio! – collimarco

+1

http://unfuddle.com/ hanno hosting Git e Subversion per coloro che non possono ospitare i propri. Viene fornito con biglietti, notebook, wiki, ecc ... – pirho

risposta

8

È sicuramente una buona idea utilizzare il software di controllo della versione e altri software di progetto sui propri progetti. Questi strumenti non sono solo per il lavoro di squadra, anche se consentono il lavoro di squadra. Oltre alle ovvie ragioni per tenere traccia delle modifiche apportate al progetto, è una buona idea utilizzare gli strumenti SCM in modo da avere familiarità con ciò che il settore sta utilizzando.

Subversion è molto diffuso ed è una buona scommessa dato che è stato sostituito con successo dallo strumento CVS precedente e precedente. Si basa su un repository centrale in cui il codice è archiviato e può essere sottoposto a backup: dove ho usato SVN per progetti personali e piccoli progetti di team, ho eseguito il backup su CD. Se il tuo progetto è opensource ci sono siti come sourceforge che supportano svn che puoi usare per l'hosting.

Tuttavia, come alcuni degli altri poster hanno indicato, un progetto personale potrebbe trarre maggiore vantaggio da un sistema distribuito: git sta crescendo in popolarità da quando git-hub è arrivato online e gli sforzi di porting stanno avendo successo. http://git-scm.com/ È probabile che strumenti come questi aumenteranno di popolarità nei prossimi anni in quanto consentono a un numero maggiore di persone di partecipare allo stesso codice. L'idea di un repository centrale è rilassata, dando a ogni sviluppatore la possibilità di replicare versioni diverse e restituire alla comunità solo le versioni che completa.

Uno dei vantaggi dell'utilizzo di SCM per tutti i progetti personali o meno, è che è possibile configurare un server separato per testare una versione del codice. Test automatici sull'ultima versione del codice (utilizzando un server di integrazione continua o simili) possono migliorare la qualità del software che si sta scrivendo.

Alcuni sviluppatori di software di grande esperienza parlano di un ritmo in cui eseguono frequentemente modifiche incrementali. Prendere l'abitudine di apportare piccole modifiche che sono complete e controllarle: è una buona pratica per entrare nel lavoro di gruppo.

3

Subversion!

È possibile installare localmente o utilizzare un servizio ospitato. I servizi sono piacevoli se si desidera passare da un computer all'altro o utilizzarlo come backup offline. http://www.beanstalkapp.com/ ha un piano gratuito per uso personale.

GitHub (git, non sovversione) è anche popolare ma credo che ci sia una piccola tassa per i progetti personali.

+1

è praticamente solo se vuoi un repository privato/commerciale su Github che pagherai per uno. L'open source non viene addebitato. –

0

Consiglio vivamente di scaricare Server VisualSVN. È una configurazione molto semplice e farà esattamente ciò di cui hai bisogno.

+0

Sono su un Mac;) – collimarco

15

Non c'è nulla che dice che non è possibile utilizzare un sistema di controllo versione standard se si è un singolo utente. In questo modo verrebbe sicuramente impedito di sperimentare alcuni dei problemi più dolorosi, come l'unione di file modificati nello stesso momento e altri conflitti che sorgono da più sviluppatori.

Sulla base di questo, è possibile esaminare uno qualsiasi dei sistemi di controllo della versione (credo che Subversion sia di gran lunga il più popolare in questo momento) e scegliere quello più adatto alle proprie esigenze, oppure ha le interfacce che si sono i più comodi con

+0

+1: praticamente tutti i miei file non binari sono sotto controllo di versione. Forse un driver FUSE per SVN-come-montato-volume sarebbe buono. –

10

I sistemi di controllo versione distribuiti sono solo per te: cerca Bazaar, Git o Mercurial. Sono leggeri, local commit sono facili e puoi sempre ripristinare a una versione precedente. Con un fornitore di hosting, come GitHub, è possibile pubblicare i i vostri progetti, si ottiene il backup gratuitamente e si può facilmente quota i progetti con altri contributori potenziali. La collaborazione è facile perché la fusione è anche un'operazione leggera.

3

Utilizzare git. Ti permette di lavorare senza mai aver bisogno di un server.

Non ci sono programmi di utilità per la riga di comando e un GUI (older screenshots) troppo (per Linux, windows e OS X).

Se in seguito desideri condividere o pubblicare il tuo progetto, puoi facilmente inserirlo in un sito come github.

1

Uso la sovversione per gestire tutti i miei progetti. xp-dev.com è una soluzione di hosting di subversion gratuita. Inoltre, penso che, installando tortisesvn, venga installato un server di subversion da utilizzare localmente.

6

Consiglierei Subversion.È gratuito e relativamente semplice, e impararne un po 'potrebbe essere utile in futuro. È multipiattaforma e disponibile anche su una varietà di sistemi ospitati.

Consulta anche: https://stackoverflow.com/questions/250984/do-i-really-need-version-control

e: Using Version Control for Home Development?

+0

Uso SVN per progetti personali perché 1) è gratuito e 2) puoi avere repository locali tramite il protocollo file: // (quindi non devi avere o eseguire un server). –

0

è possibile utilizzare qualsiasi sistema di controllo versione che esiste solo per lo sviluppo del singolo utente. come hai detto, anche un semplice progetto può diventare un incubo se cambi qualcosa che pensi sia meglio e fallisce. scarica tortoise snv - è gratuito e abbastanza semplice da usare - e mantiene le tue versioni funzionanti nel repository. commetti il ​​codice che funziona, mantieni possibili piccole modifiche (ad esempio refactoring di una classe), costruiscilo, testalo se funziona -> commit, se non funziona e non sai perché puoi sempre annullare le modifiche e riprovare.

1

Un sistema completo di controllo di versione diverso è set (www.getdrobox.com). Non è (solo) destinato al codice sorgente. È disponibile (con integrazione del sistema operativo intelligente) per Mac, Win e Linux oltre a un'interfaccia Web privata.

Può essere interessante per voi.

3

Anche per i progetti personali, se diventano più grande di qualcosa che si scrive un paio d'ore, un sistema di controllo di versione sarà molto utile.

Qui ci sono alcuni buoni punti:

  • Molti sistemi di controllo versione hanno una buona integrazione con IDE.
  • Branching vi permetterà di sperimentare senza la paura di dover richiedere molto tempo per ripristinare le modifiche. Il ramo può essere successivamente unito al tronco principale se necessario.
  • Avere una cronologia delle modifiche può essere utile e la codifica consente di impostare le pietre miliari.
  • Archiviazione più efficiente rispetto ai backup completi mediante la copia regolare dei file.
  • È possibile allegare metadati aggiuntivi (ad esempio commenti di commit).
  • Molti sistemi di controllo versione sono gratuiti!

Io personalmente uso un server Subversion esecuzione sul mio sistema che accedo tramite il Subclipse plug-in in Eclipse, che trovo ad essere molto utile per tenere traccia dei miei progetti personali.

Se sei interessato a Subversion, Version Control with Subversion è una fonte molto utile per conoscere i concetti e come impostare e iniziare con Subversion.

sistemi di controllo versione può essere un po 'difficile in un primo momento, ma è sicuramente vale la pena di creare!

1

Sono molto attenti a utilizzare "sempre" in qualsiasi risposta che mi do il SO ...

SEMPRE utilizzare il controllo di versione. In questi giorni è gratuito E facile da fare. Semplicemente non c'è ragione per non usarlo. Se è un progetto lungo un'ora ... bene ... è un progetto di un'ora che ora è in versione controllo.

La mia soluzione è stata slicehost (ok ... non gratuito), redmine (gratuito RoR bug tracker) git e gitosis. L'avvio di un nuovo progetto aggiunge circa cinque minuti alla parte anteriore di qualsiasi codifica, ma i suoi cinque minuti ne valgono la pena.

2

Utilizzare SVN o Mercurial.

Entrambi molto appropriati per l'utilizzo "domestico", penso che Mercurial sia migliore per te perché per impostazione predefinita creerai un repository per progetto (opzionato con il repository "grande" di SVN che memorizza tutto), quindi sarà più facile il backup di singoli progetti o lo scambio di fonti con altri, se necessario.

Entrambi funzionano in modalità riga di comando o utilizzano interfacce di tipo explorer (Tortoise) o plug-in disponibili per l'IDE più comune.

+0

Consiglio vivamente Mercurial su SVN. SVN è grande ma ha un grande repository. Mercurial è per progetto e veloce e agile. Posso entrare in una directory, digitare "hg init", "hg add {file che voglio aggiungere}", "hg commit" e ho impostato il mio repository. –

+1

Se hai disposto correttamente il tuo repository, non c'è bisogno di sovversioni che "un grande repository" sia uno svantaggio. Non importa se hai condiviso i repository di subversion tramite Apache, hai effettivamente repository illimitati a tua disposizione (con: sourceforge) –

+0

@darthcoder: quando installi SVN per la prima volta e non lo hai mai usato prima, dubito che tu possa ottenere il layout giusto ... D'altra parte, come dice Jason, con Mercurial, basta prendere qualsiasi cartella e convertirla in un secondo per essere un repository. Non puoi sbagliare con quello. – Billy

1

Un elemento che ti piace di git come l'utilizzo di github hosting è che hai una cronologia delle modifiche alle quali puoi andare e ottenere l'effettiva sorgente del codice e quindi "salva" le precedenti modifiche al codice.

Si potrebbe anche usare l'approccio set in un solo backup codice grezzo in una cartella sul cloud ..

Ho usato entrambi i metodi per progetti personali.

-1

Il CD di installazione di Mac viene fornito con CVS Version Control come parte del kit di XCode strumento

Vedi http://developer.apple.com/internet/opensource/cvsoverview.html per ulteriori informazioni

+1

Non utilizzare CVS. Veramente. Anche se la barriera all'ingresso è bassa, oggi ci sono così tante migliori opzioni disponibili. Git, Subversion, Mercurial, Bazaar. CVS dovrebbe essere l'ultima risorsa. A PARER MIO. –

+0

Vero, ma almeno ha le cose prontamente disponibili se necessario! – Katy

1

controllo delle versioni Hosted come beanstalkapp.com è molto conveniente, ma non prendere in considerazione se si vuoi consegnare la tua fonte a terzi. Potresti considerare un repository locale, sottoposto a backup online con una soluzione che crittografa i contenuti localmente prima del caricamento. Lo faccio con sovversione, Amazon S3 e JungleDisk.

1

Bitbucket è una considerazione must assoluto per progetti personali in base a:

  • gratuito, illimitato, archivi privati ​​
  • fino a 5 utenti sul loro account gratuito
  • Git e il supporto Mercurial

Ciò consente di avviare rapidamente un repository senza dover prestare attenzione al numero di repository disponibili in un account di codice sorgente pagato.

Consente inoltre progetti che entreranno di pubblico dominio di essere semplicemente biforcuta a GitHub, ecc

Problemi correlati