The OpenNET Project / Index page

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

Выпуск распределенной системы управления исходными текстами Git 2.18

22.06.2018 10:21

Подготовлен выпуск распределенной системы управления исходными текстами Git 2.18.0. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям задним числом используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. По сравнению с прошлым выпуском в новую версию принято 903 изменения, подготовленных при участии 80 разработчиков, из которых 24 впервые приняли своё участие в разработке.

Наиболее важным нововведением Git 2.18 является интеграция поддержки второй версии коммуникационного протокола Git, который используется при удалённом подключении клиента к Git-серверу. Вторая версия протокола примечательна предоставлением возможности фильтрации веток и тегов на стороне сервера (ранее при выполнении любой команды извлечения клиенту всегда отправлялся полный список ссылок во всём репозитории, даже когда клиент обновлял только одну ветку) и добавлением средств для расширения протокола (добавления в протокол новых возможностей по мере появления в инструментарие новой функциональности). Подробнее о второй версии протокола можно прочитать в отдельном анонсе.

Другие изменения:

  • При выполнении слияний и операций "cherry-pick" добавлена эвристика для предугадывания переименований. Например, если x/a, x/b и x/c были переименованы в z/a, z/b и z/c, то наиболее вероятно, что пользователь также переименует x/d в z/d, и можно предложить сразу переместить все остальные элементы каталога 'x' в каталог 'z'. Попутно в коде переименования устранена ошибка, которая могла приводить к перезаписи не включённых в репозиторий файлов во время слияния;
  • В "git filter-branch" добавлен отдельный код возврата для отделения ситуации отсутствия новых коммитов для перезаписи от ошибок при выполнении операции;
  • При сборке со свежей библиотекой cURL обеспечена возможность использования TLS 1.3 и сжатия методом gzip;
  • В "git gui" добавлено распознавание файлов "~/.ssh/id_ecdsa.pub" и "~/.ssh/id_ed25519.pub" как SSH-ключей. В дополнение к CTRL/CMD+ENTER для коммита добавлена клавиатурная комбинация CTRL/CMD+KP_ENTER (аналог с нажатием Enter на боковом цифровом блоке клавиатуры). Решены проблемы с использованием старых версий Tk (например 8.5.7)) без поддержки операции "ttk::style theme use" для выбора темы оформления;
  • В "git rebase" добавлена обработка опции "--signoff" при использовании бэкендов, отличных от "am" (но вызванных без "--preserve-merges");
  • Выполнение "git branch --list" во время прерванной операции "rebase -i" теперь разделяет ситуации, когда rebase выполнен для отсоединённой ветки HEAD и обычной ветки;
  • В "git mergetools" обеспечена совместимость с утилитой guiffy;
  • Добавлен новый атрибут "working-tree-encoding", который указывает Git выполнить перекодирование содержимого в соответствии с заданной кодировкой текста при выполнении операции checkout;
  • В "git config" добавлена универсальная опция "--type=typename" для указания типов задаваемых значений, дополняющая раздельные опции "--int", "--bool" и т.п. В "git config" также добавлен новый тип значений "--type=color" и опция "--default", например, можно указать "git config --get foo.color --default blue" и получить значение цвета из переменной foo.color или вывести цвет "blue" если данная переменная не определена;
  • В "git rebase" добавлена опция "--rebase-merges" для переноса всей топологии графа коммитов;
  • В "git worktree add" добавлена поддержка выполнения операции checkout над существующей веткой;
  • В "git send-email" помимо ранее доступных опций диалога подтверждения ('Yes', 'No', 'Quit', 'All') добавлена кнопка 'Edit' для редактирования перед отправкой;
  • По умолчанию в настройках отключён режим "merge.renames" для экономии ресурсов процессора, которые попусту тратятся на поиск и слияние переименованных путей. В "git status" добавлена настройка status.renames для отключения кода определения переименований;
  • Улучшена работа скрипта автодополнения ввода, в частности, для различных команд обеспечено автодополнение файловых путей;
  • По умолчанию обеспечена поддержка сборки с библиотекой PCRE v2. Для явного выбора версии PCRE следует использовать опции USE_LIBPCRE1 и USE_LIBPCRE2;
  • Добавлена сборочная опция, позволяющая при запуске Git вызывать все связанные компоненты с использованием относительных путей (ранее данный режим применялся для Windows, но теперь доступен и для Linux, BSD и macOS);
  • Абстрагирован интерфейс взаимодейтсвия с GPG с целью обеспечения в будущем интеграции с другими типами систем формирования цифровых подписей;
  • Обеспечена более заметная подсветка ошибок при выполнении "git push";
  • Проведена оптимизация производительности операций "git fetch", "git gc" и "git pack-objects";
  • Прекращена поддержка операции извлечения коммитов "git http-fetch", которая была помечена устаревшей и никем не использовалась;

  1. Главная ссылка к новости (https://lkml.org/lkml/2018/6/2...)
  2. OpenNews: Началась разработка GitPub, протокола для децентрализованных Git-сервисов
  3. OpenNews: Компания Microsoft объявила о покупке GitHub за 7.5 миллиардов долларов
  4. OpenNews: Обновление Git с устранением уязвимостей
  5. OpenNews: Представлена вторая версия протокола Git
  6. OpenNews: Выпуск распределенной системы управления исходными текстами Git 2.17
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/48819-git
Ключевые слова: git
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (20) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Linus FTW (?), 12:59, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    Линус таки Бог, ибо создал нечто такое, что используют миллиарды людей (даже если сами об этом не знают)!
     
     
  • 2.9, Andrey Mitrofanov (?), 14:09, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Линус таки Бог, ибо создал нечто такое, что используют миллиарды людей (даже
    > если сами об этом не знают)!

    Ты про терминалку или про копию с маквоя?

     
  • 2.13, Sw00p aka Jerom (?), 15:45, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Свой гит создавал каждый, new folder, new folder1, new folder2, .....

    пс: ничего не обычного

     
  • 2.14, Аноном (?), 18:49, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Столами вас явно не поддержит
     

  • 1.3, Linus FTW (?), 13:00, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    За Git вообще готов носить его на руках! :)
     
     
  • 2.10, Andrey Mitrofanov (?), 14:10, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > За Git вообще готов носить его на руках! :)

    Шли деньги Ларри.  Он будет рад.

     

  • 1.4, Какаянахренразница (ok), 13:17, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Абстрагирован интерфейс взаимодейтсвия с GPG с целью обеспечения
    > в будущем интеграции с другими типами систем формирования цифровых подписей;

    Например, с какими? Действительно, интересно было бы узнать.

     
     
  • 2.6, Аноним (-), 13:23, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    криптопро
     

  • 1.5, Аноним (5), 13:20, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    И зачем это нужно? Сделали из систему управления версиями не пойми что. Архивы с нумерацией все ещё лучше гита.
     
     
  • 2.7, Илья (??), 13:28, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Дело говорит, мы вообще гит выкинули давно. Зачем он нужен если можно код положить на гугл-диск
     
     
  • 3.8, ryoken (ok), 14:01, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    положить на код

    fxd

     
  • 3.11, Аноним (11), 14:23, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Правильно. Ещё используйте только ручную компиляцию и ручное создание архивов сборок. Никаких cmake или autotools или meson. Понаделали монстров, которых надо изучать. А мозг не у всех настолько хорошо развит, чтобы столько информации удерживать.
     
     
  • 4.12, Anonim (??), 15:19, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    cmake действительно гoвнo. он компилирется дольше чем llvm и предрекали ему смерть в гoвнoхипстерах еще при зарождении. вот сейчас и они от него отказываются (читай более ранние новости)
     
     
  • 5.15, Аноним (11), 19:04, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Наверное не стоит спрашивать, зачем Вы компилируете у себя CMake и LLVM?...
     
  • 5.19, Ivan_83 (ok), 02:15, 24/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Начинал с autotools, всегда плевался на них.
    CMake только в этом году освоил, очень доволен.
    Meson - даже не интересовался, смысла в нём для себя пока не вижу.
     

  • 1.16, Аноним (16), 20:26, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Например, если x/a, x/b и x/c были переименованы в z/a, z/b и z/c, то наиболее вероятно, что пользователь также переименует x/d в z/d, и можно предложить сразу переместить все остальные элементы каталога 'x' в каталог 'z'.

    Это для имбецилов, неспособных переименовать каталог x в каталог z?

     
  • 1.17, Ку (?), 21:41, 22/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Использую Гит, в основном базовые команды и опции.
    Претензий особых нет, но как-то напрягает, что все время что-то упраздняют, перелопачивают и добавляют, в том смысле, что у разрабов могут быть разные версии Гита и стремаешся, что может отработать не так как ожидается.
    На стековерфлоу часто пишут, что дескать эта опция уже не актуальна, это уже работает не так с такой-то версии и т.п.
    Чем-то напоминает системду с растущей кучей опций и прибамбасов.
     
     
  • 2.18, Andrey Mitrofanov (?), 22:12, 22/06/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Использую Гит, в основном базовые команды и опции.
    > Претензий особых нет, но как-то напрягает, что все время что-то упраздняют, перелопачивают

    Cобирал в своём уютном дебианчике (покинувшем нас wheezy) и "рабочих" el6/el7 несколько разных "минорных" из 1.7.xx--2.17.0.

    Для "использую базовые команды" -- _абсолютно_ никакой разницы. Совершеннл не о чем беспокоиться.

    В район какого-то 2.1x, например, сделали многопоточное "сжание" в git-gc.  В 2.каких-то пилили виндовый костыльный кеш -- очень забавляли приседания несчастных с недоплатформой... Чисто из чтения новостей.  Ну, "минорные" дефолты и опции перетряхают...

    > и добавляют, в том смысле, что у разрабов могут быть разные
    > версии Гита и стремаешся, что может отработать не так как ожидается.
    > На стековерфлоу часто пишут, что дескать эта опция уже не актуальна, это
    > уже работает не так с такой-то версии и т.п.
    > Чем-то напоминает системду с растущей кучей опций и прибамбасов.

    В отличие от с-д-ы, где нужно ходит строем и учить опции, здесь все эти опции (виндоуз-кеши, git-fs-ы, уеб-два-нуль социалочки) не были нужны до их упразнения, не стали нужнее и после.

     

  • 1.20, oni3 (?), 04:45, 24/06/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    смените формулировку. Git - не распределённый, не p2p, а децентрализованный. есть большая разница.
     
     
  • 2.21, Аноним (21), 19:57, 26/06/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Если будешь рассылать патчи напрямую другим, то вполне распределенный. Гит вообще не обязывает следовать какой-либо конкретной модели распространения изменений.
     

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



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

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