17

我有一个电子表格在谷歌文档,我想要在git工作流程中集成(并推送到github)。是否有任何工具(或者甚至可以识别gdoc版本的库)能够或帮助我这么做?如何将gdoc的修订历史记录导出到git?

我有一些老红宝石黑客躺在基于google_spreadsheet gem读取和写入当前版本的csv gdoc,但没有提取修订历史记录。

回答

6

gdoc未设置为导出修订历史记录source

谷歌驱动器确实有一个API来访问所有修订here。这提供了一个简单的方法来下载所有修订。然后你可以创建一个脚本将它们逐个添加到git中。修订历史记录存在一些问题,请参阅here

+0

这是非常有用的研究;谢谢!其权威性的话不是为了回复到之前的状态而设计的,这表明我可能会更好地重新思考该项目,不过如果它适用于所有的GDoc,尝试使用驱动器API可能会很有趣。 – ecmanaut

25

我被你的问题很感兴趣,所以我今天砍死在一起的小项目:

给定一个文档ID,它会使用或者纯文本创建一个Git仓库或Google文档的HTML内容。这可以很容易地扩展到与其他文件类型一起工作。它看起来像这样:

$ 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 

这需要您为Google设置必要的应用程序凭据。它并没有做任何错误检查。并可能吃你的金鱼。这是为了演示API以及你如何做这样的事情;它的而不是旨在成为功能性产品。

+0

这似乎是一个很酷的开始 - 我需要安装哪些python版本和依赖项才能运行它?我试着运行pip install'google-api-python-client','pyyaml'和'requests'后运行python 2.7,但仍然有一些回溯:https://gist.github.com/4514298 – ecmanaut

+1

有关这个追溯的奇怪;它报告你的'os'模块没有'urandom'功能。你是如何安装Python 2.7的?为了记录,这在OS X和Linux(w/Python 2.7和请求1.1.0)下工作正常。 – larsks

+1

这是非常棒的书包,感谢您撰写并发布它。我确实遇到了一些截断修订列表的问题,并且这些似乎是由[代码的这个分支](https://github.com/deltaidea/gitdrive)修复的。这为我完成了这项工作,但你可能会考虑加入力量。 – Caleb