Come posso configurare un sistema di controllo del codice sorgente per me stesso?


23

Programma sul desktop del mio ufficio, ma a volte anche a casa in un'altra stanza del mio laptop, e anche lontano da casa. Ciò di cui ho bisogno è un sistema che sincronizzi automaticamente o su richiesta il mio lavoro dall'uno all'altro, quando necessario.

Non ho una configurazione di rete domestica e, sebbene immagino di poterlo fare, sarebbe una domanda per un'altra scheda, forse. Ho pensato a un sistema che manterrebbe il codice sorgente nel cloud, ma non ne so abbastanza per iniziare. Ho bisogno di un modo gratuito o economico per farlo.

Lavoro in .NET (Windows Phone 7, in effetti).


1
usa dropbox, basta installarlo su entrambe le macchine e finirlo. È gratuito (fino a 2 GB). Per la tua situazione il controllo del codice sorgente è sopra le righe (IMHO).
Darknight,

26
Il controllo del codice sorgente non è mai esagerato (IMHO)!
Mongus Pong,

4
Sono necessari <15 minuti (a seconda della larghezza di banda del download) per installare e avviare Git.
Mongus Pong,

2
ci vogliono <3 minuti (a seconda della larghezza di banda del download) per installare e far funzionare dropbox.
Darknight,

4
DropBox è un suggerimento terribile! Non è un sistema di controllo della versione corretto, è per la condivisione dei dati. Ha l' abitudine molto cattiva di caricare e scaricare le modifiche ogni volta che si salva un file e si sincronizza con tutti gli altri client in tempo reale , impantana completamente la macchina facendo tutto questo traffico di rete non necessario soprattutto se si utilizza qualcosa che crea artefatti nella stessa directory che si trova in DropBox. Impara e usa Git o DVCS equivalente.

Risposte:


39

Il modo più semplice è utilizzare uno dei sistemi online. Acquista GitHub o BitBucket . Per ulteriori informazioni su Git o Mercurial, controlla rispettivamente Git Reference e Hg Init .


Forse, se tutte le macchine hanno connessioni a Internet, ma ci sono altri casi d'uso. Ad esempio, conservo alcuni repository di sovversione su una chiavetta USB e alcuni più grandi (non codice sorgente - foto e cose) su un disco rigido esterno. Quando sarò più felice con la transizione, probabilmente avrò anche repository Mercurial su unità flash USB. Uno dei motivi: uso ancora Windows XP per molte cose, ma al giorno d'oggi non lo permetterò (laptop o desktop) su Internet.
Steve314,

21
La cosa bella dei sistemi di controllo della versione distribuita come Git e Mercurial è che puoi lavorare con il tuo repository localmente e quindi sincronizzarti con un server centrale ogni volta che ti capita di avere a portata di mano una connessione di rete. Sembra la soluzione ideale per l'OP.
Michelle Tilley,

@Brandon - funziona anche per un repository principale su un'unità esterna, quando averlo collegato tutto il tempo è una seccatura.
Steve314,

2
Ricorda, BitBucket ha repository privati ​​gratuiti (a differenza di GitHub), il che probabilmente lo rende un'opzione migliore per l'OP.
Kevin Yap,

Il motivo per cui non ho suggerito di eseguirlo localmente era perché non sembrava che si sarebbe sentito a suo agio con quello, e ha detto che aveva bisogno di un accesso remoto ad esso. Ma ovviamente, eseguire localmente e spingere in un repository cloud è il modo migliore / più sicuro per andare.
Peter Rowell,

7

Puoi usare DVCS come Git o Mercurial in grado di creare un repository locale, quindi installare Dropbox e mettere la cartella del tuo progetto (compresa ovviamente la cartella del repository) nella cartella dropbox.

Dropbox gestirà la sincronizzazione e potrà gestire la situazione offline purché si modifichi solo in un punto tra la sincronizzazione.

BTW Dropbox non esporrà i tuoi file al pubblico per impostazione predefinita, ma puoi comunque esporli se vuoi.

MODIFICARE

Per quanto riguarda l'integrità del repository nel caso in cui Dropbox non riesca a sincronizzare un file o due, è possibile creare un repository master all'esterno della cartella Dropbox nel PC principale e inviarlo. Quindi, se il repository locale nella cartella Dropbox viene danneggiato, ripristina semplicemente dal PC principale. Ma non ho sperimentato la corruzione del repository.



Essenzialmente quello che faccio. I repository Mercurial sul mio desktop e laptop, repository principale in Dropbox, da cui spingo e da cui estraggo.
David Thornley,

