Какой код является общим для оригинального Git и libgit2?

Какой код и сколько кода делает исходная кодовая база Git и libgit2 имеют что-то общее (от ничего до всех функций Git, кроме точек входа клиента командной строки)?

В первую очередь меня интересует, насколько "стабильна" libgit2 и как легко и быстро исправления ошибок и/или улучшения, полученные в результате будущих разработок в исходной кодовой базе Git, могут быть приняты либгит2.


person mstrap    schedule 17.06.2013    source источник


Ответы (2)


Я считаю, что в настоящее время у них нет общего кода. Вас может заинтересовать эта ветка в основном списке Git¹ относительно предполагаемой «повторной реализации» Git поверх libgit2 с участием главного сопровождающего Git (Junio ​​C Hamano).

В целом, вы можете найти эти результаты поиска² интересными для изучения.


¹ Исходная ссылка указывала на GMANE архив, но, к сожалению, не работает.

² Ссылка на результаты поиска была этой.

person kostix    schedule 17.06.2013
comment
Это правда, что основной git не использует libgit2, однако в libgit2 есть основной код git; ряд авторов разрешили перелицензировать свой код (из git) в соответствии с лицензией libgit2 (GPLv2 с исключением ссылок). - person Edward Thomson; 17.06.2013
comment
@EdwardThomson как очень грубая оценка: вы бы сказали, что libgit2 основан на основном коде git или что он более или менее переписан с нуля? - person mstrap; 18.06.2013
comment
Это переписать. Я не запускал метрику подобия, чтобы получить реальные данные, но я бы сказал, что менее 10% кода libgit2 перенесено или скопировано непосредственно из git. - person Ben Straub; 18.06.2013
comment
@mstrap, хотя сам Git (в настоящее время) не использует libgit2, в ряде других проектов он используется: Github для Windows использует его (и, предположительно, Github для Mac также делает это), libgit2sharp считается стандартным способом использования Git из C# и т. д. Так что, хотя это и не благословенный способ доступа к репозиториям Git, он кажется довольно популярным и имеет все хорошие шансы набрать необходимый импульс IMO. - person kostix; 18.06.2013
comment
@BenStraub Я думаю, это ответ, который я ищу. - person mstrap; 18.06.2013
comment
@kostix Спасибо за ваше мнение по этому поводу. Я знаю об этих проектах, но тот факт, что они используют libgit2, все равно не дает мне достаточно уверенности, чтобы строить поверх libgit2. Я согласен, что libgit2, скорее всего, будет набирать обороты и, вероятно, через год этот вопрос может устаревать. - person mstrap; 18.06.2013
comment
Как можно быть уверенным, что если они, например, загрузят Git для Windows и будут использовать его интерфейс командной строки (CLI) для изменения репозитория Git (скажем, создания веток, выполнения некоторых слияний и т. д.), то инструменты на основе libgit2 (такие как как Visual Studio 2015) будут на 100% совместимы с внесенными изменениями? Я спрашиваю, потому что Visual Studio теперь якобы использует libgit2 за кулисами. Но вы также можете запустить Git для Windows и запустить его из командной строки PowerShell в Visual Studio. Опасно ли смешивать два подхода к технологии Git??? Мне кажется, что это абсолютно должно быть опасно, если не по крайней мере немного рискованно. - person Jazimov; 09.05.2016
comment
@ziggurism, да, gmane, к сожалению, упал и еще не полностью восстановился. Кажется, я имел в виду эту тему. - person kostix; 16.02.2017
comment
@Jazimov у них обоих есть непрерывная интеграция и большие наборы тестов. Также libgit2, вероятно, может напрямую использовать тесты git поверх своих собственных. Большая часть вопроса заключается в том, чтобы гарантировать, что любая операция libgit2 не может повредить репозиторий. Потерять данные без повреждения репозитория на самом деле сложно из-за природы git, которая во многом похожа на блокчейн. - person ceztko; 18.11.2019

В настоящее время он не имеет общего кода и...

По словам Рассела Белфера:

Когда ядро ​​git будет переписано поверх libgit2... ответ - никогда. Мы обслуживаем разных мастеров...

Он перечисляет некоторые детали того, почему в выступлении была взята цитата: https://www.youtube.com/watch?v=4ZWqr6iih3s

person hunterboerner    schedule 06.04.2015