Я работаю над «облачным» исследовательским проектом на основе S3 в безопасном хранилище. Я хотел бы использовать libgit2 для управления версиями в своих локальных клиентах и считаю, что создание нового транспорта может быть лучшим решением. Это позволит сохранить полностью совместимую резервную локальную историю git (по сравнению с новыми бэкэндами odb или refdb).
Глядя на API, кажется, что функции загрузки и загрузки пакетных файлов будут иметь решающее значение. Чтобы поиграться с проблемой, я бы очень хотел написать S3-транспорт (бэкенд). Хотя я не верю, что это когда-либо может быть свободным от гонок (из-за возможной согласованности S3), но это должно показать большинство возможных проблем.
В настоящее время я не уверен, как создавать файлы пакетов из удаленного хранилища. С помощью git_packbuilder_insert я мог бы добавить все необходимые OID, но откуда берутся фактические данные? Это получено из репозитория (на который ссылаются при использовании packbuilder_new)? Если это так, я должен написать новый транспорт, а также соответствующий тип репозитория для этого транспорта?
Другой вопрос заключается в том, должен ли я документировать свои выводы (я надеюсь получить финансирование, чтобы потратить несколько дней или недель на реализацию этого), или это слишком редкий вариант использования, чтобы его стоило документировать?