17

Mam arkusz kalkulacyjny w dokumentach google, który chciałbym zintegrować z przepływem pracy git (i push to github). Czy istnieją jakieś narzędzia (lub nawet biblioteki, które są świadome wersji gdoc), które pomagają mi to zrobić?Jak wyeksportować historię wersji gdoc do git?

Mam kilka starych rubinowych hacków opartych na google_spreadsheet gem, które czyta i pisze aktualne wersje csv gdoc, ale nic, co wyodrębnia historię wersji.

Odpowiedz

6

gdoc nie jest skonfigurowany do eksportowania historii wersji source.

Dysk Google ma interfejs API umożliwiający dostęp do wszystkich wersji here. To zapewnia łatwy sposób na pobranie wszystkich wersji. Następnie możesz utworzyć skrypt, aby dodać je jeden po drugim do git. Wystąpiły pewne problemy z historią wersji, patrz here.

+0

To bardzo przydatne badanie; Dziękuję Ci! Autorytatywne słowo na ten temat nie jest przeznaczone tylko do tego, aby powrócić do wcześniejszych stanów sugeruje, że lepiej będzie przemyśleć projekt, chociaż może być ciekawie eksperymentować z interfejsem API dysku, jeśli dotyczy to również wszystkich GDocs. – ecmanaut

25

byłem zaintrygowany przez swoje pytanie, więc włamał się razem trochę projekt dzisiaj:

Biorąc pod uwagę id dokument, będzie stworzenie repozytorium git przy użyciu zwykłego tekstu lub Treść HTML dokumentu Dokumentów Google. Można to łatwo rozszerzyć na inne typy plików. Wygląda mniej więcej tak, jak to działa:

$ 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 

Wymaga to skonfigurowania niezbędnych danych logowania do aplikacji w Google. I nie sprawdza żadnych błędów. I może zjeść twoją złotą rybkę. Ma to na celu demonstrację API i tego, jak możesz zrobić coś takiego; jest to , a nie przeznaczony jako produkt funkcjonalny.

+0

To wydaje się fajny początek - jaka wersja i zależności Pythona muszę zainstalować, aby go uruchomić? Próbowałem uruchomić go z python 2.7 po uruchomieniu instalacji pip 'google-api-python-client',' pyyaml' i 'requests', ale nadal otrzymałem ślad: https://gist.github.com/4514298 – ecmanaut

+1

Jest coś bardzo dziwne w tym śledzeniu; zgłasza, że ​​twój moduł 'os' nie ma funkcji' urandom'. Jak zainstalowałeś Python 2.7? Dla porównania działa to dobrze zarówno w systemie OS X, jak i Linux (w/Python 2.7 i żądania 1.1.0). – larsks

+1

To jest fantastyczne larsks, dzięki za napisanie tego i wysłanie go. Miałem problem z obciętymi listami wersji i takie, które wydają się być naprawione przez [ten rozwidlenie twojego kodu] (https://github.com/deltaidea/gitdrive). To zrobiło dla mnie zadanie, ale możesz przyjrzeć się połączonym siłom. – Caleb