Релиз распределенной системы управления исходными текстами Git 1.8.2
15 марта 2013 года
Доступен релиз распределенной системы управления исходными текстами Git 1.8.2. 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, Xen, Minix.
Из изменений в Git 1.8.2 можно отметить:
- Начальная поддержка платформ QNX и z/OS UNIX System Services;
- Добавлена подсветка вывода результатов выполнения тестов: зелёным помечены пройденные без ошибок тесты, красным - тесты при выполнении которых возникли проблемы, желтым - выполнение которых вызывает вопросы, синим - информативные результаты;
- Проведена унификация наименований в документации. Для продукта и связанных с ним технологий рекомендуется использовать имя Git. В контексте выполнения конкретных команд указывается git. Имя GIT не рекомендовано для использования;
- Дополнительный скрипт (contrib/completion), применяемый в системе автодополнения для предложения вариантов часто используемых путей, модифицирован для более точного соответствия предложений особенностям тех или иных команд (например для "git add" не предлагаются немодифицированные пути);
- При задании шаблона в файлах .gitignore и .gitattributes теперь допустимо использовать маску "**/" для допустимости нулевого и более высокого уровня вложенности поддиректории. Т.е. "foo/**/bar" сработает как при наличии bar в директории foo так и если bar находится в поддиректории директории foo;
- Разделитель аргументов и путей в командной строке "--" теперь не обязательно использовать для маски пути ":/", например, вместо "git cmd -- :/" можно указать "git cmd :/".
- В "git blame" и "git diff" добавлена поддержка опции "--no-follow";
- Для помощи в отладке файлов .gitignore добавлена новая команда "git check-ignore";
- Команда "git cherry-pick" теперь может применяться для повтора корневого коммита для несозданной ветки;
- В конфигурацию добавлены переменные commit.cleanup = 'whitespace' и setting diff.algorithm для использования опции --cleanup=whitespace в "git commit" и выбора нестандартного алгоритма для команды "git diff";
- В команду "git format-patch" добавлена опция "-v $count", при указании которой к именам файлов с сохраняемыми патчами добавляется строка "v$count-" и в файлах используется префикс "PATCH v$count", что позволяет сохранять патчи под разными именами;
- В команды, подобные "git log", добавлена опция "--use-mailmap" для перезаписи имён и адресов в соответствии с механизмом mailmap;
- При указании "git log --cc --graph" теперь отображается вывод отличий, комбинированный с графом предков;
- В "git mergetool" и "git difftool" обеспечен вывод списка доступных бэкендов в более непротиворечивой форме;
- Для обновления тега через "git push" теперь нужно всегда указывать опцию "-f" (--force);
- Обновлена реализация команды "git fast-export", которую теперь допустимо использовать в контексте интерфейса внешних хелперов;
- В директорию contrib/ добавлен внешний хэлпер для взаимодействия с репозиториями bzr;
- В реализацию "git p4" внесена большая порция исправлений, связанных с обработкой веток. Обеспечена поддержка использования с Python 2.4/2.5 и решены проблемы с совместимостью с окружением Cygwin;
- В "git fsck" добавлена проверка на наличие в дереве объектов, которых там быть не должно (например, ".", ".git" и "..");
- Проведена оптимизация кода сопоставления путей, содержащих маски;
- Переработана и ускорена реализация команды "git reset";
- Обновлена реализация команды "imap-send", в которой задействован уже используемый в команде http-push код квотинга XML;
- Добавлена возможность сборки с опцией USE_WILDMATCH=YesPlease, активирующей альтернативную реализацию логики сопоставления шаблонов для ссылок и путей в репозитории. Основное отличие новой реализации в поддержке маски "**/" для многоуровневых путей ("refs/**/master" сработает для "refs/heads/master" и "refs/remotes/origin/master").
В анонсе также отмечается, что начиная с выпуска Git 2.0 будет изменено поведение команды "git push" по умолчанию. В ситуации когда при выполнении "git push" явно не указано что именно помещать в репозиторий ранее использовалась семантика "matching", при которой для обновления выбирались все внешние ветки и теги с именами, совпадающими с локальными. В будущем поведение будет изменено и по умолчанию будет применяться семантика "simple", при которой изменения отправляются только из текущей ветки в ветку с тем же именем, в случае если локальная ветка назначена для интеграции с удалённой веткой. Переопределить новое поведение можно через конфигурационную переменную "push.default".
При неуказании добавляемых путей при выполнении "git add -u" и "git add -A", начиная с версии Git 2.0 данные команды будут применяться для всего репозитория, а не иерархии относительно текущей поддиректории, что соответствует поведению "git commit -a" и других похожих команд. Для распространения действия только начиная с текущей директории следует явно указывать текущий путь, например, "git add -u .".
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.