【问题标题】:How do I export the revision history of a gdoc to git?如何将 gdoc 的修订历史导出到 git?
【发布时间】:2012-12-22 17:24:27
【问题描述】:

我在 google 文档中有一个电子表格,我想将它集成到 git 工作流程中(并推送到 github)。是否有任何工具(甚至是支持 gdoc 版本的库)可以做到或帮助我做到这一点?

我有一些基于 google_spreadsheet gem 的旧 ruby​​ hack,它们读取和写入当前版本的 csv gdoc,但没有提取修订历史记录。

【问题讨论】:

标签: git google-docs google-sheets google-docs-api google-spreadsheet-api


【解决方案1】:

我对你的问题很感兴趣,所以今天我一起做了一个小项目:

给定一个文档 ID,它将使用 Google Docs 文档的纯文本或 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

这需要您通过 Google 设置必要的应用程序凭据。而且它不做任何错误检查。并且可能会吃掉你的金鱼。这意味着作为 API 的演示以及您可以如何做这样的事情;它并非旨在成为功能性产品。

【讨论】:

  • 这似乎是一个很酷的开始——我需要安装什么 python 版本和依赖项才能运行它?在运行 pip install google-api-python-clientpyyamlrequests 后,我尝试使用 python 2.7 运行它,但仍然有一些回溯:gist.github.com/4514298
  • 这个回溯有些奇怪;它报告您的os 模块没有urandom 功能。你是如何安装 Python 2.7 的?作为记录,这在 OS X 和 Linux 下都可以正常工作(w/ Python 2.7 和 requests 1.1.0)。
  • 这真是太棒了 larsks,感谢您撰写并发布它。我确实在截断修订列表方面遇到了一些问题,这些问题似乎由this fork of your code 修复。这为我完成了工作,但你可能会考虑联合起来。
【解决方案2】:

gdoc 没有设置导出修订历史source

Google 云端硬盘确实有一个 API 可以访问所有修订版 here。这提供了一种下载所有修订版的简便方法。然后你可以创建一个脚本将它们一一添加到git中。修订历史记录存在一些问题,请参阅here

【讨论】:

  • 这是非常有用的研究;谢谢!权威的说法是,它的设计目的不仅仅是恢复到先前的状态,这表明我最好重新考虑这个项目,尽管如果它也适用于所有 GDocs 的话,尝试使用驱动 API 可能会很有趣。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-06
  • 2012-11-29
相关资源
最近更新 更多