Вам понадобится curl
, unzip
и оболочка bash.
Войдите в систему на Overleaf в своем браузере и откройте документ: https://de.overleaf.com/project/YOUR-PROJECT-ID
Нажмите «История» в верхнем правом углу и выберите самое последнее изменение.
Откройте инструменты разработчика вашего браузера ( Ctrl + Shift + K в Firefox, F12 в Chrome)
Нажмите на ссылку «Скачать проект в этой версии».Откроется ваш браузер https://de.overleaf.com/project/YOUR-PROJECT-ID/version/MAX/zip,, где MAX - это инкрементный идентификатор вашей последней ревизии (вероятно, довольно большое целое число, для меня это было 413, и это был проект, над которым я только начал работать).Вы можете отменить загрузку, на самом деле нас это не волнует.
Используя инструменты разработчика, посмотрите файлы cookie, отправленные вашим браузером.Их должно быть пять: _ga
, _gid
, overleaf_session
, SERVERID
и sixpack-clientId
.
Откройте оболочку и выполните mkdir overleaf-git-export
и cd overleaf-git-export
Массовая загрузка всех ZIP-снимков вашего проекта с помощью CURL.Вы должны установить cookie, которые вы только что просмотрели в браузере (очевидно, я сократил свои для этого примера) и установить переменную MAX, которую вы нашли в URL: 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
).Он постепенно заменяет содержимое репо содержимым ревизии и фиксирует его, полностью стирая промежуточный репо, но, конечно же, сохраняя папку .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
Надеюсь, это кому-нибудь поможет, пока не станет доступной поддержка git для Overleaf v2.
Обратите внимание, что отдельные коммиты будут очень маленькими.Если вам нужны более крупные куски изменений, вы можете почистить раздел «История» на веб-сайте Overleaf для получения идентификаторов редакций, которые имеют значение.