Представлен релиз распределенной системы управления исходными текстами Git 1.7.10. Git является одной из самых эффективных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории от изменений задним числом используются криптографические методы, также возможна привязка цифровых подписей разработчиков к тегам и коммитам. Из проектов, разрабатываемых с использованием Git, можно отметить ядро Linux, Perl, Eclipse, GNOME, KDE, Qt, Ruby on Rails, Android, PostgreSQL, X.org,
Некоторые изменения:
- При выполнении «git merge» отныне вызывается интерактивный редактор для добавления пояснения о результирующем слиянии, по аналогии с «git commit». В случае использования «git merge» в скриптах, для отмены нового поведения следует установить переменную окружения GIT_MERGE_AUTOEDIT в значение «no» или использовать опцию «—no-edit»;
- В настоящее время, если не указать какие ветки и теги использовать при выполнении «git push», используется правило «matching refs» (push.default=matching), которое выбирает для обновления все внешние ветки и теги с именами, совпадающими с локальными. В будущих версиях Git поведение будет изменено и изменения будут затрагивать только текущую ветку (push.default=upstream или push.default=current);
- Обновлён интерфейс gitk, например, переработан диалог настройки и добавлена поддержка наглядного сравнения двух коммитов;
- В «gitweb» реализована подсветка результатов поиска, осуществлено чтение из репозитория только необходимых для текущей задачи данных (а не всех которые могут понадобиться для различных задач), обеспечен вывод списка проектов, размещённых в указанной директории;
- В HTTP-транспорте реализована поддержка работы через прокси с аутентификацией;
- В конфигурации добавлена поддержка директивы «include», позволяющей включать в текущую позицию содержимое других файлов;
- Возможность подключения обязательных к применению фильтров контента;
- В «git clone» добавлена поддержка опции «—single-branch» для ограничения клонирования одной веткой;
- При выполнении «git clone» c указанием тега через опцию «—branch» (например, «—branch=v1.0») теперь осуществляется отсоединение HEAD из результирующего репозитория;
- Вывод «git diff —stat» теперь автоматически подстраивается под широкоформатные терминалы и использует максимально возможную ширину строки;
- Обновлён фильтр «diff-highlight» из contrib, который теперь генерирует более эстетически приятный вывод;
- В «fsck» добавлена опция «—no-dangling» для пропуска информации о висящих объектах;
- В операциях «git log -G» и «git log -S» добавлена поддержка опции «-i» для поиска без учёта регистра символов;
- В «git push» добавлена опция «—prune» по аналогии с «git fetch»;
- Содержимое директории, используемой для хранения первичного проекта, обслуживаемого через «git submodule», теперь может быть перенесено в другое место;
- При выполнении «git tag —list» появилась возможность ограничения вывода только для объекта, указанного через «—points-at object»;
- Добавлен скрипт «diffall», предназначенный для выполнения за один проход сравнения двух ревизий на уровне содержимого директорий;
- В «git difftool/mergetool» добавлена поддержка DeltaWalker;
- Улучшена работа инструментов для интеграции со сторонними системами: «git-p4», «git-svn», «vcs-svn»;
- Увеличена производительность «git fetch» для репозиториев с чрезмерным числом ссылок, за счёт избавления от ненужных вызовов функций парсинга объектов;
- В тестовом пакете реализована поддержка параллельного выполнения заданий, что является первым шагом к созданию фреймворка для оценки производительности.