我想在我最喜欢的差异查看器中查看Overleaf v2文档的历史记录,因此我想将其导出为git存储库。不幸的是,Overleaf v2还没有git支持(at least not for the general public)。
如何将文档的历史记录导出为git存储库?
答案 0 :(得分:0)
您将需要curl
,unzip
和一个bash shell。
在浏览器中登录到Overleaf并打开您的文档:https://de.overleaf.com/project/YOUR-PROJECT-ID
单击右上角的“历史记录”,然后选择最近的更改。
在浏览器中打开浏览器的开发工具( Ctrl + Shift + K , F12 在Chrome中)
单击“下载此版本的项目”链接。您的浏览器打开https://de.overleaf.com/project/YOUR-PROJECT-ID/version/MAX/zip,其中MAX是您最新修订版的增量ID(可能是一个很大的整数,对我来说是413,这是我刚开始从事的项目)。您可以取消下载,我们实际上并不在乎。
使用开发工具,查看浏览器发送的cookie。其中应该有五个:_ga
,_gid
,overleaf_session
,SERVERID
和sixpack-clientId
。
打开一个外壳并执行mkdir overleaf-git-export
和cd overleaf-git-export
使用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分钟)。
为即将使用的脚本初始化工作文件夹:mkdir gitsave
,mkdir repo
,cd repo
,git init
,cd ..
< / p>
然后使用此脚本(请注意,您必须调整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。