The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Представлена вторая версия протокола Git"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Представлена вторая версия протокола Git"  +/
Сообщение от opennews (ok), 18-Май-18, 21:53 
Разработчики из компании Google представили (https://opensource.googleblog.com/2018/05/introducing-git-pr...) вторую версию коммуникационного протокола Git (https://mirrors.edge.kernel.org/pub/software/scm/git/docs/te...), который используется для обмена данными при удалённом подключении клиента к Git-серверу. При подготовке второй версии основное внимание было уделено повышению эффективности обмена данными, оптимизации для работы поверх HTTP и решению проблемы с расширяемостью. Реализация нового протокола уже принята в основной состав Git и ожидается в версии Git 2.18.


Среди ключевых новшеств отмечается обеспечение возможности фильтрации ссылок (веток и тегов) на стороне сервера, что позволяет отсеивать ссылки на удалённой стороне без необходимости загрузки списка всех ссылок. В первой версии протокола полный список ссылок в репозитории всегда отправлялся клиенту при выполнении любой команды извлечения, даже когда клиент обновлял только одну ветку ("git fetch origin master").


Для репозиториев, содержащих сотни тысяч ссылок (например, в репозитории Chromium насчитывается более 500 тысяч веток и тегов), сервер вынужден был передавать десятки мегабайт лишних данных, которые просто игнорировались на стороне клиента. Все эти заведомо игнорируемые данные приводили к напрасной трате времени и пропускной способности, особенно когда клиент обновлял в большом репозитории ветку с несколькими коммитами или просто проверял актуальность своей копии репозитория. Внедрение второй версии протокола в Google позволило до трёх раз ускорить выполнения холостых запросов (при отсутствии изменений) в репозитории Chromium и до восьми раз сократить объём отправляемого трафика с серверов googlesource.com.

Вторым важным улучшением стало предоставление средств для расширения протокола, дающих возможность добавлять в протокол новые возможности по мере  расширения функциональности инструментария. Например, расширения позволили добавить поддержку извлечения и отправки (fetch/push) символических ссылок (symref). Новая версия протокола также переработана для упрощения обработки соединений на клиентской стороне при применении в качестве транспорта HTTP (удалённый обработчик теперь функционирует как прокси).

При реализации второй версии протокола пришлось искать обходные пути для решения проблемы с отсутствием механизма согласования версии протокола между клиентом и сервером. Для транспорта "https://" выход был найден в форме добавления при запросе нового HTTP-заголовка "Git-Protocol: version=2", указывающего на поддержку второй версии протокола. Для транспорта "ssh://" передача версии протокла реализована через установки переменной окружения "GIT_PROTOCOL=version=2" на удалённой стороне после соединения (требует разрешения установки своих переменных окружения в конфигурации SSH).


Для транспорта "git://"  с добавлением параметра с номером версии пришлось повозится, так как число параметров было ограничено после исправления в 2009 году ошибки,  приводящей к зацикливанию. Проблема была решена "хаком", позволившим обойти ограничения через использование двух нулевых символов подряд, т.е. параметры передаются в виде "003egit-upload-pack /project.git\0host=myserver.com\0\0version=2\0".

URL: https://opensource.googleblog.com/2018/05/introducing-git-pr...
Новость: https://www.opennet.me/opennews/art.shtml?num=48622

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


2. "Представлена вторая версия протокола Git"  +3 +/
Сообщение от Аноним (-), 18-Май-18, 21:56 
> При реализации второй версии протокола пришлось искать обходные пути для решения проблемы с отсутствием механизма согласования версии протокола между клиентом и сервером

Говорили же им.

> When you design protocols or file formats, make them sufficiently self-describing to be extensible. Always, always either include a version number

http://www.faqs.org/docs/artu/ch01s06.html

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Представлена вторая версия протокола Git"  –1 +/
Сообщение от Аноним (-), 18-Май-18, 21:57 
Можно было ведь добавить git2:// и не делать хак.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Представлена вторая версия протокола Git"  +5 +/
Сообщение от Аноним (-), 18-Май-18, 22:07 
Расскажи об этом w3c. А то они бедные никак не догадаются добавить версию после протокола http.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

31. "Представлена вторая версия протокола Git"  –5 +/
Сообщение от пох (?), 19-Май-18, 10:34 
> Расскажи об этом w3c. А то они бедные никак не догадаются добавить версию после протокола http.

а им как раз и не надо - они-то (были) умные, и с 95го года добавили версию непосредственно в протокол.
А еще до 94го старательно определили что должен делать протокол с незнакомыми заголовками, поэтому добавление версии еще и обратную совместимость им не сломало.

гитовские гугло-обезьянки умом не обладают, только жрать протянутый банан могут.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

48. "Представлена вторая версия протокола Git"  +1 +/
Сообщение от Анонимный психотерапевт (?), 19-Май-18, 22:33 
>> гитовские гугло-обезьянки умом не обладают

Как ты в дверные проемы пролазишь с таким самомнением?
Тяжко же жить, когда вокруг все раздражает. Береги себя, бро.

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

61. "Представлена вторая версия протокола Git"  +/
Сообщение от Попугай Кеша (?), 26-Июл-18, 14:47 
Чувак, я на твоей стороне ;)
Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

