The OpenNET Project / Index page

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



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

"Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от opennews (??) on 06-Авг-17, 06:09 
Состоялся (https://lkml.org/lkml/2017/8/4/481) выпуск распределенной системы управления исходными текстами Git 2.14.0 (http://git-scm.com/). Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям задним числом используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. Из проектов, разрабатываемых с использованием Git, можно отметить ядро Linux (https://git.kernel.org/cgit/linux/kernel/git/stable/linux-st.../), Android (https://android.googlesource.com/), LibreOffice (http://cgit.freedesktop.org/libreoffice), Systemd (http://cgit.freedesktop.org/systemd), X.Org (http://cgit.freedesktop.org/xorg), Wayland (http://cgit.freedesktop.org/wayland), Mesa (http://cgit.freedesktop.org/mesa/), GStreamer (http://cgit.freedesktop.org/gstreamer), Wine (http://source.winehq.org/git/wine.git), Debian (http://anonscm.debian.org/gitweb), DragonFly BSD (http://gitweb.dragonflybsd.org/?p=dragonfly.git;a=summary), Perl (http://perl5.git.perl.org/perl.git), Eclipse (http://git.eclipse.org), GNOME (http://git.gnome.org/browse/), KDE (https://projects.kde.org/projects), Qt (https://code.qt.io/cgit/), Ruby on Rails (https://github.com/rails/rails), PostgreSQL (http://git.postgresql.org/gitweb/), VideoLAN (http://git.videolan.org), PHP (http://git.php.net/), Python (https://github.com/python/cpython), Xen (http://xenbits.xen.org/gitweb/), Minix (http://git.minix3.org/).


По сравнению с прошлым выпуском в новую версию принято  727 изменений, подготовленных при участии  66 разработчиков, из которых 18 впервые приняли своё участие в разработке. Основные изменения (https://github.com/git/git/blob/v2.14.0/Documentation/RelNot...):

-  В команде "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-репозиториях известных коллизий (https://www.opennet.ru/opennews/art.shtml?num=46091) в хэшах SHA-1 теперь интегрирован в  git.git как субмодуль (это первый субмодуль в git.git). Для получения данного субмодуля следует клонировать git.git с опцией "--recurse-submodules".


URL: https://lkml.org/lkml/2017/8/4/481
Новость: http://www.opennet.ru/opennews/art.shtml?num=46976

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

Оглавление

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

1. "Выпуск распределенной системы управления исходными текстами ..."  –2 +/
Сообщение от Аноним (??) on 06-Авг-17, 06:09 
Вот здорово, свежий гит выходит - и я уверен что никаких проблем с обновлением не будет.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Выпуск распределенной системы управления исходными текстами ..."  +3 +/
Сообщение от freehck email(ok) on 06-Авг-17, 11:17 
> В "git reset" добавлена опция "--recurse-submodules" для рекурсивного обхода субмодулей;

Бомба.

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

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

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

4. "Выпуск распределенной системы управления исходными текстами ..."  +4 +/
Сообщение от MadeInRussia on 06-Авг-17, 21:24 
>> По аналогии с "git grep" в "git log" добавлена опция "-P" как синоним "--perl-regexp";
> Отлично. Теперь ждём, когда обёртки подхватят. Было бы очень здорово отфильтровать в логе инфу сразу по нескольким багам.

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

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

5. "Выпуск распределенной системы управления исходными текстами ..."  +2 +/
Сообщение от freehck email(ok) on 07-Авг-17, 11:25 
> Так это же уже раньше было, просто в виде "--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 | Наверх | Cообщить модератору

6. "Выпуск распределенной системы управления исходными текстами ..."  +1 +/
Сообщение от Led (ok) on 07-Авг-17, 23:15 
> Оказывается, шаблон "bug-1\|bug-2" работает. В прошлый раз у меня как-то не возникло мысли
> о необходимости экранирования этого символа. Короче, спасибо!

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

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

7. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от X4asd (ok) on 08-Авг-17, 09:52 
> ...и я уверен что никаких проблем с обновлением не будет.

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

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

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

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

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

8. "Выпуск распределенной системы управления исходными текстами ..."  –1 +/
Сообщение от X4asd (ok) on 08-Авг-17, 10:00 
> Увы, не везде ещё. Юзаю последний стабильный релиз (март 2017) magit 2.10.3, --perl-regexp ещё не завезли.

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

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

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

9. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от freehck email(ok) on 08-Авг-17, 13:22 
Толсто. :/

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

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

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

10. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от freehck email(ok) on 08-Авг-17, 13:29 
> Просто в grep(1) можно использовать '-E', чтоб не экранировать, но это уже так - "расширения"...

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

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

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

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

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

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

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

12. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от freehck email(ok) on 08-Авг-17, 22:50 
> Что-то вроде такого?
> git revert --no-commit HEAD
> git reset
> git checkout -p
> git add ...
> git commit -m ...
> Или в Magit какая-то магия используется?:)

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

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

13. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Led (ok) on 08-Авг-17, 23:41 
>[оверквотинг удален]
>> git revert --no-commit HEAD
>> git reset
>> git checkout -p
>> git add ...
>> git commit -m ...
>> Или в Magit какая-то магия используется?:)
> Почти, только тут управление всё равно на уровне файла, а в magit,
> например, если у тебя в файле три изменения (ну допустим в
> 1й строчке, 100й и 200й), то ты можешь выбрать конкретный кусочек
> патча (ханк вокруг 100й строчки) и нажатием клавиши v его ревертнуть.

Так и здесь по "ханкам": "git checkout -p" как раз это и делает.

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

14. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от anonymous (??) on 09-Авг-17, 00:15 
>Например, в консольной версии 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 ...

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

15. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от freehck email(ok) on 09-Авг-17, 11:37 
> Так и здесь по "ханкам": "git checkout -p" как раз это и делает.

Посмотрел. Здорово, не знал, что в консольном git есть такое. Да, пожалуй, это почти оно.

Единственное что, всё-таки тут надо сначала ревертнуть целиком коммит, ресетнуть его, а потом выкинуть все ханки коммита, кроме того, который надо оставить... В magit же просто переходишь в описание коммита в логе, выбираешь конкретный ханк, и его обращаешь.

Да что там. Вот гляньте лучше скринкаст:
http://exchange.freehck.ru/share/magit-hunk-screencast.ogv

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

16. "Выпуск распределенной системы управления исходными текстами ..."  +/
Сообщение от Andrey Mitrofanov on 09-Авг-17, 12:43 
>> Так и здесь по "ханкам": "git checkout -p" как раз это и делает.
> Посмотрел. Здорово, не знал, что в консольном git есть такое. Да, пожалуй,
> это почти оно.

https://www.kernel.org/pub/software/scm/git/docs/git-rebase....
+оттуда ссылка на
https://www.kernel.org/pub/software/scm/git/docs/git-add.htm...
, поминающий слово "split" в команде patch

...не то, чтобы это хоть зачем-нибудь кому-то надо было...

> Единственное что, всё-таки тут надо сначала ревертнуть целиком коммит, ресетнуть его, а

Как это страшно!

> http://exchange.freehck.ru/share/magit-hunk-screencast.ogv

Кстати, учиться pip-у и js-у настоящим https://asciinema.org/browse образом.

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


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

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




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

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