3

我想在我最喜欢的差异查看器中查看我的 Overleaf v2 文档的历史记录,所以我想将它导出为 git 存储库。不幸的是,Overleaf v2 还没有 git 支持(至少不支持普通大众)。

如何将文档的历史记录导出为 git 存储库?

4

1 回答 1

4

您将需要curl,unzip和一个 bash shell。

  1. 在浏览器中登录 Overleaf 并打开您的文档:https ://de.overleaf.com/project/YOUR-PROJECT-ID

  2. 单击右上角的“历史记录”,然后选择最近的更改。

  3. 打开浏览器的开发工具(在 Firefox中为Ctrl+ Shift+ ,在 Chrome 中)KF12

  4. 单击“下载此版本的项目”链接。您的浏览器打开https://de.overleaf.com/project/YOUR-PROJECT-ID/version/MAX/zip,其中 MAX 是您最近修订的增量 ID(可能是一个相当大的整数,对我来说是 413 ,那是我刚开始做的一个项目)。您可以取消下载,我们实际上并不关心它。

  5. 使用开发工具,查看您的浏览器发送的 cookie。应该有五个:_ga_gidoverleaf_sessionSERVERIDsixpack-clientId

  6. 打开一个 shell 并mkdir overleaf-git-export执行cd overleaf-git-export

  7. 使用 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 分钟)。

  8. 为我们将很快使用的脚本初始化我们的工作文件夹:mkdir gitsave, mkdir repo, cd repo, git init,cd ..

  9. 然后使用此脚本(请注意,您必须调整 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,但应该同样适用于其他浏览器。

  • 打开背页项目,和之前一样获取下载地址
  • 打开一个新的 Firefox 标签页
  • 打开开发者工具
  • 打开Network选项卡
  • 转到下载网址
  • 注意选项卡中的新条目Network。它应该是GET一个zip
  • 右键单击该条目并复制 -> 复制为 cURL。

剪贴板应包含类似

curl 'https://www.overleaf.com/project/[...]]/version/1234/zip' -H 'Cookie: overleaf_session2=s%3A[...]; GCLB=[...]'

与许多其他-H论点。只需要 cookie 对应的 header 部分,其余的可以去掉。

于 2018-12-18T10:34:36.913 回答