25. "Представлена вторая версия протокола Git"  +3 +/
Сообщение от Нанобот (ok), 19-Май-18, 08:50 
Это замена одного хака на другой. И, вместо того, чтобы разруливать ситуацию автоматически, ты предлагаешь перенести ответственность на людей (считаю такой перенос ответственности признаком криворукости разработчика)
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

30. "Представлена вторая версия протокола Git"  +1 +/
Сообщение от Аноним (-), 19-Май-18, 10:03 
так если механизм не заложен - так и есть
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

47. "Представлена вторая версия протокола Git"  +/
Сообщение от нурок (?), 19-Май-18, 20:59 
так всё и будет автоматически, обновляешь свой гит на компе и всё он уже шлёт запросы к серваку по второму протоколу с фолбэком на первый. а с SSH конфигом к счастью автоматически ничего не происходит, только руками.
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

5. "Представлена вторая версия протокола Git"  –3 +/
Сообщение от анонимус (??), 18-Май-18, 22:09 
> например, в репозитории Chromium насчитывается более 500 тысяч веток и тегов

На гитхабе в репе chromium написано 6 branches, где там 500 000 веток? Это безумное количество, никто бы не допустил такого числа веток. Или там 494 000 тегов и 6 веток? :)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Представлена вторая версия протокола Git"  +3 +/
Сообщение от apollo2k4 (ok), 18-Май-18, 22:15 
Chromium как бы не на GitHub хостится, там только зеркало…
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

12. "Представлена вторая версия протокола Git"  –3 +/
Сообщение от Андрей (??), 18-Май-18, 23:17 
кривое зеркало, значит.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

62. "Представлена вторая версия протокола Git"  +/
Сообщение от Попугай Кеша (?), 26-Июл-18, 14:47 
Черное зеркало...
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

24. "Представлена вторая версия протокола Git"  –1 +/
Сообщение от Andrey Mitrofanov (?), 19-Май-18, 07:28 
>> например, в репозитории Chromium насчитывается более 500 тысяч веток и тегов
> На гитхабе в репе chromium написано 6 branches, где там 500 000
> веток? Это безумное количество, никто бы не допустил такого числа веток.
> Или там 494 000 тегов и 6 веток? :)

На https://chromium.googlesource.com/chromium/src/+refs "всего" 14тыс. тэгов.

Может, укушенные CVS-ом и https://chromium.googlesource.com/All-Projects/ фрибсдешниками и их реп-всё-в-куче?

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

