17

Tôi có bảng tính trong tài liệu google mà tôi muốn tích hợp trong luồng công việc git (và đẩy vào github). Có bất kỳ công cụ (hoặc thậm chí là thư viện được phiên bản gdoc nhận thức) mà làm, hoặc giúp tôi làm điều đó?Làm cách nào để xuất lịch sử sửa đổi của gdoc thành git?

Tôi có một số hack cũ ruby ​​nằm xung quanh dựa trên google_spreadsheet gem đọc và viết các phiên bản hiện tại của csv gdoc, nhưng không có gì trích xuất lịch sử sửa đổi.

Trả lời

6

gdoc không được thiết lập để xuất lịch sử sửa đổi source.

Ổ đĩa Google không có API để truy cập tất cả các bản sửa đổi here. Điều đó cung cấp một cách dễ dàng để tải xuống tất cả các bản sửa đổi. Sau đó, bạn có thể tạo một kịch bản để thêm chúng từng cái một vào git. Có một số vấn đề với lịch sử sửa đổi, xem here.

+0

Đây là nghiên cứu rất hữu ích; cảm ơn bạn! Từ có thẩm quyền về nó không được thiết kế để quay trở lại trạng thái trước đó cho thấy tôi có thể suy nghĩ lại tốt hơn dự án, mặc dù nó có thể thú vị khi thử nghiệm với API ổ đĩa, nếu nó cũng áp dụng cho tất cả GDocs. – ecmanaut

25

Tôi bị hấp dẫn bởi câu hỏi của bạn, vì vậy tôi bị tấn cùng một dự án nhỏ ngày hôm nay:

Cho một id tài liệu, nó sẽ tạo ra một kho git sử dụng một trong hai văn bản đơn giản hoặc Nội dung HTML của tài liệu Google Documents. Điều này có thể dễ dàng được mở rộng để làm việc với các loại tệp khác. Nó trông giống như thế này khi nó hoạt động:

$ 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 

Điều này đòi hỏi bạn phải thiết lập thông tin ứng dụng cần thiết với Google. Và nó không làm bất kỳ kiểm tra lỗi nào. Và có thể ăn cá vàng của bạn. Điều này có nghĩa là một minh chứng về API và cách bạn có thể làm điều gì đó như thế này; đó là không phải được dự định là một sản phẩm chức năng.

+0

Điều này có vẻ là một khởi đầu thú vị - phiên bản python và các phụ thuộc nào tôi cần cài đặt để chạy nó? Tôi đã thử chạy nó với python 2,7 sau khi chạy pip cài đặt 'google-api-python-client', 'pyyaml' và' requests' nhưng vẫn có một số backtrace: https://gist.github.com/4514298 – ecmanaut

+1

Có một cái gì đó rất kỳ quặc về sự truy nguyên đó; nó báo cáo rằng module 'os' của bạn không có hàm' urandom'. Bạn đã cài đặt Python 2.7 như thế nào? Đối với hồ sơ, điều này hoạt động tốt theo cả OS X và Linux (w/Python 2.7 và yêu cầu 1.1.0). – larsks

+1

Đây là larsks tuyệt vời, cảm ơn cho viết nó lên và đăng nó. Tôi đã có một số rắc rối với danh sách sửa đổi cắt ngắn và như vậy mà dường như được cố định bởi [ngã ba mã của bạn] (https://github.com/deltaidea/gitdrive). Điều đó có được công việc làm cho tôi nhưng bạn có thể xem xét việc tham gia lực lượng. – Caleb

Các vấn đề liên quan