@David Lo faccio al contrario, repository principale su PC, repository di lavoro in Dropbox, compresi i file di codice sorgente su cui sto lavorando.
Endy Tjahjono,

@Endy Tjahjono: dal tuo commento sembra che tu faccia il tuo lavoro su un computer. Uso il mio desktop a volte e il mio laptop a volte, quindi non funziona davvero per avere il mio repository principale su uno di essi.
David Thornley,

@Davido il mio errore, avrei dovuto dire repo 'backup' nel mio PC principale. Il mio repository "principale" è il repository di lavoro all'interno della cartella Dropbox. Spingo nel repository di backup occasionalmente a scopo di backup.
Endy Tjahjono,

6

Ecco alcune brevi istruzioni su come impostare un VCS distribuito. Il vantaggio di usare git o mercurial è che non è necessario configurare un server per farlo funzionare poiché il repository è solo un file system. Hai il repository locale nel tuo computer vicino al tuo codice (in git c'è una .gitcartella e in mercurial c'è una .hgcartella nel percorso del progetto).

Usando git

Passaggio 1: scarica e installa git. Per Windows potresti voler usare TortoiseGit . Alcune note di installazione sono qui .

Passaggio 2: seguire il libro della comunità git per inizializzare il repository locale per il progetto e impegnarsi nel repository.

Passaggio 3: per mettere le cose sul "cloud" che è github è possibile seguire questo tutorial .

Usando Mercurial

Passaggio 1: scaricare e installare mercurial. Per Windows potresti voler usare TortoiseHg .

Passaggio 2: seguire la guida di avvio rapido per creare un repository per il progetto e impegnarsi nel repository.

Passaggio 3 Per mettere le cose sul "cloud" che è bitbucket è possibile seguire questo tutorial .

Se stai lavorando su .NET potresti voler usare Mercurial a causa del ( migliore ) supporto in Windows al momento della scrittura.


2

Come già giustamente hanno affermato @ peter-rowell e altri, il modo più semplice è usare uno dei DVCS come Git e i corrispondenti sistemi online come Github o Unfuddle. Personalmente uso Git e Unfuddle.

Da allora, hai detto che anche ottenere una connessione Internet a casa non è un problema per te, c'è questo nuovo IDE online che gira nel browser e vive sul cloud. Non sapevo che qualcosa fosse disponibile prima, ma sembra molto interessante e interessante. Anche se non l'ho usato molto, ma è bello.


Unfuddle è un ottimo servizio. Fondamentalmente è solo una copia di Redmine con alcune belle modifiche.
Keyo,

2

Quasi ogni DVCS sarebbe d'aiuto.

I più popolari sono Git, mercurial e pochi altri; ma mi piace molto Fossil . È un singolo (piccolo!) Eseguibile, facilmente trasportabile, autonomo, multipiattaforma e include un wiki, una GUI basata sul web, un sistema di ticket, un gestore di documentazione, ecc.


1
Bitbucket è un servizio di hosting Mercurial.
Tamás Szelei,

Grazie. Sapevo che; ma i nomi mi si aggrovigliano nella mente
Javier,

1

L'opzione che suggerirei sarebbe Kiln . È fatto dalle stesse persone esatte che fanno FogBugz e Stack Exchange. Quindi dovrebbe essere abbastanza buono, inoltre è gratuito per un massimo di 3 utenti, credo. La scala è proprio come FogBugz e le due possono essere integrate in modo da poter tenere traccia anche di bug e funzionalità.

Proprio come aveva detto Joel in uno dei suoi post sul blog, il tracciamento dei bug e il controllo del codice sorgente sono sempre un vantaggio, anche per uno sviluppatore solitario.


Bene, potrebbe essere stato gratuito per 3 utenti, ma ora costa $ 25 per utente al mese. Tuttavia, sembra un prodotto interessante.
Cyberherbalist,

1

Se la privacy del tuo codice non è un problema, Google Code potrebbe essere una soluzione praticabile. Si occupa della parte di hosting ed è gratuito e abbastanza facile da configurare. Supporta Subversion, Mercurial e Git, che hanno tutti client Windows. Si integra anche con gli ID di Google in modo da poter aggiungere facilmente collaboratori al progetto. Ospito i miei progetti di hobby lì usando Mercurial. Ho il client TortoiseHg installato sul mio computer di casa e di lavoro, in modo da poter lavorare sui miei progetti durante le pause.