43. "Представлена вторая версия протокола Git"  +/
Сообщение от Аноним (-), 19-Май-18, 17:09 
Разве у слитых веток ссылки не остаются? А уж делить-объединять ветки в git'е это сам Линус завещал.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Представлена вторая версия протокола Git"  –1 +/
Сообщение от Аноним (-), 18-Май-18, 22:22 
>Для репозиториев, содержащих сотни тысяч ссылок (например, в репозитории Chromium насчитывается более 500 тысяч веток и тегов),

Ваще замечательно, сначала они неправильно используют гит а потом делают новую версию протокола чтобы это было не так больно.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Представлена вторая версия протокола Git"  +4 +/
Сообщение от anonymousemail (??), 19-Май-18, 04:58 
потрясающе, вы вот гит не разрабатываете, а делаете такие громкие заявляния
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

35. "Представлена вторая версия протокола Git"  –1 +/
Сообщение от Аноним (-), 19-Май-18, 13:18 
Поздравляю вы никогда не видели ребу хромиума на мнение о божественном гите имеете
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

40. "Представлена вторая версия протокола Git"  –2 +/
Сообщение от Аноним (-), 19-Май-18, 15:04 
Действительно: в каком вменяемом случае может понадобиться иметь репозиторий с тысячами веток? Мне кажется, разработчики Chromium перепутали Git с SVN: Git — это средство распределённой разработки, при использовании которого отдельные ветки пилятся независимо и в своих репозиториях, а в основной репозиторий пушатся только более-менее готовые изменения, оттестированные отдельно и представляющие ценность для хранения там. Именно так разрабатывается Linux и, не смотря на куда больший объём кода и число разработчиков, Git с хранением основного репозитория отлично справляется.

Это как мелкософт, индусы из которого сначала решили залить в один репозиторий все составляющие windows проекты, а когда получили тормоящий репозиторий объёмом в сотни гигабайт, стали пилить под это специальную файловую систему.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

49. "Представлена вторая версия протокола Git"  +/
Сообщение от Аноним (-), 20-Май-18, 00:59 
В свн столько веток тоже не держа. Но там дело не столько в ветках сколько в тегах. С свн они его как раз не перепутали, они просто эмулируют логику свн поверх гита.
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

50. "Представлена вторая версия протокола Git"  +/
Сообщение от Andrey Mitrofanov (?), 20-Май-18, 08:34 
> не перепутали, они просто эмулируют логику

файлопомойки поверх

>свн поверх гита.

Они просто не любят Микрософт, не хотят покупать ms-сервер, не хотят использовать msgvfs, но ... хотят, чтоб былО, как в микрософте.

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

10. "Представлена вторая версия протокола Git"  –1 +/
Сообщение от Crazy Alex (ok), 18-Май-18, 23:02 
Эх, ещё б они какую-нибудь механику докачки прикрутили...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Представлена вторая версия протокола Git"  –1 +/
Сообщение от Андрей (??), 18-Май-18, 23:19 
Подождите, а что не прикрутили?! А я именно об этом гигантском улучшении подумал в первую очередь.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

15. "Представлена вторая версия протокола Git"  –5 +/
Сообщение от Аноним (-), 19-Май-18, 00:37 
На диалапе сидишь?
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

19. "Представлена вторая версия протокола Git"  –1 +/
Сообщение от Аноним (-), 19-Май-18, 06:34 
Ты мазохист что ли, работать с большими репами на диалапе?

Но даже если у тебя ничего другого нет, то есть опции, радикально ограничивающие количество качаемого: --depth и --single-branch

Завязывай с своим неосиляторским нытьём.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

39. "Представлена вторая версия протокола Git"  +/
Сообщение от Crazy Alex (ok), 19-Май-18, 15:01 
Как разок понадобится таки вытащить большую репу, сидя с отпуске с не сильно хорошей мобильной связью - по-другому запоёте.

И алючиаи эти не помогут (а ветки ещё выгрести для начала надо).

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

41. "Представлена вторая версия протокола Git"  +1 +/
Сообщение от Аноним (-), 19-Май-18, 16:25 
Зачем Вы так жестоко ломаете картину мира диванному админу?
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

