Time Machine vs controllo del codice sorgente?


18

Alla fine mi sono convinto a iniziare a utilizzare una sorta di controllo di versione per il mio codice invece di comprimere una copia del progetto alla fine di ogni giorno.

Ho scaricato Tortoise SVN e l'ho usato per creare un repository localmente sul mio hdd. Lo sto usando da 2 giorni ma devo dire che usarlo è in realtà più seccante che copiare semplicemente il progetto manualmente in Explorer. Certo, memorizzi solo cambiamenti incrementali ma con i dischi economici di oggi non posso davvero dire che è un argomento quando hai solo piccoli progetti. Non ho davvero trovato un modo rapido per sfogliare le versioni precedenti dei miei file.

Quello che voglio è un annullamento infinito che è completamente trasparente mentre codice, se salvo il file voglio un backup. Non voglio fare il check-out, fare il check-in e nemmeno farmi iniziare a spostare i file. Non ho provato Time Machine per OS X ma sembra che sia esattamente quello che sto cercando.

Esiste un programma simile per Windows? Preferibilmente gratuito e con qualche tipo di sistema di tagging in modo da poter taggare un timestamp quando il progetto sta funzionando ecc.

Forse dovrei aggiungere che lavoro principalmente da solo su un singolo computer.

Aggiornamento: alcuni di voi hanno chiesto perché voglio il backup. Dato che lavoro da solo, mi consento principalmente di consentirmi di trovare rapidamente una soluzione senza preoccuparmi che qualcosa si rovini.


4
La differenza principale tra SCM e Time Machine è che con SCM esegui il commit esplicito e puoi recuperare tutti i tuoi commit mentre con i backup di Time Machine sono automatici (ogni ora) e alcuni si perdono nel tempo: solo un backup alla settimana viene mantenuto per sempre (e non scegli quale).
mouviciel,

2
Penso che un commit automatico su ogni build che si completa senza errori, oltre a un'etichetta ogni volta che il test unitario può essere buono su una filiale locale per molti programmatori
Ian Ringrose,

1
Il problema con qualsiasi controllo di versione è che se sei l'unico sviluppatore di un probject, è molto difficile arrestare i file che non hai aggiunto al sistema di controllo della versione. Avere un server di build separato funziona, ma è molto di più da configurare. Solo il backup di TUTTI i file può essere più sicuro.
Ian Ringrose,

Risposte:


39

Penso che tu stia davvero sottovalutando i vantaggi del controllo del codice sorgente. Come ha sottolineato Dustin, c'è ramificazione, fusione e condivisione. Inoltre, l'utilizzo di un sistema di controllo del codice sorgente può farti capire facilmente quando ogni riga del tuo codice è stata modificata l'ultima volta. SVN può anche tenere traccia della cronologia dei file anche se vengono rinominati o spostati in una directory diversa. L'unione può anche risolvere i problemi anche se sei solo uno sviluppatore, poiché puoi lavorare su desktop, laptop e altri computer senza doversi preoccupare di sovrascrivere le modifiche.


Il bisogno (e il mio) di Jeff non è colmato dal controllo del codice sorgente perché richiede un commit manuale. È utile poter ripercorrere le modifiche minuto per minuto apportate nella copia di lavoro senza impegnarsi ogni minuto. E senza inquinare il repository. Alcuni IDE (come Eclipse) consentono di sfogliare i file del progetto indietro nel tempo. Ma ciò richiede l'utilizzo di un IDE particolare e la creazione di un progetto. Sarebbe bello se ci fosse una funzionalità simile in uno strumento indipendente.
Vimes

@JohnB SVN ha una funzione chiamata "Autoversioning". Ti consente di montare il tuo repository come una cartella WebDAV standard e ogni volta che salvi il file, eseguirà un commit. Se si salva abbastanza spesso, è possibile tornare indietro nel tempo in qualsiasi momento in cui è stato salvato il file. Non è così granulare come qualcosa come VS.Net dove puoi Ctrl + Z per ogni personaggio ma dovresti comunque salvare ogni 10 minuti. Se fossi un singolo sviluppatore a lavorare su un progetto, probabilmente funzionerebbe, anche se non ho molta esperienza con esso. ( svnbook.red-bean.com/en/1.7/svn.webdav.autoversioning.html )
Kibbee,