Bello! Grazie per averlo menzionato: non avevo ancora sentito parlare di Google Code prima.
Cyberherbalist,

0

Dipende dalle tue conoscenze sulla configurazione di un server e da che ora sei disposto a investire.

Personalmente ho noleggiato un piccolo server virtuale da un hoster e ho installato un server web Apache e integrato un repository Subversion (che ora sto convertendo in git). L'installazione non è poi così tanto e una volta che è attivo e funzionante, non devi più preoccuparti. Questa configurazione ha il vantaggio di essere in grado non solo di configurare un repository di controllo versione, ma anche di altri tipi di cose a cui si desidera accedere da qualunque luogo ci si trovi (ad esempio, ho installato un WIKI e un tracker dei problemi).

Se questo è un sovraccarico eccessivo per te, puoi sempre utilizzare i sistemi online già suggeriti come GitHub.


0

Il più semplice è probabilmente quello di andare con il fornitore di git, github ha la possibilità di pagare per un conto privato.

Ma non dimenticare di svn, è semplice e facile da usare. È possibile installare un server svn da qualche parte a cui è possibile raggiungerlo, probabilmente al lavoro. (E progetti come Visual svn server lo rendono davvero facile su Windows.) Come client puoi usare un plugin di Visual Studio o tortoisesvn.

L'unica cosa che devi ricordare è che devi cambiare e aggiornare quando cambi computer.


Non penso che SVN sia la risposta giusta qui. Ho trovato più facile impostare Mercurial su SVN, ed è un sistema migliore di SVN. SVN è inutile senza una connessione diretta al repository centrale e l'OP ha due computer che apparentemente non hanno un collegamento diretto.
David Thornley,

Non sono sicuro, svn è più facile delle alternative distribuite. Ma dal momento che non riesce a raggiungere il server in ogni momento, devi essere disciplinato quando vuoi diramare. Ma uno spettacolo da uomo raramente lo fa comunque. E la necessità di impegnarsi è quando cambi computer, quindi sono d'accordo che non sia ottimale. Ma è un'alternativa. In realtà ho lavorato così prima di iniziare a usare git. (Ma con Git è più facile sbagliarsi).
Johan,

La mia ipotesi è che stia spostando il laptop con sé quando va al lavoro, altrimenti non sarà una configurazione facile e David ha ragione.
Johan,

Tempo impiegato per impostare un repository git o Hg ( git init), un paio di secondi. Con Subversion hai prima bisogno di un server, che è molto più difficile della semplice esecuzione git/hg initnella tua directory. Sono impaziente e pigro e Git mi incoraggia a usare SCM perché (fusione, inizializzazione, impegno) è così rapido e indolore.
Keyo,

0

Uso Beanstalk . Ha funzionato alla grande per me come server SVN personale. Hanno anche l'hosting Git ma non l'ho provato. Hanno un account gratuito per cominciare, e quindi puoi passare a un account a pagamento, se necessario.


-2

Dropbox

Tutte le altre soluzioni sono sovraccariche per le tue esigenze:

Installa Dropbox su entrambi i computer.

Un controllo completo della sorgente è bello ma nella tua situazione non è necessario IMHO .

Questo è il percorso più semplice da seguire -> ti ritrovi con le cartelle sincronizzate automaticamente su tutte le macchine che desideri.


1
Puoi usare Git insieme a Dropbox. Vedi stackoverflow.com/questions/1960799/…
Mongus Pong

4
Non c'è nulla di esagerato nell'uso del controllo del codice sorgente, specialmente quando Git e HG sono così facili da configurare. Non credo che sia un unico sviluppatore, se sta scrivendo un codice di produzione ha bisogno del controllo del codice sorgente.
richeym,

Sì, probabilmente hai ragione. Penso solo che per un singolo sviluppatore sia semplicemente inutile e OTT, ma diamine questa è la mia opinione.
Darknight,

git init, git add ., git commit -m "bla"È tutto quello che dovete sapere per commettere qualche codice. Non è difficile e hai la sensazione di poterlo ripristinare. Ovviamente i vantaggi sono molto più importanti in una squadra, ma mi piace essere in grado di ripristinare i punti nel tempo è importante. Essere in grado di ramificarmi e nascondermi mi rende anche più produttivo.
Keyo,

Ho sentito quello che dici, in drop box la sua sincronizzazione in tempo reale, ha un rollback di base. Sì, non è niente rispetto a un controllo completo della sorgente, ma è praticamente "fuoco e dimentica"
Darknight,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.