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.