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

时间:2018-12-18 10:34:37

标签: git sharelatex

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

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

1 个答案:

答案 0 :(得分:0)

您将需要curlunzip和一个bash shell。

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

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

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

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

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

  6. 打开一个外壳并执行mkdir overleaf-git-exportcd overleaf-git-export

  7. 使用CURL批量下载项目的所有ZIP快照。您必须设置您刚刚在浏览器中检查过的cookie(显然,本例中我简化了我的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 initcd .. < / p>

  9. 然后使用此脚本(请注意,您必须调整MAX变量和overleaf-git-export文件夹的路径)。它用修订版的内容增量替换存储库的内容并提交,完全清除存储库之间的存储库,但当然保留.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。