2010-05-03 11 views
9

Ho sentito che molti utenti di Emacs hanno il loro file di init (.emacs o init.el) sotto controllo di versione git e sincronizzano il repository git su Dropbox, quando eseguono Emacs su più sistemi. Perché dovresti usare git in questa situazione esattamente?Perché dovresti usare Dropbox ma anche Git per il tuo file di inizializzazione di Emacs?

Generalmente si controlla quale sistema si sta utilizzando e quali cose caricare e impostare in base a ciò che può accadere in uno stesso file di init per tutti i sistemi. Perché esattamente vorresti salvare una cronologia delle versioni del tuo file init, è davvero così importante che giustifica un repository git per questo?

Quindi, non è semplicemente sufficiente inserire il file di init in una directory Dropbox e caricarlo direttamente da Emacs direttamente anziché prelevare la versione più recente dal repository git sincronizzato in Dropbox?

+2

Questo sembra piuttosto ridondante, considerando che Dropbox ha un supporto per il versioning di base integrato. – Amber

+0

Donald Fellows: nel titolo era apposta per enfatizzarlo, ma lo cambierò in * e * poi. –

+0

@Michiel: Non c'è davvero bisogno; non attirerà più bulbi oculari in entrambi i casi. –

risposta

7

Git offre il controllo della versione, Dropbox offre hosting privato gratuito.

Fino a poco tempo fa, questo era l'unico metodo gratuito per ospitare un repo Git privato che io conosca. Gitorious, repo.or.cz e Co. non hanno repository privati ​​e GitHub, ShareSource e gli amici fanno pagare soldi per i repository privati. Assembla è l'unico hoster che conosca che offre servizi di hosting privato gratuiti, ma quell'offerta è iniziata solo tre settimane fa.

I file di configurazione personale possono contenere dati sensibili, quindi è consigliabile ospitarli in privato, ma forse non ha senso pagare GitHub 7 $/mo solo per un singolo file .emacs.

+0

La vera domanda è: perché dovrei avere il controllo della versione per il mio file .emacs? –

+4

Ola Bini lo spiega qui: http://olabini.com/blog/2008/05/how-large-is-your-emacs/ – Andreas

1

Una volta che gli sviluppatori trovano un sistema di controllo della versione che gli piace, c'è una tendenza a usarlo per tutti i file importanti. - Stai assicurando che i file vengano sempre sottoposti a backup, gestiti, conservati in una cronologia (inclusi i log dei commenti, i motivi delle modifiche, ecc.)

Git ha attirato molti utenti, non sono sorpreso per ascoltare le persone che lo utilizzano per il tracciamento dei file init.

+0

Infatti. http://github.com/technomancy/emacs-starter-kit/network –

2

Io uso Dropbox non solo per i file di configurazione di Emacs ma anche per tutti gli altri pacchetti esterni (più recente org-mode, SLIME, ecc.) E singoli file .el, in modo da installarli e configurarli (percorso di caricamento, file info, byte-compilation, ecc.) solo una volta per tutti i sistemi e utilizzare Git per gestire i file di configurazione (configurazione generale, sistema o personalizzazione specifica del sistema operativo).

Dopodiché, è tutto in discesa, perché ho inserito tonnellate di materiale di riferimento nel mio Dropbox (documenti API, materiale di protocollo, cheat sheet, ecc.) Così come materiale di sviluppo (file jar Java, fonti, ecc.) che ho lo stesso ambiente di sviluppo su tutti i miei sistemi con comandi Emacs per accedere a tutte le cose.

+0

L'uso di Dropbox non è la domanda. La domanda è, perché usare anche un sistema di controllo della versione, in questo caso, git, in più. –

+1

Perché la configurazione e la personalizzazione di Emacs sono codice e possono essere piuttosto complesse e fragili quando coinvolgono più macchine con diversi SO? – gko

2

Finché si pensa ai file di configurazione come codice, si desidera utilizzare un VCS corretto. Dropbox dà un certo valore, ma non è nella stessa lega di git.

In breve, quando si lavora con il codice, si desidera molto più che tornare alle versioni precedenti del documento. Vuoi un modo rapido ed efficace per guardare le differenze tra le versioni. Vuoi sapere cosa è cambiato, perché è cambiato, quando, ecc. Vuoi creare rami sperimentali dove provare qualcosa di nuovo senza ingombrare qualcosa che sai funziona. Vuoi estrarre alcuni dei cambiamenti dell'esperimento nel tuo ramo stabile; ma forse non tutto.

Un altro problema è che in futuro potresti voler spostare i tuoi file, inclusa tutta la cronologia, da Dropbox per qualche motivo. Se usi git, questo è banale.

1

Dropbox offre supporto per la cronologia, ma non è così ampio e controllabile come Git. Se uno sviluppatore conosce Git, ha senso che conservino i propri file di configurazione per cose come Emacs in Git. Disponi di versioni complete, non perdi mai una versione precedente, commetti modifiche con messaggi significativi in ​​momenti utili, ecc.

Ora, perché farlo su Dropbox, quando Git ti permette di spingere/tirare tra i repository? Semplicità. Se i tuoi file sono su Dropbox, sono trasparenti e automaticamente su tutti i tuoi computer collegati a Dropbox. Quindi non devi preoccuparti di "Ho apportato le modifiche? Dove sono le modifiche più recenti?" ecc. Come altri hanno già detto, non è necessario avere un repository Git privato da qualche parte, sul proprio server o su un servizio for-pay.

Entrambe offrono inoltre il vantaggio di poter clonare facilmente la configurazione su computer che non supportano Dropbox facilmente (ad esempio server remoti). Dropbox per la sincronizzazione con il tuo laptop/desktop/workstation, git sui server, e hai la stessa configurazione ovunque con problemi minimi. E versioning significativo.

Problemi correlati