我想在我最喜欢的差异查看器中查看我的 Overleaf v2 文档的历史记录,所以我想将它导出为 git 存储库。不幸的是,Overleaf v2 还没有 git 支持(至少不支持普通大众)。
如何将文档的历史记录导出为 git 存储库?
我想在我最喜欢的差异查看器中查看我的 Overleaf v2 文档的历史记录,所以我想将它导出为 git 存储库。不幸的是,Overleaf v2 还没有 git 支持(至少不支持普通大众)。
如何将文档的历史记录导出为 git 存储库?
您将需要curl
,unzip
和一个 bash shell。
在浏览器中登录 Overleaf 并打开您的文档:https ://de.overleaf.com/project/YOUR-PROJECT-ID
单击右上角的“历史记录”,然后选择最近的更改。
打开浏览器的开发工具(在 Firefox中为Ctrl+ Shift+ ,在 Chrome 中)KF12
单击“下载此版本的项目”链接。您的浏览器打开https://de.overleaf.com/project/YOUR-PROJECT-ID/version/MAX/zip,其中 MAX 是您最近修订的增量 ID(可能是一个相当大的整数,对我来说是 413 ,那是我刚开始做的一个项目)。您可以取消下载,我们实际上并不关心它。
使用开发工具,查看您的浏览器发送的 cookie。应该有五个:_ga
、_gid
、overleaf_session
、SERVERID
和sixpack-clientId
。
打开一个 shell 并mkdir overleaf-git-export
执行cd overleaf-git-export
使用 CURL 批量下载项目的所有 ZIP 快照。您必须设置刚刚在浏览器中检查的 cookie(显然我在此示例中缩短了我的)并设置您在 URL 中找到的 MAX 变量:curl --cookie "_ga=GA1...;_gid=GA1...;overleaf_session=meRG...;SERVERID=sl-l...;sixpack-clientId=5c17..." https://de.overleaf.com/project/YOUR-PROJECT-ID/version/[1-MAX]/zip -o zip#1.zip
这可能需要一段时间(我的 413 次修订需要 20 分钟)。
为我们将很快使用的脚本初始化我们的工作文件夹:mkdir gitsave
, mkdir repo
, cd repo
, git init
,cd ..
然后使用此脚本(请注意,您必须调整 MAX 变量和overleaf-git-export
文件夹的路径)。它用修订的内容增量替换 repo 的内容并提交它,完全擦除中间的 repo,但当然保留.git
包含我们想要的 git 历史记录的文件夹。这对我来说非常快(所有 413 只需要几分钟)。
#!/bin/bash
for i in `seq 1 MAX`;
do
cd ~/Desktop/overleaf-git-export
rm -r -f gitsave
cp -r repo/.git gitsave
rm -r -f repo
unzip zip$i.zip -d zip$i
cp -r zip$i repo
cp -r gitsave repo/.git
cd ~/Desktop/overleaf-git-export/repo
git add *
git commit -m "v$i"
cd ~/Desktop/overleaf-git-export
done
希望这对某人有所帮助,直到 Overleaf v2 提供适当的 git 支持。
请注意,单个提交将非常小。如果您想要更大的更改块,您可以在 Overleaf 网站上的“历史记录”部分获取重要的修订 ID。
[编辑 2021]
饼干是不同的。还有另一种创建正确curl
调用的策略。步骤适用于 Firefox,但应该同样适用于其他浏览器。
Network
选项卡Network
。它应该是GET
一个zip
。剪贴板应包含类似
curl 'https://www.overleaf.com/project/[...]]/version/1234/zip' -H 'Cookie: overleaf_session2=s%3A[...]; GCLB=[...]'
与许多其他-H
论点。只需要 cookie 对应的 header 部分,其余的可以去掉。