The OpenNET Project / Index page

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

18.05.2018 21:50  Представлена вторая версия протокола Git

Разработчики из компании Google представили вторую версию коммуникационного протокола Git, который используется для обмена данными при удалённом подключении клиента к 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".

  1. Главная ссылка к новости (https://opensource.googleblog....)
  2. OpenNews: Выпуск распределенной системы управления исходными текстами Git 2.17
  3. OpenNews: GitHub выпустил Git LFS 2.4.0
  4. OpenNews: Уязвимость в Git, Subversion и Mercurial, допускающая подстановку команд через URL ssh://
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: git
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.2, Аноним (-), 21:56, 18/05/2018 [ответить] [показать ветку] [···]     [к модератору]
  • +3 +/
    Говорили же им http www faqs org docs artu ch01s06 html ... весь текст скрыт [показать]
     
  • 1.3, Аноним (-), 21:57, 18/05/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Можно было ведь добавить git2:// и не делать хак.
     
     
  • 2.4, Аноним (-), 22:07, 18/05/2018 [^] [ответить]    [к модератору]  
  • +5 +/
    Расскажи об этом w3c. А то они бедные никак не догадаются добавить версию после протокола http.
     
     
  • 3.31, пох (?), 10:34, 19/05/2018 [^] [ответить]     [к модератору]  
  • –5 +/
    а им как раз и не надо - они-то были умные, и с 95го года добавили версию непо... весь текст скрыт [показать]
     
     
  • 4.48, Анонимный психотерапевт (?), 22:33, 19/05/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    >> гитовские гугло-обезьянки умом не обладают

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

     
  • 4.61, Попугай Кеша (?), 14:47, 26/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Чувак, я на твоей стороне ;)
     
  • 2.25, Нанобот (ok), 08:50, 19/05/2018 [^] [ответить]     [к модератору]  
  • +3 +/
    Это замена одного хака на другой И, вместо того, чтобы разруливать ситуацию авт... весь текст скрыт [показать]
     
     
  • 3.30, Аноним (-), 10:03, 19/05/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    так если механизм не заложен - так и есть
     
  • 3.47, нурок (?), 20:59, 19/05/2018 [^] [ответить]     [к модератору]  
  • +/
    так всё и будет автоматически, обновляешь свой гит на компе и всё он уже шлёт за... весь текст скрыт [показать]
     
  • 1.5, анонимус (??), 22:09, 18/05/2018 [ответить] [показать ветку] [···]     [к модератору]  
  • –3 +/
    На гитхабе в репе chromium написано 6 branches, где там 500 000 веток Это безум... весь текст скрыт [показать]
     
     
  • 2.6, apollo2k4 (ok), 22:15, 18/05/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    Chromium как бы не на GitHub хостится, там только зеркало…
     
     
  • 3.12, Андрей (??), 23:17, 18/05/2018 [^] [ответить]    [к модератору]  
  • –3 +/
    кривое зеркало, значит.
     
     
  • 4.62, Попугай Кеша (?), 14:47, 26/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Черное зеркало...
     
  • 2.24, Andrey Mitrofanov (?), 07:28, 19/05/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    На https chromium googlesource com chromium src refs всего 14тыс тэгов Мо... весь текст скрыт [показать]
     
  • 2.43, Аноним (-), 17:09, 19/05/2018 [^] [ответить]    [к модератору]  
  • +/
    Разве у слитых веток ссылки не остаются? А уж делить-объединять ветки в git'е это сам Линус завещал.
     
  • 1.7, Аноним (-), 22:22, 18/05/2018 [ответить] [показать ветку] [···]     [к модератору]  
  • –1 +/
    Ваще замечательно, сначала они неправильно используют гит а потом делают новую в... весь текст скрыт [показать]
     
     
  • 2.16, anonymous (??), 04:58, 19/05/2018 [^] [ответить]    [к модератору]  
  • +4 +/
    потрясающе, вы вот гит не разрабатываете, а делаете такие громкие заявляния
     
     
  • 3.35, Аноним (-), 13:18, 19/05/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Поздравляю вы никогда не видели ребу хромиума на мнение о божественном гите имеете
     
  • 2.40, Аноним (-), 15:04, 19/05/2018 [^] [ответить]     [к модератору]  
  • –2 +/
    Действительно в каком вменяемом случае может понадобиться иметь репозиторий с т... весь текст скрыт [показать]
     
     
  • 3.49, Аноним (-), 00:59, 20/05/2018 [^] [ответить]    [к модератору]  
  • +/
    В свн столько веток тоже не держа. Но там дело не столько в ветках сколько в тегах. С свн они его как раз не перепутали, они просто эмулируют логику свн поверх гита.
     
     
  • 4.50, Andrey Mitrofanov (?), 08:34, 20/05/2018 [^] [ответить]     [к модератору]  
  • +/
    файлопомойки поверх Они просто не любят Микрософт, не хотят покупать ms-сервер, ... весь текст скрыт [показать]
     
  • 1.10, Crazy Alex (ok), 23:02, 18/05/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Эх, ещё б они какую-нибудь механику докачки прикрутили...
     
     
  • 2.14, Андрей (??), 23:19, 18/05/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Подождите, а что не прикрутили?! А я именно об этом гигантском улучшении подумал в первую очередь.
     
  • 2.15, Аноним (-), 00:37, 19/05/2018 [^] [ответить]    [к модератору]  
  • –5 +/
    На диалапе сидишь?
     
  • 2.19, Аноним (-), 06:34, 19/05/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Ты мазохист что ли, работать с большими репами на диалапе Но даже если у тебя н... весь текст скрыт [показать]
     
     
  • 3.39, Crazy Alex (ok), 15:01, 19/05/2018 [^] [ответить]    [к модератору]  
  • +/
    Как разок понадобится таки вытащить большую репу, сидя с отпуске с не сильно хорошей мобильной связью - по-другому запоёте.

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

     
     
  • 4.41, Аноним (-), 16:25, 19/05/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Зачем Вы так жестоко ломаете картину мира диванному админу?
     
  • 4.44, Андрей (??), 18:21, 19/05/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Кстати, хороший пример inkscape Кроме недостатка самого протокола, у них в реп... весь текст скрыт [показать]
     
  • 1.11, Аноним (-), 23:10, 18/05/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –9 +/
    Ведро линукс по прежнему нельзя скачать на плохом канале? Хорошо зделоли.
     
     
  • 2.17, Anonimous (?), 05:00, 19/05/2018 [^] [ответить]    [к модератору]  
  • +/
    А чего,
    $ git clone --depth 1 --branch linux-4.16.y  \
    git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

    не работает?

     
     
  • 3.20, Аноним (-), 06:35, 19/05/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    Да ему лишь бы сирануть, а решение проблемы до лампочки.
     
  • 3.26, Нанобот (ok), 08:52, 19/05/2018 [^] [ответить]     [к модератору]  
  • –2 +/
    Может человеку нужны все ветки, одна уже не вставляет... весь текст скрыт [показать]
     
  • 3.34, Андрей (??), 12:35, 19/05/2018 [^] [ответить]     [к модератору]  
  • +/
    Недавно была новость 6 млн git объектов Тут, казалось, бы всего 1 последний к... весь текст скрыт [показать]
     
  • 3.37, name (??), 14:16, 19/05/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Почему же, отлично работает Только это 180 мегабайт И на дерьмовом канале это ... весь текст скрыт [показать]
     
     
  • 4.55, KonstantinB (ok), 16:00, 20/05/2018 [^] [ответить]     [к модератору]  
  • +/
    Анониму с опеннета помешает то, что он и не собирался ничего разрабатывать Тот ... весь текст скрыт [показать]
     
  • 2.45, Старый одмин (?), 20:01, 19/05/2018 [^] [ответить]    [к модератору]  
  • +/
    Используй дары смерти от Майкрософт
    https://github.com/Microsoft/GVFS
     
     
  • 3.51, Andrey Mitrofanov (?), 08:36, 20/05/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > Используй дары смерти от Майкрософт
    >\/Microsoft/GVFS

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

     
  • 2.52, Сергей (??), 11:00, 20/05/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    https://www.kernel.org/cloning-linux-from-a-bundle.html
     
     
  • 3.58, Андрей (??), 04:32, 21/05/2018 [^] [ответить]    [к модератору]  
  • +/
    А inkscape? gcc? gimp? llvm? ...
     
  • 1.13, Андрей (??), 23:17, 18/05/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Наконец-то!!!
     
  • 1.18, Дуплик (ok), 06:12, 19/05/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Когда новые хеши будут? SHA1 уже на помойке истории. Небезопасная туфта.
     
     
  • 2.21, Аноним (-), 06:36, 19/05/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    - Хочу домой.
    - Ну так пошли.
    - Хочу домой быстро!
    - Ну тогда побежали...

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

     
  • 2.28, аноним 12 (?), 09:26, 19/05/2018 [^] [ответить]    [к модератору]  
  • +/
    И от какой же опасности ты собираешься тут защищаться новыми хешами?
     
  • 2.29, KonstantinB (ok), 09:49, 19/05/2018 [^] [ответить]    [к модератору]  
  • +/
    Давай ты сначала продемонстрируешь подмену коммита на другой, и не тупо с рандомным мусором, а с компилирующимся вредоносным кодом, так чтобы sha1 был тот же. А потом поговорим о безопасности.
     
     
  • 3.32, anomymous (?), 10:55, 19/05/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    Давай ты сначала продемонстрируешь... MD2...
    Давай ты сначала продемонстрируешь... MD4...
    Давай ты сначала продемонстрируешь... MD5...
    <==== вы находитесь здесь
    Давай ты сначала продемонстрируешь... SHA1...
    Давай ты сначала продемонстрируешь... SHA256...
    Давай ты сначала продемонстрируешь... SHA384...
    Давай ты сначала продемонстрируешь... SHA512...
    ...
     
     
  • 4.57, Аноним (-), 00:08, 21/05/2018 [^] [ответить]    [к модератору]  
  • +/
    Даже для md5 такое нелегко продемонстрировать, если ты не Гугл. Сложность md5 preimage attack - 2^122.
     
  • 4.59, Аноним (-), 07:08, 21/05/2018 [^] [ответить]     [к модератору]  
  • +/
    Так где эксплойты то Так и не было Впрочем, ничего нового ... весь текст скрыт [показать]
     
  • 1.42, Аноним (-), 16:31, 19/05/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    > обеспечение возможности фильтрации ссылок (веток и тегов) на стороне сервера

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

     
  • 1.53, Николай Величко (?), 13:56, 20/05/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    > Разработчики из компании Google представили

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

     
     
  • 2.54, Andrey Mitrofanov (?), 14:23, 20/05/2018 [^] [ответить]    [к модератору]  
  • +/
    >> Разработчики из компании Google представили
    > Какого xpeна? Кто они такие чтобы представлять? Git - это разработка Линуса
    > Торвальдса, а не Google. Что это еще за фокусы? Какие новые

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

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

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

     
  • 2.56, Crazy Alex (ok), 20:02, 20/05/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Это открытый софт. Кому что надо - тот и разрабатывает.
     
  • 1.60, Влад (??), 03:08, 24/05/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    > требует разрешения установки своих переменных окружения в конфигурации SSH

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


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