17

Ho un foglio di lavoro in google docs che vorrei integrare in un flusso di lavoro git (e spingere su github). Ci sono strumenti (o anche librerie che sono a conoscenza della versione di gdoc) che fanno o aiutano a farlo?Come esportare la cronologia delle revisioni di un gdoc in git?

Ho alcuni vecchi hack in ruby ​​basati sul google_spreadsheet gem che legge e scrive le versioni correnti di un csv gdoc, ma nulla che estrae la cronologia delle revisioni.

risposta

6

gdoc non è impostato per l'esportazione della cronologia di revisione source.

Google Drive ha un'API per accedere a tutte le revisioni here. Questo fornisce un modo semplice per scaricare tutte le revisioni. Quindi puoi creare uno script per aggiungerli uno per uno a git. Ci sono alcuni problemi con la cronologia delle revisioni vedere here.

+0

Questa è una ricerca molto utile; grazie! La parola autorevole su di essa non viene progettata per qualcosa di più che tornare agli stati precedenti, ma potrebbe essere meglio ripensare al progetto, anche se potrebbe essere interessante sperimentare con l'API del convertitore, se si applica anche a tutti i GDoc. – ecmanaut

25

sono stato incuriosito dalla tua domanda, così ho messo insieme un piccolo progetto oggi:

Dato un documento di identità, si creerà un repository git utilizzando il testo normale o Contenuto HTML di un documento di Google Documenti. Questo potrebbe essere facilmente esteso per funzionare con altri tipi di file. Sembra qualcosa di simile quando funziona:

$ python gitdriver.py -T 1j6Ygv0ow5A8_ywTMwJbuKVrxrSsSH2wJs3a8Q66mvt4 
Create repository "Untitled" 
Initialized empty Git repository in /home/lars/projects/gitdriver/Untitled/.git/ 
[master (root-commit) 24d35e7] revision from 2013-01-08T21:57:38.837Z 
1 file changed, 1 insertion(+) 
create mode 100644 content 
[master fd243ee] revision from 2013-01-08T21:57:45.800Z 
1 file changed, 1 insertion(+), 1 deletion(-) 
rewrite content (95%) 
[master 5ad1a26] revision from 2013-01-09T01:47:29.593Z 
1 file changed, 1 insertion(+), 1 deletion(-) 
rewrite content (92%) 
$ cd Untitled 
$ git log --oneline 
5ad1a26 revision from 2013-01-09T01:47:29.593Z 
fd243ee revision from 2013-01-08T21:57:45.800Z 
24d35e7 revision from 2013-01-08T21:57:38.837Z 

Ciò richiede di impostare le credenziali dell'applicazione necessari con Google. E non fa alcun controllo degli errori. E puoi mangiare il tuo pesce rosso. Questo è inteso come una dimostrazione dell'API e come potresti fare qualcosa del genere; è non destinato a essere un prodotto funzionale.

+0

Questo sembra un buon inizio - quale versione e dipendenze di Python devo installare per eseguirla? Ho provato a eseguirlo con python 2.7 dopo aver eseguito pip installare 'google-api-python-client',' pyyaml' e 'requests', ma ho ancora qualche backtrace: https://gist.github.com/4514298 – ecmanaut

+1

C'è qualcosa di molto strano su quel traceback; sta segnalando che il tuo modulo 'os' non ha la funzione' urandom'. Come hai installato Python 2.7? Per la cronaca, funziona bene sia con OS X che Linux (con Python 2.7 e richieste 1.1.0). – larsks

+1

Questo è un fantastico larsk, grazie per averlo scritto e pubblicato. Ho avuto qualche problema con gli elenchi di revisioni troncati e tali che sembrano essere risolti dal [questo fork del tuo codice] (https://github.com/deltaidea/gitdrive). Questo ha fatto il lavoro per me, ma potresti cercare di unire le forze. – Caleb

Problemi correlati