Grazie Kibbee. Ho visto il post di VonC su questo, di seguito. È una delle poche opzioni che ho visto e l'unica gratuita. Di seguito sono riportati anche alcuni prodotti dedicati che non richiedono la configurazione di un server di controllo del codice sorgente, il che è utile. Ma costano soldi e sembrano avere più campane e fischi di quanti ne abbia bisogno (o, uno di loro ha bisogno di un po 'di lavoro sull'interfaccia utente). La cosa più vicina a ciò che voglio è DropBox, con l'integrazione del menu contestuale di Windows Explorer. Salva 30 giorni di cronologia per impostazione predefinita e, se paghi per la funzione Pack Rat, risparmierà indefinitamente. Ma è un'app cloud.
Vimes,

21

Sarebbe Auto-Versioning (per rimanere con Subversion):

L'autoversioning è una funzione con cui i client WebDAV generici possono scrivere su un server DeltaV (come mod_dav_svn) e il server esegue i commit in silenzio in background. Ciò significa che se si utilizza Apache httpd come server Subversion, la maggior parte dei sistemi operativi moderni può montare il repository come condivisione di rete e gli utenti non tecnici possono ottenere versioni "trasparenti" gratuitamente. (Naturalmente, gli utenti tecnici possono comunque utilizzare i client Subversion per esaminare la cronologia del repository.)


2
Sicuramente una buona risposta e una soluzione simile a quella richiesta dall'OP, backup regolari senza commit espliciti.

12

Non confondere le soluzioni di backup con il controllo della versione. Sono entrambi importanti ma hanno scopi diversi. Quello che dovresti davvero fare è usare il controllo versione (svn, cvs, mercurial, git, qualunque cosa) e avere il backup automatico da qualche altra parte oltre al tuo HDD, preferibilmente fuori sede (host pagato o S3). Oppure vai al 100% in remoto e trova qualcuno per ospitare il tuo repository SVN. Suggerirei Unfuddle . È possibile impostare un repository SVN gratuito lì senza troppi problemi.

Mordere il proiettile e usare SVN. Potrebbe non essere facile come quello a cui sei abituato, ma quando devi fare un rollback molto specifico o confrontare le modifiche tra i file, sarai contento di averlo fatto.



6

Divulgazione completa: lavoro per Altaro Software.

Se vuoi una Time Machine per Windows, vai su 'Oops! Elenco BETA di backup

Siamo una nuova società di software Altaro Software e stiamo sviluppando un prodotto di backup del software / prodotto di controllo della versione chiamato 'Oops! Backup'. Oops! Il backup è un ibrido tra un prodotto di backup tradizionale e un sistema di controllo della versione leggero. Oops! Il backup tiene traccia automaticamente delle modifiche a documenti, foto e altri file e consente di tornare indietro in qualsiasi momento. In una certa misura è l'equivalente di Time Machine per Windows.

Si noti che ho detto controllo di versione leggero - questo non è un prodotto destinato a sostituire un corretto controllo di versione. I nostri sviluppatori usano SVN e Oops! Backup allo stesso tempo. Usano VSN per un corretto controllo della versione con funzionalità di check in / out ma usano anche Oops! Backup per i momenti Oops che a volte ottengono e devono trovare rapidamente una versione precedente del file senza dover eseguire un intero processo di checkout.

Abbiamo investito molto in esperienza utente E piacere per gli occhi - poiché comprendiamo che eyecandy NON implica esperienza utente.

Presto entreremo in BETA e cercheremo tester BETA - chiunque sia disposto a provarlo controlla http://www.altaro.com/download.php . In queste pagine puoi anche vedere schermate dei prodotti.

Le tue opinioni e critiche costruttive sarebbero molto apprezzate (mi piacerebbe sentire le cose cattive ... più che le cose buone)

Come ho detto prima - Oops! Il backup non sostituisce la necessità di un prodotto di controllo della versione corretto, ma lo completa. Può essere usato come un modo per controllare la versione, ma non avrai check-in / out e la ramificazione dovrebbe essere fatta manualmente creando una nuova cartella.

Ci scusiamo per la spina !!

David Vella - david@altaro.com


Penso che l'elenco delle caratteristiche sia un ottimo inizio. Supporta un ripristino completo (come in caso di guasti hardware; un requisito per Time Machine per Windows, se me lo chiedessi)? E, sebbene a pochi possa interessare: può gestire più dischi di backup (ridondanti)? O, in caso contrario, un modo per copiare il backup completo (come Time Capsule, ma che richiede molto tempo)? Per le prossime versioni: consiglierei i plugin per i software più diffusi che richiedono un utilizzo specifico del file system. Come per i programmi di posta elettronica: per trovare e ripristinare i messaggi senza sapere come trovarli nel file system. E: localizzazione?
Arjan,

