Как экспортировать проект Overleaf v2 в качестве git-репозитория - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу видеть историю моего документа Overleaf v2 в моем любимом средстве просмотра различий, поэтому я хочу экспортировать его как git-репозиторий.К сожалению, в Overleaf v2 пока нет поддержки git (, по крайней мере, не для широкой публики ).

Как экспортировать историю моего документа в качестве репозитория git?

1 Ответ

0 голосов
/ 18 декабря 2018

Вам понадобится curl, unzip и оболочка bash.

  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 - это инкрементный идентификатор вашей последней ревизии (вероятно, довольно большое целое число, для меня это было 413, и это был проект, над которым я только начал работать).Вы можете отменить загрузку, на самом деле нас это не волнует.

  5. Используя инструменты разработчика, посмотрите файлы cookie, отправленные вашим браузером.Их должно быть пять: _ga, _gid, overleaf_session, SERVERID и sixpack-clientId.

  6. Откройте оболочку и выполните mkdir overleaf-git-export и cd overleaf-git-export

  7. Массовая загрузка всех 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 минут).

  8. Инициализируйте нашу рабочую папку для скрипта, который мы скоро будем использовать: mkdir gitsave, mkdir repo, cd repo, git init, cd ..

  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

Надеюсь, это кому-нибудь поможет, пока не станет доступной поддержка git для Overleaf v2.

Обратите внимание, что отдельные коммиты будут очень маленькими.Если вам нужны более крупные куски изменений, вы можете почистить раздел «История» на веб-сайте Overleaf для получения идентификаторов редакций, которые имеют значение.

...