The OpenNET Project / Index page

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

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

05.08.2017 22:20

Состоялся выпуск распределенной системы управления исходными текстами Git 2.14.0. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям задним числом используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. Из проектов, разрабатываемых с использованием Git, можно отметить ядро Linux, Android, LibreOffice, Systemd, X.Org, Wayland, Mesa, GStreamer, Wine, Debian, DragonFly BSD, Perl, Eclipse, GNOME, KDE, Qt, Ruby on Rails, PostgreSQL, VideoLAN, PHP, Python, Xen, Minix.

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

  • В команде "git diff" по умолчанию задействован улучшенный алгоритм компоновки отступов, включающий дополнительную эвристику для корректного отображения логики изменений, в которых фигурируют повторяющиеся блоки. Для отключения эвристики в настройках следует указать "diff.indentHeuristic=false";
  • При обработке Perl-совместимых регулярных выражений добавлена поддержка JIT-компиляции и обеспечена возможность сборки с библиотекой PCRE v2, которая теперь рекомендована для применения (ранее в git поддерживалась только сборка с библиотекой PCRE v1, сопровождение которой теперь ограничивается исправлением проблем критического характера). Для сборки с PCRE v2 вместо "USE_LIBPCRE=Yes" следует указать "USE_LIBPCRE2=Yes";
  • Добавлена возможность настройки цветов имён текущей ветки и отслеживаемых внешних веток, отображаемых в выводе "git status --short --branch";
  • В команду "git clone" добавлена опция "--no-tags", позволяющая изначально не извлекать все теги и настроить tagopt, чтобы не следовать тегам при последующих выборках;
  • В "git archive --format=zip" обеспечена поддержка расширения zip64 для создания архивов, превышающих 4 Гб;
  • В "git reset" добавлена опция "--recurse-submodules" для рекурсивного обхода субмодулей;
  • В "git diff --submodule=diff" по умолчанию обеспечен рекурсивный обход вложенных субмодулей;
  • В "git repack" добавлена опция "--threads=n", указанное в которой число потоков также передаётся в pack-objects;
  • В "git send-email" задействован запуск обработчика sendemail-validate для проверки и при необходимости блокирования сообщений перед их отправкой;
  • Улучшено автоопределение путей, указанных при запуске команд вида "git cmdname --options" без их явного отделения от ревизий разделителем '--';
  • В "filter-branch" добавлен псевдофильтр "--setup" для определения функций и переменных, которые могут использоваться в других фильтрах;
  • В "git send-email" добавлены опции "--batch-size" и "--relogin-delay" для обхода ограничений почтовых серверов, лимитирующих число сообщений, которые можно отправить в рамках одного сеанса;
  • В "git pull --rebase --recurse-submodules" обеспечено выполнение операции rebase для ветки во всех привязанных субмодулях;
  • По аналогии с "git grep" в "git log" добавлена опция "-P" как синоним "--perl-regexp";
  • Добавленный в Git 2.13 код для выявления в Git-репозиториях известных коллизий в хэшах SHA-1 теперь интегрирован в git.git как субмодуль (это первый субмодуль в git.git). Для получения данного субмодуля следует клонировать git.git с опцией "--recurse-submodules".


  1. Главная ссылка к новости (https://lkml.org/lkml/2017/8/4...)
  2. OpenNews: Microsoft переводит разработку Windows на Git
  3. OpenNews: Выпуск распределенной системы управления исходными текстами Git 2.13.0
  4. OpenNews: GitLab запустил зеркало GNU Savannah
  5. OpenNews: Выпуск распределенной системы управления исходными текстами Git 2.12.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/46976-git
Ключевые слова: git
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (16) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 06:09, 06/08/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Вот здорово, свежий гит выходит - и я уверен что никаких проблем с обновлением не будет.
     
     
  • 2.7, X4asd (ok), 09:52, 08/08/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > ...и я уверен что никаких проблем с обновлением не будет.

    это ты сходил на тренинг повышения чувства уверенности? :-D :-D

    я тебе по секрету скажу -- с обновлениями проблем не бывает почти всегда -- это штатная процедура.

    в независимости от твоей уверенности.

    особенно если читать release notes перед обновлением

     

  • 1.3, freehck (ok), 11:17, 06/08/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > В "git reset" добавлена опция "--recurse-submodules" для рекурсивного обхода субмодулей;

    Бомба.

    > По аналогии с "git grep" в "git log" добавлена опция "-P" как синоним "--perl-regexp";

    Отлично. Теперь ждём, когда обёртки подхватят. Было бы очень здорово отфильтровать в логе инфу сразу по нескольким багам.

     
     
  • 2.4, MadeInRussia (?), 21:24, 06/08/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >> По аналогии с "git grep" в "git log" добавлена опция "-P" как синоним "--perl-regexp";
    > Отлично. Теперь ждём, когда обёртки подхватят. Было бы очень здорово отфильтровать в логе инфу сразу по нескольким багам.

    Так это же уже раньше было, просто в виде "--perl-regexp", сейчас просто добавили сокращенный флаг "-P". Если обёртки хотели, они уже могли и раньше это использовать.

     
     
  • 3.5, freehck (ok), 11:25, 07/08/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Так это же уже раньше было, просто в виде "--perl-regexp", сейчас просто
    > добавили сокращенный флаг "-P". Если обёртки хотели, они уже могли и
    > раньше это использовать.

    Увы, не везде ещё. Юзаю последний стабильный релиз (март 2017) magit 2.10.3, --perl-regexp ещё не завезли. Впрочем, есть интеграция с git log --grep, но я как-то не сообразил, как мне там "или" проставить: шаблоны типа "bug-1|bug-2" или "bug-(1|2)" не работают, увы.

    Но тем не менее радует внимание апстрима к этой фиче. Вообще, чем дожидаться её интеграции в обёртки, возможно, имеет смысл просто взять и написать. Но время, время... )

    UPD: Ваше сообщение сподвигло меня на ещё одну проверку magit. Оказывается, шаблон "bug-1\|bug-2" работает. В прошлый раз у меня как-то не возникло мысли о необходимости экранирования этого символа. Короче, спасибо!

     
     
  • 4.6, Led (ok), 23:15, 07/08/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Оказывается, шаблон "bug-1\|bug-2" работает. В прошлый раз у меня как-то не возникло мысли
    > о необходимости экранирования этого символа. Короче, спасибо!

    Его и в grep(1), и в sed(1) надо экранировать, чтоб работало как ты хотел.
    Просто в grep(1) можно использовать '-E', а в sed(1) - '-r', чтоб не экранировать, но это уже так - "расширения"...

     
     
  • 5.10, freehck (ok), 13:29, 08/08/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Просто в grep(1) можно использовать '-E', чтоб не экранировать, но это уже так - "расширения"...

    Во. Сколько нового узнаёшь порой из комментариев на OpenNet. )

    А я-то всегда, когда нужен был пайп, использовал egrep. Теперь внимательнее почитал man по части ERE. Спасибо. Буду знать.

     
  • 4.8, X4asd (ok), 10:00, 08/08/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Увы, не везде ещё. Юзаю последний стабильный релиз (март 2017) magit 2.10.3, --perl-regexp ещё не завезли.

    тоже мне новость! любители IDE (в данном случае Emacs в качестве IDE) как обычно страдают от устаревших версий поведений своих IDE-компонентов!

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

     
     
  • 5.9, freehck (ok), 13:22, 08/08/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Толсто. :/

    Во-первых, тот же Magit в "Emacs как IDE" имеет ряд фишек, которых нет в git cli. Например, в консольной версии git нет возможности оперировать кусками (hunk-ами). То бишь в magit ты можешь выбрать конкретный ханк конкретного коммита и ревертнуть только его. В консоли же -- либо весь коммит, либо руками ворочай.

    Во-вторых, задача IDE -- мелкая помощь в работе: подсветка синтаксиса и парных конструкций (типа скобок, if-ов и т.п.), автодополнение имён переменных, автоматическая расстановка отступов, подсветка ошибок на лету. Качество кода и скорость его написания от этого только выигрывают. Странно винить IDE в том, в чём по сути надо винить криворукую макаку, возомнившую себя программистом.

     
     
  • 6.11, Led (ok), 21:48, 08/08/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Во-первых, тот же Magit в "Emacs как IDE" имеет ряд фишек, которых
    > нет в git cli. Например, в консольной версии git нет возможности
    > оперировать кусками (hunk-ами). То бишь в magit ты можешь выбрать конкретный
    > ханк конкретного коммита и ревертнуть только его. В консоли же --
    > либо весь коммит, либо руками ворочай.

    Что-то вроде такого?
    git revert --no-commit HEAD
    git reset
    git checkout -p
    git add ...
    git commit -m ...

    Или в Magit какая-то магия используется?:)

     
     
  • 7.12, freehck (ok), 22:50, 08/08/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Что-то вроде такого?
    > git revert --no-commit HEAD
    > git reset
    > git checkout -p
    > git add ...
    > git commit -m ...
    > Или в Magit какая-то магия используется?:)

    Почти, только тут управление всё равно на уровне файла, а в magit, например, если у тебя в файле три изменения (ну допустим в 1й строчке, 100й и 200й), то ты можешь выбрать конкретный кусочек патча (ханк вокруг 100й строчки) и нажатием клавиши v его ревертнуть.

     
     
  • 8.13, Led (ok), 23:41, 08/08/2017 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Так и здесь по ханкам git checkout -p как раз это и... текст свёрнут, показать
     
     
  • 9.15, freehck (ok), 11:37, 09/08/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Посмотрел Здорово, не знал, что в консольном git есть такое Да, пожалуй, это п... текст свёрнут, показать
     
     
  • 10.16, Andrey Mitrofanov (?), 12:43, 09/08/2017 [^] [^^] [^^^] [ответить]  
  • +/
    https www kernel org pub software scm git docs git-rebase html _splitting_comm... текст свёрнут, показать
     
  • 6.14, anonymous (??), 00:15, 09/08/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >Например, в консольной версии git нет возможности оперировать кусками (hunk-ами).

    Что за "консольная версия git"?
    Какой-то фронтенд для гита?

    В гите есть возможность оперировать кусками (hunk-ами)
    Например
    git help add
    ...
    -p, --patch
               Interactively choose hunks of patch between the index and the work
               tree and add them to the index. This gives the user a chance to
               review the difference before adding modified contents to the index.
    ...

    или
    git help checkout
    ...
    -p, --patch
               Interactively select hunks ...

     

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



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

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