gpt4 book ai didi

git - 如何将 Overleaf v2 项目导出为 git 存储库

转载 作者:行者123 更新时间:2023-12-04 13:20:15 29 4
gpt4 key购买 nike

我想在我最喜欢的差异查看器中查看我的 Overleaf v2 文档的历史记录,所以我想将它导出为 git 存储库。不幸的是,Overleaf v2 还没有 git 支持(at least not for the general public)。

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

最佳答案

您需要curlunzip和一个 bash shell。

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

  2. 点击右上角的“历史记录”并选择最近的更改。

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

  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-exportcd 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 gitsavemkdir repocd repogit 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 支持之前这对某人有帮助。

请注意,单个提交将非常小。如果您想要更大的更改 block ,您可以在 Overleaf 网站上抓取“历史记录”部分以获取重要的修订 ID。

[编辑 2021]

cookie 不同。还有另一种创建正确的 curl 调用的策略。这些步骤适用于 Firefox,但应该同样适用于其他浏览器。

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

剪贴板应该包含类似的东西

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

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

关于git - 如何将 Overleaf v2 项目导出为 git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53831123/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com