The OpenNET Project / Index page

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

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

25.02.2019 10:07

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

По сравнению с прошлым выпуском в новую версию принято 500 изменений, подготовленных при участии 74 разработчиков, из которых 20 впервые приняли участие в разработке. Основные новшества:

  • В "git log" и другие команды добавлена опция "--date=human", позволяющая выводить даты в сокращённом читаемом виде, адаптивно выбирая формат в зависимости от давности события. Например, вместо "Mon Feb 25 08:20:14 2019 -0500" для только что совершённых действий будет указано "N минут назад" (как в режиме "--date=relative"), для недавних событий будет показан день и час, а для старых изменений только день, месяц и год:

    Дополнительно предусмотрена опция "--date=auto:human", которая применяет новое форматирование только при выводе через терминал, а при перенаправлении вывода в файл или в другую команду использует формат по умолчанию:

  • Добавлена опциональная возможность применения алгоритма хэширования SHA-256 вместо скомпрометированного SHA-1 при сборке Git в режиме "NewHash". Код для обхода дерева объектов изменён с учётом того, что имена объектов могут вычисляться не только с использованием SHA-1. Изначально планировалось использовать алгоритм SHA3-256, но в конечном счёте разработчики остановились на SHA-256, так как SHA2 уже применяется в Git для цифровых подписей. Логика выбора в том, при использовании SHA-256 и SHA3-256 в коде Git, компрометация любого из них приведёт к проблемам с безопасностью, поэтому лучше зависеть от одного алгоритма, а не от двух. Кроме того, SHA-256 широко распространён и поддерживается во всех криптографических библиотеках, а также демонстрирует очень хорошую производительность;
  • В команде "git cherry-pick" обеспечена возможность использования опции "-m" (mainline) при указании "git cherry-pick -m1", т.е. позволяет повторно применить коммит при выборе первого родителя этого коммита в качестве mainline-ветки. В остальных случаях как и раньше будет выводиться ошибка;
  • C целью оптимизации производительности команда "git log -G", осуществляющая поиск по регулярному выражению теперь не выполняет поиск в бинарных файлах, если дополнительно явно не указана опция "--text" или не применён textconv;
  • Добавлена настройка "http.version", позволяющая определить предпочитаемую версию протокола HTTP, применяемую при извлечении или отправке изменений. Для работы опции требуется относительно свежая библиотека cURL;
  • "git push $there $src:$dst" выдаёт ошибку, если в $dst указан относительный путь и точно не ясно, что пользователь имел в виду. В новой версии текст ошибки стал более понятным и добавлена подсказка с попыткой угадать место назначения с учётом типа объекта;
  • В команде "git checkout [tree-ish] path..." обеспечен вывод числа путей, которые будут извлечены из индекса или дерева объектов (tree-ish);
  • В команду "git quiltimport" добавлена опция "--keep-non-patch";
  • Команды "git worktree remove" и "git worktree move" теперь можно применять при наличии в рабочем дереве неинициализированных субмодулей (ранее данные операции невозможно было использовать при наличии любого субмодуля);
  • Обновлены реализации команд "git multimail" и "git p4";
  • При указании опции "--format=" для веток, тегов и при переборе ссылок расширен перечень свойств объектов, извлекаемых через API object_info;
  • В команде "git rebase -i" обеспечен повторный запуск команды, указанной при помощи настройки 'exec', в случае если прошлая попытка не увенчалась успехом;
  • Обновлена реализация команды "git diff --color-moved-ws";
  • В "log --format" добавлена поддержка флага "%S" для отображения подсказки об источнике поступления коммита;
  • В скрипт "git instaweb", используемый для запуска интерфейса gitweb для доступа через Web к локальному репозиторию, добавлена поддержка применения предоставляемых в Python модулей для встраивания функциональности http-сервера (http.server=python), без необходимости установки внешних http-серверов, таких как lighttp и apache httpd;
  • Проведена оптимизация и чистка кода, связанного с проверкой несвязанных объектов. Обновлена реализация кэша для ускорения поиска несвязанных объектов;
  • Запрещено использование в коде функции "strncat()";
  • Реализация "git rebase --merge" переписана для использования общего кода, уже применяемого в "git rebase -i";
  • Некоторые части "git bisect", ранее реализованные на Shell, переписаны на языке Си;
  • В "git fetch-pack" и "git fetch --deepen=..." добавлена поддержка второй версии протокола Git. Команды "git fetch" и "git upload-pack" адаптированы для отправки данных через дополнительные каналы доставки при использовании второй версии протокола Git.


  1. Главная ссылка к новости (https://lkml.org/lkml/2019/2/2...)
  2. OpenNews: Особенность отображения проектов на GitHub создала видимость внедрения бэкдора в ядро Linux
  3. OpenNews: Выпуск распределенной системы управления исходными текстами Git 2.20
  4. OpenNews: GitHub выпустил Git LFS 2.6.0
  5. OpenNews: Microsoft успешно завершил сделку по покупке GitHub
  6. OpenNews: Выпуск распределенной системы управления исходными текстами Git 2.19
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/50202-git
Ключевые слова: git
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (56) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:25, 25/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > Код "git bisect" переписан на языке Си.

    А раньше был на C++ ?

     
     
  • 2.2, Аноним (2), 10:30, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Скорее, на Python.
     
  • 2.4, Crazy Alex (ok), 10:34, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    перл
     
  • 2.6, Аноним (6), 10:41, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Some part of it is written in shell script. I intend to convert it to portable C code thus making them builtins.

    https://summerofcode.withgoogle.com/archive/2016/projects/5595001820020736/

     

  • 1.8, Аноним (8), 10:58, 25/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +23 +/
    > для только что совершённых действий будет указано "N минут назад"

    В чатах такое часто стали делать, как же раздражает эта глупость, хочешь посмотреть когда сделана запись в логе, а тебе пишет "N минут назад" и сидишь вычитаешь от текущего времени, ппц.

     
     
  • 2.10, Аноним (6), 11:15, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Думаю, что испльзование для публикаций времени в формате "5 дней незад" стало одним из гвоздей в крышку гроба Google+. Как же это бесило.
     
  • 2.17, хотел спросить (?), 12:26, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    В Gitlab такое говнище раздражает. Правда можно посмотреть в тултипе.

    Но они так и не запилили нормально учет локального часового пояса.

    Дружная команды рубистов из Днепропетровска.

     
     
  • 3.25, AnonPlus (?), 14:17, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +7 +/
    На гитхабе тоже раздражает, приходится юзерскриптом возвращать стандартные таймстампы. Алло, я не долбаный калькулятор, я не расчётами заниматься пришёл.
     
  • 2.42, Цурюк (?), 19:01, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я не понимаю этого тупизма... Почему нельзя было просто ДОБАВИТЬ к полной дате в скобочках "(5 мин)"? (время жизни публикации)
     

  • 1.9, Аноним (9), 11:06, 25/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    > для только что совершённых действий будет указано "N минут назад"

    Это не human, а inhuman.

     
  • 1.11, shjfbg (?), 11:27, 25/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >Добавлена опциональная возможность применения алгоритма хэширования SHA-256 вместо скомпрометированного SHA-1

    Теперь индекс будет весить в 2 раза больше? SHA-3 не осилили?

     
     
  • 2.13, Аноним (6), 11:38, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Написано "sha-256 hash has been added", но думаю это опечатка, так как изначально они планировали добавить  SHA3-256.
     
     
  • 3.15, Аноним (15), 12:16, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не, всё же SHA-256: https://github.com/git/git/commit/0ed8d8da374f648764758f13038ca93af87ab800
     
     
  • 4.48, Илья (??), 21:28, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Как-то даже неловко на гит гита заходить
     
     
  • 5.56, Andrey Mitrofanov (?), 09:18, 26/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > неловко на гит гита

    И правильно.  Потому что это _веб_ репы гита.

    Твоя "шутка" прокатила бы на https://git-scm.com/download/ ...
    ..., если б тебе чуть больше повезло.

    [I][B]Git via Git[/B]

    If you already have Git installed, you can get the latest development version via Git itself:
    [CODE]git clone https://github.com/git/git

     
  • 2.18, Andrey Mitrofanov (?), 12:59, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >>Добавлена опциональная возможность применения алгоритма хэширования SHA-256 вместо скомпрометированного SHA-1
    > Теперь индекс будет весить в 2 раза больше? SHA-3 не осилили?

    Если захочешь и переключишь реп.  Или владельцы репо, который ты качаешь, переключат.  Или...

    В общем "можете не приходить, вычёркиваю".

    Пока, то есть.


    Пусть присылают больше атакуязвимостей.

    "" Objective
    ---------
    Migrate Git from SHA-1 to a stronger hash function.

    Background
    ----------
    [...]

    Git v2.13.0 and later subsequently moved to a hardened SHA-1
    implementation by default, which isn't vulnerable to the SHAttered attack.

    Git v2.13.0 and later subsequently moved to a hardened SHA-1 implementation by default that mitigates the SHAttered attack, but SHA-1 is still believed to be weak.

    [...]

    Thus Git has in effect already migrated to a new hash that isn't SHA-1 and doesn't share its vulnerabilities, its new hash function just happens to produce exactly the same output for all known inputs, ""
    --https://github.com/git/git/blob/master/Documentation/technical/hash-function-t


    "" Is Hardened SHA-1 vulnerable?

    No, SHA-1 hardened with counter-cryptanalysis (see ‘how do I detect the attack’) will detect cryptanalytic collision attacks. In that case it adjusts the SHA-1 computation to result in a safe hash. This means that it will compute the regular SHA-1 hash for files without a collision attack, but produce a special hash for files with a collision attack, where both files will have a different unpredictable hash. ""
    --https://shattered.io/

     
  • 2.31, хотел спросить (?), 14:39, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >>Добавлена опциональная возможность применения алгоритма хэширования SHA-256 вместо скомпрометированного SHA-1
    > Теперь индекс будет весить в 2 раза больше? SHA-3 не осилили?

    Как SHA3 помог бы?
    Размер хеша 224, 256, 384, 512


     

  • 1.12, myhand (ok), 11:36, 25/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > адаптивно выбирая формат в зависимости от давности события

    "После вчерашнего".  "Хрен знает когда".  Неужели прогресс дошел...

     
     
  • 2.43, Цурюк (?), 19:03, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    "Намедни", "надысь", "давеча" и прочие адаптивные формы великого и могучего! :)))
     

  • 1.19, Аноним (19), 13:13, 25/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Будет точнее писать, что новая hash функция - это SHA3-256, а не SHA-256.

    // b.

     
     
  • 2.20, Аноним (20), 13:30, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Там именно SHA-256, а не не SHA3-256

    https://github.com/git/git/commit/0ed8d8da374f648764758f13038ca93af87ab800

     
     
  • 3.29, Аноним (19), 14:29, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Там именно SHA3-256, а вы смотрите на старый commit.
     
     
  • 4.41, Аноним (20), 18:59, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Там именно SHA3-256, а вы смотрите на старый commit.

    Это вы не там смотрите, в текущем коде оставлен только SHA-256.

    https://github.com/git/git/tree/master/sha256
    https://github.com/git/git/commits/master/Documentation/technical/hash-functio
    https://github.com/git/git/commit/4b4e2918099600c1eefe7b5a71bf647803905b7e
    https://github.com/git/git/commit/13eeedb5d17ca3539600b6618d103b652ecc8ab0

     

  • 1.21, Аноним (21), 13:31, 25/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Когда уже исчезнут всякие свн и меркуриалы?Хочу чтоб везде был гит и тогда не будет проблем с взаимодействием.
     
     
  • 2.22, ПДК (?), 13:43, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Меркуриал тебе чем не угодил?
     
  • 2.26, Andrey Mitrofanov (?), 14:21, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Когда уже исчезнут всякие свн и меркуриалы?Хочу чтоб везде был гит и
    > тогда не будет проблем с взаимодействием.

    Ты того-этого, мон шер, новость-то почитай:  разарботчики поняли, что тебе нДравятся проблемы взимодействия с гит и встроили проблемы взаимодействия в твой гит, чтобы ты мог [проблемить?] сразу, когда ....  вот это самое вот ..... в гит.

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

    Да-а?!

     
  • 2.32, имя (?), 14:44, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    One Ring to rule them all,
    One Ring to find them,
    One Ring to bring them all
    And in the Darkness bind them.

    P.S. Хотелось, конечно, сперва написать что-то про рейх, народ и фюрера.

     
     
  • 3.45, Аноним (45), 19:18, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Един бог, един царь, един календарь.
     
  • 2.35, Аноним (35), 15:40, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    свн божественен для хранения больших двоичных файлов
     
     
  • 3.58, пох (?), 20:06, 26/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ой... то есть у гита и с ЭТИМ проблемы? 8-O

    ну хотя да, чо я, как маленький...

     
  • 2.49, Аноня (?), 21:31, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я бы тоже не против, но тогда microsoft встроят в гит visual студию и всё начнётся заново
     
  • 2.54, Аноним (54), 03:05, 26/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Когда уже исчезнут всякие свн и меркуриалы?Хочу чтоб везде был гит и тогда не будет проблем с взаимодействием.

    Ну зачем-же публично желать зла незнакомым людям?

     

  • 1.23, ПДК (?), 13:45, 25/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему же они не выбрали только SHA3-256?
     
     
  • 2.27, Andrey Mitrofanov (?), 14:23, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Почему
    >не
    >только

    https://github.com/git/git/blob/master/Documentation/technical/hash-function-t

    Чтоб немое кино не кончилось _до_ того, как звуковое началось.

     
     
  • 3.28, ПДК (?), 14:28, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А если без алегорий?
     

  • 1.30, Аноним (30), 14:33, 25/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зойчем strncat запретили?
     
     
  • 2.37, Andrey Mitrofanov (?), 16:03, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Зойчем strncat запретили?

    Готовятся к инте ^W поглощению Sysytem-D.  <///>

     

  • 1.33, Аноним (33), 15:15, 25/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Не понимаю, откуда столько ненавистников относительного формата времени? Во-первых, никто не отнимает возможность вывода по-старому, а во-вторых, разве мы не смотрим на время события для того, чтобы *понять* сколько времени прошло с момента события? Или у всех калькуляторы времени в головах?
     
     
  • 2.34, Аноним (34), 15:29, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А никто не хочет думать, что 14:30 в Австралии, Англии и Западном побережье США - это могут быть уже 14.30 двух разных дней (в смысле, две разные даты) - подавай точное время на клиенте 8) А какое оно будет точное? Сколько было у пользователя на часах в Австралии или у текущего клиента на часах? А если сервера в разных часовых поясах, вообще? Всем подавай 8:24, а по какому часовому поясу - не особо колышет, лишь бы 24.
     
     
  • 3.38, yet another anonymous (?), 16:39, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это ничего, что там ещё зона написана? (это если не пользоваться --date=, а если пользоваться, то принимать во внимание установленную зону).
     
  • 2.61, FSA (??), 09:01, 27/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Не понимаю, откуда столько ненавистников относительного формата времени?

    Может быть потому, что это было названо human или "в сокращённом читаемом виде". Назвали бы "относительным форматом времени", никто бы и не заметил.

     
  • 2.62, FSA (??), 09:07, 27/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Не понимаю, откуда столько ненавистников относительного формата времени?

    И ещё, вдогонку. Для меня human - это не тот самый относительный формат. И не тот формат, который используется, типа "Sat Feb 2 19:44:39 2019" - это просто какая-то каша. Зачем мне день недели? Почему дата идёт после месяца? Почему год идёт после времени? Человекочитаемый формат это "02.02.2019 19:44:39", ну или, на худой конец, "2019-02-02 19:44:39", тогда порядок цифр удобный и визуально можно быстро отсортировать даты.

     
     
  • 3.63, Аноним (63), 19:17, 27/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это ты ещё про мили, галоны и футы не слышал. Понимаешь у них там даже руль с другой стороны. Дикие люди к ним ещё не пришла цивилизация.
     
  • 3.64, myhand (ok), 19:26, 27/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А тест Тьюринга ты уже проходишь?
     

  • 1.36, Аноним (36), 15:58, 25/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Команды "git worktree remove" и "git worktree move" теперь можно применять при наличии в рабочем дереве неинициализированных субмодулей

    Офигеть, прогресс. Если у меня есть worktree мне по прежнему надо трахаться чтобы его тупо удалить.

     
     
  • 2.44, Цурюк (?), 19:12, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Добро пожаловать в git - "популярная" (ха-ха!) DVCS! :))))
     
     
  • 3.59, пох (?), 20:07, 26/02/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    все правильно, популярными становятся самые уродливые форматы.
    vhs не даст соврать.

     

  • 1.46, microcoder (ok), 20:22, 25/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, а есть ли файловая система подобная git? Или это сомнительное действо для уровня фаловой системы? Что хочу:
    Чтобы отслеживались файлы на разделе файловой системы по методу COW, т.е., если например перезаписывается файл, удаляется, то он заносился в историю и сохранялась его копия для последующего, возможного восстановления. Git при дополнении в его репозиторий копирует файлы для отслеживания, что явно избыточно на 100%.
     
     
  • 2.50, Аноня (?), 21:32, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ну ты же можешь в некоторых только папках развернуть репозитории
     
  • 2.53, all_glory_to_the_hypnotoad (ok), 23:19, 25/02/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Или это сомнительное действо для уровня фаловой системы?

    Да. Тем не менее ИИ наделали и такие решения, см. в поисковике как прикрутить { git, svn, ... } к fuse.

     
  • 2.55, lb426 (?), 08:16, 26/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    в операционной системе OpenVMS сохраняется вся история изменения файла.
    в виде копии.
     
     
  • 3.60, пох (?), 20:09, 26/02/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    угу, пока диск не лопнет. afair, никакого cow там в помине нет, это именно полные копии, на каждый чих.
    Копий метаинформации при этом не полагается.

     
  • 2.66, Аноним (66), 22:17, 27/02/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Seafile сохранит всю  историю ваших файлов на удаленное хранилище. Но это не фс, это сервис типа облака, хранения истории изменений, одна из его функций. Требования сервера по железу минимальные, raspberry Pi достаточно.
     

  • 1.51, all_glory_to_the_hypnotoad (ok), 21:44, 25/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В "git log" и другие команды добавлена опция "--date=human", позволяющая выводить даты в сокращённом читаемом виде...

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

     
     
  • 2.57, myhand (ok), 13:19, 26/02/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Выглядит крайне ужасно: едет форматирование

    Аллилуия!  Потому что не для роботов, как обычно, а для людей сделано.

    > что это за идиотский формат в каждой строчке.

    Тебе папа с мамой говорили "учи английский"?


     

  • 1.65, Den_den (?), 20:27, 27/02/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Microsoft пришла порядок навела!
     

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



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

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