The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск распределенной системы управления исходными текстами ..."
Отправлено opennews, 10-Май-17 11:20 
Доступен (https://github.com/blog/2360-git-2-13-has-been-released) выпуск распределенной системы управления исходными текстами Git 2.13.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/).


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


-  Устранена уязвимость (https://git.kernel.org/pub/scm/git/git.git/commit/?id=3ec804...) (CVE-2017-8386 (https://security-tracker.debian.org/tracker/CVE-2017-8386)), которая позволяет запустить внешние команды при подсоединении к репозиторию через SSH в режиме "git-shell" (оболочка, ограничивающая ssh-клиентов только  операциями с git). В частности, при выполнении "git upload-pack --help" запускается интерактивный интерфейс для постраничного просмотра подсказки, из которого можно вызвать произвольные программы на стороне удалённой системы. Конфигурации, использующие git-shell вместе с gitolite проблеме не подвержены;

-  Добавлен код для выявления в Git-репозиториях известных коллизий (https://www.opennet.ru/opennews/art.shtml?num=46091) в хэшах SHA-1, который поможет защититься от возможных атак (https://www.opennet.ru/opennews/art.shtml?num=46232) через подмену репозитория. В дальнейшем планируется избавиться (https://github.com/git/git/compare/c703555cc89cf6aedf549a123...) от жёсткой привязки Git от SHA-1 и
добавить (https://docs.google.com/document/d/18hYAQCTsDgaFUo-VJGhT0Uqy...) опциональную поддержку SHA3-256, которая сможет применяться параллельно с SHA-1. Таким образом, переведённый на  SHA3-256 локальный репозиторий сможет взаимодействовать с Git-серверами (как минимум на уровне push/fetch), поддерживающими только SHA-1, а пользователи смогут одновременно использовать идентификаторы объектов SHA-1 и SHA3-256;

-   Расширены возможности по использованию шаблонов (https://git-scm.com/docs/gitglossary#gitglossary-aiddefpaths...) файловых путей в командах git. В частности, добавлен сокращённый оператор для исключения путей "^", который может использоваться вместо выражения ":(exclude)" и вместо ранее применяемого сокращения "!", которое требовало экранирования блока кавычками. Например, если раньше для выполнения выборки файлов с расширениями, отличными от ".c", требовалось выполнить:


   git grep this.is.a -- src ':(exclude)*.c'
   или
   git grep this.is.a -- src ':!*.c'


то сейчас можно упростить конструкцию до


   git grep this.is.a -- src :^*.c


Кроме того, в новой версии представлен новый оператор ":(attr)", который позволяет выбрать файлы, соответствующие заданному списку атрибутов. Например, для вывода файлов, хранимых в LFS (хранилище больших бинарных данных) можно выполнить:


   git ls-files ':(attr:filter=lfs)'


При желании можно определить и привязать свои атрибуты и комбинировать attr с другими операторами:

  
   echo 'libfoo/ vendored' >>.gitattributes
   echo 'imported-tool/ vendored' >>.gitattributes
   git grep -i license -- ':(attr:vendored)'
   git grep foobar -- ':(exclude,attr:vendored)'

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

~/.gitconfig:

   [includeIf "gitdir:~/work/"]
     path = .gitconfig-work
   [includeIf "gitdir:~/play/"]
     path = .gitconfig-play

~/.gitconfig-work:

   [user]
   name = Serious Q. Programmer
   email = serious.programmer@business.com

~/.gitconfig-play:

   [user]
   name = Random J. Hacker
   email = hack75@0dayf0r4ou.com

-  В команде "git log" по умолчанию активирован режим   "--decorate=auto", при котором коммиты, указывающие непосредственно на ветку или тег, выделяются и выводятся c именем ветки;

-  Код организации вывода в "git branch"  переведён на использование системы ref-filter, которая также используется в "git for-each-ref"
и "git tag", что позволяет использовать в "git branch"  аналогичные опции форматирования вывода ("--format=");

-  В "git branch", "git tag" и "git for-each-ref" добавлена опция "--no-contains", которая дополняет опцию "--contains" и позволяет запросить теги или ветки, в которых отсутствует определённая ошибка или исправление;

-  В "git stash save" добавлена поддержка шаблонов файловых путей;

-  Спецназвания веток @{upstream}, @{u} и @{push} теперь не чувствительны к регистру символов (часто, после ввода "{" разработчики допускали опечатку и вводили первый символ с большой буквы);

-  В дополнение к реализованной в прошлых выпусках возможности рекурсивного обхода субмодулей в командах checkout, grep и ls-files, в  Git 2.13 реализован вывод дополнительной информации о субмодулях при выполнении команды "git status --short".


URL: http://lkml.iu.edu/hypermail/linux/kernel/1705.1/01336.html
Новость: http://www.opennet.ru/opennews/art.shtml?num=46523

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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