44. "Представлена вторая версия протокола Git"  +1 +/
Сообщение от Андрей (??), 19-Май-18, 18:21 
Кстати, хороший пример: inkscape. Кроме недостатка самого протокола, у них в репе ещё куча мусора. Склонировал 1,5 ГБ!!! Запустил git gc --aggressive - и оказалось, что на самом деле в репе всего-то 440 МБ.
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

11. "Представлена вторая версия протокола Git"  –9 +/
Сообщение от Аноним (-), 18-Май-18, 23:10 
Ведро линукс по прежнему нельзя скачать на плохом канале? Хорошо зделоли.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Представлена вторая версия протокола Git"  +/
Сообщение от Anonimous (?), 19-Май-18, 05:00 
А чего,
$ git clone --depth 1 --branch linux-4.16.y  \
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

не работает?

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

20. "Представлена вторая версия протокола Git"  +3 +/
Сообщение от Аноним (-), 19-Май-18, 06:35 
Да ему лишь бы сирануть, а решение проблемы до лампочки.
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

26. "Представлена вторая версия протокола Git"  –2 +/
Сообщение от Нанобот (ok), 19-Май-18, 08:52 
> А чего,
> $ git clone --depth 1 --branch linux-4.16.y  \
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
> не работает?

Может человеку нужны все ветки, одна уже не вставляет

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

34. "Представлена вторая версия протокола Git"  +/
Сообщение от Андрей (??), 19-Май-18, 12:35 
> git clone --depth 1

Недавно была новость: 6 млн. git объектов! Тут, казалось, бы всего 1 последний коммит загружается. А придётся загрузить достаточно много: всего в 10 раз меньше чем полный клон со всеми миллионами объектов!

> --branch linux-4.16.y

Причём тут это? Никакого влияния на размер загружаемого не влияет. Просто сокращение: чекаутнуть вот эту ветку после клонирования.

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

37. "Представлена вторая версия протокола Git"  +1 +/
Сообщение от name (??), 19-Май-18, 14:16 
Почему же, отлично работает. Только это 180 мегабайт. И на дерьмовом канале это может затянуться очень надолго. Может поведаете, что должно помешать разрабатывать ведро линукс на том же диалапе, кроме дерьмового протокола гита?
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

55. "Представлена вторая версия протокола Git"  +/
Сообщение от KonstantinB (ok), 20-Май-18, 16:00 
> Может поведаете, что должно помешать разрабатывать ведро линукс на том же диалапе

Анониму с опеннета помешает то, что он и не собирался ничего разрабатывать.

Тот же, кто способен это делать, в состоянии нагуглить про git-bundle за 30 секунд даже с диалапа.

Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

45. "Представлена вторая версия протокола Git"  +/
Сообщение от Старый одмин (?), 19-Май-18, 20:01 
Используй дары смерти от Майкрософт
https://github.com/Microsoft/GVFS
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

51. "Представлена вторая версия протокола Git"  +1 +/
Сообщение от Andrey Mitrofanov (?), 20-Май-18, 08:36 
> Используй дары смерти от Майкрософт
>\/Microsoft/GVFS

Микрософт?... Микрософт и докачка? И работающаяя докачка??  Не шути так, мне больно!111 </<<<

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

52. "Представлена вторая версия протокола Git"  +1 +/
Сообщение от Сергей (??), 20-Май-18, 11:00 
https://www.kernel.org/cloning-linux-from-a-bundle.html
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

58. "Представлена вторая версия протокола Git"  +/
Сообщение от Андрей (??), 21-Май-18, 04:32 
А inkscape? gcc? gimp? llvm? ...
Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

