如何将gdoc的修订历史记录导出到git?

24

我在Google文档中有一个电子表格,想将其整合到Git工作流程中(并推送到GitHub)。是否有任何工具(或甚至是针对gdoc版本敏感的库)可以完成这项工作或帮助我完成这项工作?

我有一些旧的Ruby hack,基于google_spreadsheet gem读写当前版本的csv gdoc,但没有提取修订历史记录的内容。


请在以下网址查看2018-19年关于R的工作进展:https://github.com/tidyverse/googledrive/issues/219 - nealmcb
2个回答

34
我对你的问题很感兴趣,所以今天我做了一个小项目: 给定一个文档id,它将使用Google文档的纯文本或HTML内容创建git存储库。这可以很容易地扩展到其他文件类型。 当它工作时,它看起来像这样:
$ 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

这要求您与谷歌一起设置必要的应用程序凭据。 它不执行任何错误检查。 还可能会吃掉你的金鱼。这只是对API的演示以及您可能如何做到这一点的方式; 它旨在成为一个功能性产品。


这似乎是一个不错的开始 - 我需要安装哪个Python版本和依赖项才能运行它?我尝试使用Python 2.7运行它,之前已经运行了pip install google-api-python-clientpyyamlrequests,但仍然得到一些回溯信息:https://gist.github.com/4514298 - ecmanaut
1
那个回溯信息非常奇怪,它报告说你的 os 模块没有 urandom 函数。你是如何安装 Python 2.7 的?值得一提的是,在 OS X 和 Linux 下(使用 Python 2.7 和 requests 1.1.0),这个程序都可以正常运行。 - larsks
1
这太棒了,larsks,感谢你的写作和发布。我在截断的修订列表等方面遇到了一些问题,似乎通过 这个代码分支 得到了解决。它为我完成了工作,但你可能要考虑加入我们的力量。 - Caleb

10

gdoc没有设置导出修订历史的功能 来源.

Google Drive有API可以访问所有修订版本 这里。 这提供了一种下载所有修订版本的简单方法。 然后,您可以创建一个脚本将它们逐个添加到git中。修订历史存在一些问题,请参见此处


这是非常有用的研究,谢谢!权威人士对其不适用于超过还原先前状态的设计的说法表明,我最好重新考虑该项目,尽管如果它也适用于所有GDocs,使用驱动器API进行实验可能会很有趣。 - ecmanaut

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接