Ciao Arjan - no, non supporta l'imaging del disco (ala Acronis & Ghost) e, a dire il vero, non sono sicuro che dovremmo procedere in questo modo - vedremo in base al feedback. Esistono già buoni prodotti che puoi utilizzare per il bare metal, quindi non entreremo in quel mercato ora e ci concentreremo sulla creazione di Oops! Esegui il backup della migliore soluzione puntuale sul mercato. Invece, ci stiamo concentrando sulla parte di controllo della versione, sul contenuto effettivo rispetto al bit layer. Ad oggi disponiamo di anteprime "compatibili con l'applicazione" poiché supportiamo l'anteprima di file MS Office, immagini, file basati su testo e altri - continueremo ad aggiungerlo.
David Vella,

Ho detto in una certa misura che è l'equivalente di Time Machine. Da quello che ho sentito, il più vicino ad Apple Time Machine è Rebit: non l'ho mai provato da solo. Solo inglese per ora - ma siamo pronti per iniziare la localizzazione. Se vuoi provarlo in BETA mandami una email :) David Vella da Malta (Europa) david@altaro.com
David Vella,

Dopo aver esaminato alcuni commenti lasciati da "Candice" di Genie aka "Salam": +1 per la tua divulgazione ;-) ( superuser.com/questions/7423/time-machine-for-windows/… / stackoverflow.com/questions/274948 / time-machine-for-windows /… / serverfault.com/questions/1918/… )
Arjan,

4

Una soluzione che assomiglia molto a Time Machine è stata presentata nella rivista tedesca c't qualche tempo fa. Mentre l'articolo stesso è disponibile per 60 centesimi, gli script stessi sono gratuiti: http://www.heise.de/ct/ftp/06/09/126/

Fondamentalmente utilizza rsync per il backup dei dati su un'unità esterna formattata NTFS. Con ogni nuovo backup memorizza solo i nuovi file sul disco di backup, ma crea collegamenti a tutto il resto. In effetti vedrai una struttura di cartelle completa per ogni backup, ma utilizzerai solo lo spazio necessario per il primo backup completo + eventuali modifiche che verranno dopo.

Non è elegante come Time Machine, ma è la stessa tecnologia (Time Machine usa anche rsync, per quanto ne so) sotto le coperte.


2

Time Machine è una soluzione di backup / ripristino piuttosto ordinaria. Utilizza qualsiasi strumento di backup di Windows con backup incrementali giornalieri automatizzati e hai praticamente lo stesso. Tuttavia, anche se è possibile ripristinare gli stati (giornalieri) precedenti, potrebbe non essere la soluzione più veloce.


2

SVN non è molto efficace per gli sviluppatori solisti. Dai un'occhiata a BZR . Uso BZR per tutti i miei progetti personali e la mia directory home, uso SVN solo per il grande progetto di lavoro.


Interessante. Lo usi con qualche server, anche localhost, o funzionerà solo con un filesystem locale?
PhiLho,

1
"SVN non è molto efficace per gli sviluppatori solisti". È un'affermazione piuttosto generosa, non credi?
mwjackson,

1
Jacko, educati alle alternative e saresti d'accordo.
Dustin Getz,

1
phil, c'è sempre una copia locale del repository per rendere tutto veloce ed evitare problemi di permessi, ma opzionalmente spinge / sincronizza qualsiasi cosa remota (condividi, sito web, ftp, probabilmente altro) se / quando devi lavorare con un team. leggi il sito web.
Dustin Getz,

La differenza principale tra BZR e SVN sembra essere che BZR è distribuito. Dato che l'OP funziona principalmente da solo su un singolo computer, non sono convinto che i vantaggi di un controllo di fonte distribuito supererebbero la complessità aggiunta in questo caso.
Redtuna,

2

Genie Timeline 2.0 è uscito dalla scorsa settimana.

Lo so, lo so, "l'ennesimo plug di cronologia!" ... ma non lo è.

La linea temporale 2.0 è stata completamente riscritta e finora il consenso generale sul web è stato molto positivo.

Soprattutto, quasi tutte le funzionalità sono disponibili in una nuova edizione gratuita di Genie Timeline.