13. "Представлена вторая версия протокола Git"  +/
Сообщение от Андрей (??), 18-Май-18, 23:17 
Наконец-то!!!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "Представлена вторая версия протокола Git"  +/
Сообщение от Дуплик (ok), 19-Май-18, 06:12 
Когда новые хеши будут? SHA1 уже на помойке истории. Небезопасная туфта.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "Представлена вторая версия протокола Git"  +3 +/
Сообщение от Аноним (-), 19-Май-18, 06:36 
- Хочу домой.
- Ну так пошли.
- Хочу домой быстро!
- Ну тогда побежали...

(с) известный анекдот про мужика, нашедшего в пустыне лампу с джинном

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

28. "Представлена вторая версия протокола Git"  +/
Сообщение от аноним 12 (?), 19-Май-18, 09:26 
И от какой же опасности ты собираешься тут защищаться новыми хешами?
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

29. "Представлена вторая версия протокола Git"  +/
Сообщение от KonstantinB (ok), 19-Май-18, 09:49 
Давай ты сначала продемонстрируешь подмену коммита на другой, и не тупо с рандомным мусором, а с компилирующимся вредоносным кодом, так чтобы sha1 был тот же. А потом поговорим о безопасности.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

32. "Представлена вторая версия протокола Git"  +3 +/
Сообщение от anomymous (?), 19-Май-18, 10:55 
Давай ты сначала продемонстрируешь... MD2...
Давай ты сначала продемонстрируешь... MD4...
Давай ты сначала продемонстрируешь... MD5...
<==== вы находитесь здесь
Давай ты сначала продемонстрируешь... SHA1...
Давай ты сначала продемонстрируешь... SHA256...
Давай ты сначала продемонстрируешь... SHA384...
Давай ты сначала продемонстрируешь... SHA512...
...
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

57. "Представлена вторая версия протокола Git"  +/
Сообщение от Аноним (-), 21-Май-18, 00:08 
Даже для md5 такое нелегко продемонстрировать, если ты не Гугл. Сложность md5 preimage attack - 2^122.
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

59. "Представлена вторая версия протокола Git"  +/
Сообщение от Аноним (-), 21-Май-18, 07:08 
> Давай ты сначала продемонстрируешь... MD2...
> Давай ты сначала продемонстрируешь... MD4...
> Давай ты сначала продемонстрируешь... MD5...

Так где эксплойты то? Так и не было? Впрочем, ничего нового.

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

42. "Представлена вторая версия протокола Git"  +/
Сообщение от Аноним (-), 19-Май-18, 16:31 
> обеспечение возможности фильтрации ссылок (веток и тегов) на стороне сервера

Наступило щястье!

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

53. "Представлена вторая версия протокола Git"  +/
Сообщение от Николай Величко (?), 20-Май-18, 13:56 
> Разработчики из компании Google представили

Какого xpeна? Кто они такие чтобы представлять? Git - это разработка Линуса Торвальдса, а не Google. Что это еще за фокусы? Какие новые протоколы? Они там упоролись? Или это их внутренний форк для своих нужд? Если они это не толкают в массы, то пусть месят свой форк и не лезут к остальным. Линус сам знает как лучше развивать Git.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

54. "Представлена вторая версия протокола Git"  +/
Сообщение от Andrey Mitrofanov (?), 20-Май-18, 14:23 
>> Разработчики из компании Google представили
> Какого xpeна? Кто они такие чтобы представлять? Git - это разработка Линуса
> Торвальдса, а не Google. Что это еще за фокусы? Какие новые

ЛТ уже довольно давно не у руля https://lwn.net/Articles/145123/ .

> свой форк и не лезут к остальным. Линус сам знает как
> лучше развивать Git.

Виновые кеши приняли, и гуглёвые протоколы схавают.

Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

56. "Представлена вторая версия протокола Git"  +1 +/
Сообщение от Crazy Alex (ok), 20-Май-18, 20:02 
Это открытый софт. Кому что надо - тот и разрабатывает.
Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

60. "Представлена вторая версия протокола Git"  +/
Сообщение от Влад (??), 24-Май-18, 03:08 
> требует разрешения установки своих переменных окружения в конфигурации SSH

вангую, что скоро вскроется уязвимость

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру