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

Материал из Викиновостей, свободного источника новостей

2 января 2013 года

Увидел свет релиз распределенной системы управления исходными текстами Git 1.8.1. Git является одной из самых эффективных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям задним числом используются криптографические методы, также возможна привязка цифровых подписей разработчиков к тегам и коммитам. Из проектов, разрабатываемых с использованием Git, можно отметить ядро Linux, Android, Libreoffice, Systemd, X.Org, Wayland, Mesa, Gstreamer, Wine, Debian (Архивная копия от 14 июля 2014 на Wayback Machine), DragonFly BSD, Perl, Eclipse, GNOME, KDE, Qt (Архивная копия от 30 июля 2016 на Wayback Machine), Ruby on Rails, PostgreSQL, VideoLAN, PHP (Архивная копия от 8 ноября 2020 на Wayback Machine).

В анонсе новой версии отмечается, что в одном из будущих значительных выпусков Git будет изменено поведение команды "git push" по умолчанию. В ситуации когда при выполнении "git push" явно не указано что именно помещать в репозиторий ранее использовалась семантика "matching", при которой для обновления выбирались все внешние ветки и теги с именами, совпадающими с локальными. В будущем поведение будет изменено и по умолчанию будет применяться семантика "simple", при которой изменения отправляются только из текущей ветки в ветку с тем же именем, в случае если локальная ветка назначена для интеграции с удалённой веткой. Переопределить новое поведение можно через конфигурационную переменную "push.default".

Кроме того, в одном из будущих выпуском может быть прекращена поддержка команды "git branch --set-upstream", которая объявлена устаревшей из-за того, что не редки случаи указания по ошибке "git branch --set-upstream origin/master", что приводило к созданию локальной ветки "origin/master" для интеграции с текущей загруженной веткой, что явно отличается от того, что ожидал получить пользователь. В качестве замены следует использовать команду "git branch [-u|--set-upstream-to]". Окончание "-to" поможет исключить ошибочную трактовку назначения опции;

Из изменений в Git 1.8.1 можно отметить:

  • Для tcsh и zsh добавлены скрипты для автодополнения опций командной строки git;
  • В директорию contrib/completion добавлен скрипт "git-prompt" для раскраски подсказок в приглашении ввода;
  • Убрано обходное решение для проблемы в утилите less, приводящей к молчаливому завершению работы при изменении размера терминала. Проблема устранена в релизе less 406, выпущенном ещё в 2007 году;
  • При выполнении команды "git checkout" теперь выводится информация о том, насколько значительны расхождения с внешней веткой и приводятся советы как осуществить синхронизацию веток через операции push или pull;
  • При выполнении "git config --get" в случае наличия дублирующихся опций в файле конфигурации, вместо вывода ошибки теперь применяется последнее заданное значение;
  • Добавлена конфигурационная директива "diff.context" для задания числа строк по умолчанию, выводимых в качестве контекста до или после изменённой строки (по умолчанию 3);
  • В команду "git format-patch" добавлена опция "--notes=ref" для указания примечания к коммиту, после вывода строки "---";
  • Команда "git log -p -Sстрока" отныне осуществляет поиск строки после использования фильтра textconv (ранее поиск выполнялся без преобразования блобов);
  • В "git log --grep=pcre" теперь учитываются особенности регулярных выражений Perl, если в конфигурации задана директива "grep.patterntype = perl";
  • В команде "git replace -d объект" объект теперь может интерпретироваться не только по полному имени, но и в форме хэша SHA-1;
  • Команда "git rm $submodule" может быть использована для удаления рабочего дерева субмодуля без потери встроенных в него репозиториев;
  • В команде "git send-email" теперь запрещено указание после "Cc:" лишних строк после email, например, строка "Cc: Stable Kernel stable@k.org # for v3.2 and up" будет обрезана до "Cc: Stable Kernel stable@k.org";
  • В команду "git submodule add" добавлена опция "--name" для добавления нового субмодуля из директории уже содержащей субмодули;
  • В команду "git submodule sync" добавлена опция "--recursive";
  • Добавлена переменная конфигурации "diff.submodule" для задания используемой по умолчанию опций для команды "git diff --submodule";
  • В команду "git symbolic-ref" добавлена опция "-d $symref" для удаления именованных символических ссылок;
  • В "git cvsimport" добавлена поддержка указания часового пояса для каждого автора;
  • В состав включён вспомогательный внешний интерфейс (remote-helper) для взаимодействия с репозиториями Subversion;
  • Добавлен новый remote-helper для Mercurial;
  • Добавлена поддержка сборки в окружении Cygwin с новым набором заголовочных файлов;
  • Обновлён код поддержки сборки с использованием инструментария MinGW;
  • Произведена оптимизация логики генерации начального списка доступных ссылок из "upload-pack", выполняемая на другой стороне соединения при запуске "git fetch";
  • Проведена оптимизация логики поиска набора атрибутов, соответствующих указанному пути;
  • Для ускорения команд "git diff-index" и "git update-index" задействован предварительно загружаемый индекс, что позволило повысить скорость работы на системах с медленным вызовом функции stat (в том числе в Linux).

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Релиз распределенной системы управления исходными текстами Git 1.8.1», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.