Specifiche di Genie Timeline 2.0 gratuito: http://www.genie-soft.com/Free_products/free_timeline.aspx

Scarica: http://download.cnet.com/Genie-Timeline-Free/3000-2242_4-10967059.html?tag=mncol

Le versioni a pagamento del prodotto aggiungono crittografia, compressione ed eliminazione automatica dei backup precedenti.

INFORMATIVA: Ero un capo progetto nella versione 2.0


+1 per la divulgazione. Vedi anche Time Machine per Windows che, a mio avviso, è un posto migliore per continuare questa domanda.
Arjan,

1

Cosa vuoi fare dal controllo del codice sorgente / dai backup multipli?

A mio avviso, ci sono due motivi per il controllo del codice sorgente: la gestione della configurazione e la protezione da problemi / stupidità delle dita degli sviluppatori (molto evidenziati da me). Se quest'ultimo è il problema, allora i suggerimenti di seguito (o FileHamster come raccomandato in un'altra risposta) faranno il lavoro.

Se, come suggerisce Dustin Getz, si tratta di gestione della configurazione, rami, ecc., Allora le raccomandazioni del programma SVN o di altri programmi di controllo del codice sorgente sono migliori dei miei suggerimenti.

Quindi, non l'ho usato e non è gratuito ($ 32), ma è apparso googling

TrackMyFiles - http://www.trackmyfiles.com/en/features/

  • Tiene traccia e memorizza automaticamente le modifiche ai file
  • Consente di visualizzare e ripristinare vecchie versioni dei file
  • Le versioni di file importanti possono essere etichettate in modo esplicito
  • Compatibile con la maggior parte dei tipi di file, come Documenti Microsoft Word® e presentazioni Microsoft Powerpoint®
  • Memorizzazione efficiente delle modifiche tramite l'algoritmo di compressione delta
  • Integrato in Esplora file di Microsoft Windows® per un funzionamento senza interruzioni

Versione di prova di 60 giorni disponibile, secondo quel sito Web

Oppure, se stai utilizzando Vista, è integrata la copia shadow. Vedi http://en.wikipedia.org/wiki/Shadow_Copy


1

@Lukman e Paul, mi piace l'idea di quei sistemi di versioning semplificati per i documenti regolari, ma penso che sia un errore usarli per il codice sorgente - l'impossibilità di ramificare, unire e condividere ti terrà davvero indietro.


1
Dipende. Si adatta a ciò che l'OP ha richiesto. A mio avviso, ci sono due motivi per il controllo del codice sorgente: la gestione della configurazione e la protezione da problemi / stupidità delle dita degli sviluppatori (molto evidenziati da me). Se il primo è il problema, sono d'accordo con te. Se il secondo, tutte queste soluzioni faranno.
L'archetipo Paul,

1

Alcuni pensieri:

Potrebbe piacerti SVK, che sembra collegarsi a SVN. Non l'ho provato da solo, ma sembra interessante.

http://svk.bestpractical.com/view/HomePage

Strumenti come Trac forniscono una discreta navigazione nel repository SVN e potrebbe valere la pena esaminarli.

Se hai difficoltà a capire il gergo giusto da cercare, cerca "istantanee". Potresti anche voler creare una sorta di processo di archiviazione nel tuo sistema di generazione in modo che ogni volta che esegui, ottieni automaticamente un'istantanea (o qualsiasi cosa abbia senso per la tua situazione).


1

Ho cron (cerca su google e scegline uno che ti piace) e poi uno script da riga di comando per eseguire pkzipc sulle mie cartelle souce ogni paio d'ore. una volta ho legato l'inizio di cron alla mia partenza l'ho appena avviato e l'ho dimenticato. mi ha salvato 1 volta quando in una gelata tardiva ho digitato del / f / s * .cs


1

Windows Vista Business, Enterprise e Ultimate hanno questa funzione integrata;)


Come si chiama, cosa fa esattamente, quali sono i compromessi? Stai forse parlando della copia del volume dell'ombra?
Redtuna,

1

Ti consigliamo di verificarlo se sei interessato a Time Machine di Apple e hai un sistema operativo con piattaforma Windows.

http://www.genietimeline.com

La beta verrà rilasciata presto ... Potresti volerti iscrivere ... Non vedo l'ora di mettere le mani su Genie Timeline ...

