Importer l'historique des révisions de documents Google Docs dans un référentiel Git?

16

Je souhaite afficher l'historique des révisions d'un document Google Docs à l'aide d'outils plus flexibles comme Git, et éventuellement migrer du contenu de Google Docs vers un projet Git.

Google Docs dispose d'une API avec accès à l'historique des révisions. Cela devrait donc être possible pour tous les formats d'exportation pris en charge. Je note, cependant, qu'il y a eu des problèmes d'API avec l'historique des révisions qui signifient que la liste des contributeurs à chaque révision peut ne pas être complète, bien qu'ils envisagent de corriger cela:

Parfois, il y a plus d'un éditeur (pour une révision particulière). Pourtant, l'API me donne toujours un éditeur par révision.

Existe-t-il un code ou des conseils pour ce faire? L'exportation vers un système de contrôle de version différent comme bzr, Mercurial, SVN ou CVS serait également intéressante.

Ceci est lié à la question de contrôle de version de Stack Overflow avec Google Docs Best Practices? , qui a été fermé comme hors sujet.

nealmcb
la source

Réponses:

10

Lars Kellog-Stedman a créé une excellente petite application python appelée gitdriver que j'ai trouvée sur cette réponse sur StackOverflow . Il fait ce que vous cherchez. Il s'authentifie auprès de Google avec OAuth et extrait toutes les révisions d'un document, en les validant dans un référentiel git.

Avec cela, vous pouvez récupérer une copie versionnée de votre Google Doc, puis l'utiliser avec les outils git traditionnels.

gene_wood
la source
5

Le Revisionator est un autre système de documents en ligne (comme google docs) mais avec un contrôle de révision intégré. Il ressemble à des outils plus flexibles comme git en ce sens qu'il prend en charge la différenciation, la ramification et la fusion à 3 voies (mais avec une interface graphique Web).

À mon humble avis, l'historique de révision de Google docs ne serait de toute façon pas adapté à l'importation dans un projet git. Le problème est qu'il n'y a aucune notion de copie de travail. Lorsque des personnes apportent des modifications, elles sont immédiatement reflétées dans le document et ajoutées à l'historique des révisions. La visualisation de l'histoire s'avère être un gâchis impie.

Le réviseur (comme bzr, mercurial, git, etc.) a une notion de copie de travail. Par conséquent, vous pouvez travailler sur une modification jusqu'à ce qu'elle soit prête à être publiée. Une fois publié, il apparaît comme une révision dans l'historique des révisions (beaucoup plus lisible).

jpalmucci
la source
Je conviens que c'est un défi de faire face à un grand nombre de révisions comme ça, mais il semblerait au moins possible de les regrouper en lots quand il y a une pause dans l'édition ou un changement de qui apporte des modifications.
nealmcb
Peut-être, mais pas si différentes personnes modifient le document en même temps. Et même si vous les regroupez en fonction du temps, rien ne garantit que les regroupements représentent une seule modification logique du document. IE, je travaille sur une révision, détachez-vous. Revenez plus tard et corrigez-le. Les gens voient 2 groupes de changements dans l'historique des révisions (et le document cassé entre les deux).
jpalmucci