Apparentemente, le sue funzionalità includono Realtime CDP, infinite versioni dei file, backup automatizzato, integrazione di Windows nel core ... Sto aspettando che questo tipo di software venga rilasciato su Windows da anni ...


Una recensione: pc-tutorials.suite101.com/article.cfm/… Direi che "rileva automaticamente i file utente più comuni" è solo una soluzione alternativa perché esegue il backup solo dei file creati dall'utente . Come ripristinare quindi l'intero sistema? Sembra non esserci integrazione con, ad esempio, il software di posta elettronica. Cosa fare dopo aver eliminato un messaggio? Devo sapere dove e come si trova l'e-mail sul disco rigido? E posso ripristinare un singolo messaggio? Il backup di praticamente tutto e l'integrazione con altri software rendono Time Machine unica nel suo genere. Bummer.
Arjan,

1

Suggerirei di utilizzare un controllo di versione che puoi collegare al tuo IDE. Ciò rende lavorare con esso un gioco da ragazzi. Basta fare clic su aggiorna / commit nell'albero dei sorgenti e il gioco è fatto!


1

mi piace archiviare e lavorare sui miei progetti usando dropbox ( http://www.getdropbox.com/ ). non solo esegue automaticamente il backup del tuo lavoro, ma mantiene anche le revisioni per te.


Se salvi spesso questo sarà un enorme spreco di revisione nel repository DropBox.
Patrick Desjardins,

1

Windows Server 2003 e versioni successive dispongono di una funzionalità " Copia shadow ", simile a Time Machine, ma destinata a un ambiente aziendale in rete. Se lo desideri, potresti essere in grado di configurarlo localmente.

Tuttavia, sarebbe davvero una soluzione inferiore a un buon controllo del codice sorgente. Con il controllo del codice sorgente, puoi visualizzare una cronologia completa e dettagliata di ogni riga di codice nella tua base di codice. È difficile apprezzare quanto sia prezioso fino a quando non lo hai provato.

Copia shadow



0

Se stai letteralmente cercando "Time Machine per Windows": Windows Vista viene fornito con Time Warp (questo è il nome in codice, ho dimenticato come si chiama la funzionalità finita). È praticamente la stessa cosa di Time Machine di OS X, solo con meno clamore.


1
Il suo nome è copia del volume ombra ed è troppo nonna. È possibile selezionare solo il tipo di file di cui si desidera eseguire il backup ("musica", "immagini", ecc.), Non le cartelle da monitorare. Funziona solo una volta al giorno a meno che tu non gli dica di fare un backup in questo momento.

0

Prova Flashbake . Può eseguire il backup ogni n minuti (tramite cron e presumibilmente Windows Scheduler) file che non sono cambiati in m minuti (può essere 0). Avresti bisogno di Python, quindi Cygwin o ActiveState Pyton. Si basa su git e progettato per tipi non tecnici.


0

Potresti usare un VM e scattare istantanee prima di apportare grandi cambiamenti? È abbastanza indolore tornare indietro in questo modo - circa 5 minuti e il gioco è fatto :)


vm per Virtual Machine? ...
Patrick Desjardins,

0

SlickEdit ha una bella funzionalità simile a quella che stai descrivendo. Ogni volta che salvi il file su cui stai lavorando, crea un backup locale (diffuso). A tuo piacimento, puoi quindi guardare indietro nella cronologia dei file locali. Puoi usarlo per integrare il tuo repository SVN, con cui SlickEdit può anche integrarsi.


0

puoi provare Genie Timeline, è come la macchina del tempo di Windows per Windows e puoi tornare alla versione che ti serve usando un dispositivo di scorrimento temporale per visualizzare ogni versione http://www.genietimeline.com


Abbastanza spine per Genie già.
Arjan,



0

Mercurial è perfetto per questo lavoro.

Ogni volta che vuoi fare un'istantanea del tuo codice, questo è tutto ciò che fai nella riga di comando: hg commit e il gioco è fatto!

Se vuoi cercare diverse versioni del tuo file, è facile con TortoiseHG usando il suo menu di scelta rapida grafico facendo clic con il tasto destro sul file in questione.

Inoltre, è più bello di SVN perché non sporca tutte le tue sottocartelle con directory nascoste .svn.


E se non volessi passare il tempo a impegnarmi, a tirare ... ma solo a qualcosa di automatico che tiene traccia di ogni cambiamento, come fa Google Docs ma locale. Che cosa suggeriresti?
skan
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.