Как стать автором
Обновить
57.3

Git *

Система управления версиями файлов

Сначала показывать
Порог рейтинга

Состоялся выпуск распределенной системы управления исходными текстами Git 2.45.

Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток.

Для обеспечения целостности истории и устойчивости к изменениям «задним числом» используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов.

Исходный Код Git распространяется под лицензией GPLv2+.

По сравнению с прошлым выпуском в новую версию Git принято 540 изменений, подготовленных при участии 96 мейнтейнеров проекта, из которых 35 впервые приняли участие в разработке.

Основные изменения:

  • добавлена предварительная поддержка бэкенда "reftable" для эффективного хранения в репозитории ссылок на ветки и теги;

  • предоставлены средства для обеспечения переносимости между идентификаторами объектов на базе хэшей SHA-1 и SHA-256;

  • добавлена новая команда "git reflog list" для показа известных reflog-ов и соответствующих им ссылок на теги и ветки;

  • в команде "git checkout -p" разрешено использовать символ "@" в качестве синонима имени "HEAD";

  • предоставлена возможность определения альтернативных префиксов для вывода "git diff", отображаемых перед файловым путём;

  • добавлен параметр core.commentString для определения строки-разделителя вместо символа "#" для игнорирования комментариев в сообщении для коммита.

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

Описание и комменты к код ревью

Есть один очень простой, но удивительно эффективный способ ускорить код ревью в команде и сделать этот процесс более приятным.

Выложив Pull Request, напиши к нему описание и оставь комментарии.

Вспомните свои ощущения, когда нужно поделать ревью. Лично я зачастую испытываю лень. Нужно открыть код, разобраться, какую задачу и каким способом он решает, составить собственное мнение, оставить комментарии... Можно устать, просто прочитав это предложение.

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

Не нужно растекаться словом по древу. Достаточно буквально 3-5 предложений. Читать огромную портянку текста тоже никто не захочет.

Сделав это, оставьте комментарии к самому коду. На что ревьюерам стоит обратить внимание? Где вы сомневаетесь в своём решении? Если есть доработки какого-то общего кода, то зачем они были сделаны?

Эти комментарии облегчат жизнь человеку, который будет смотреть ваш код. Помогите ему выделить главное из кода и заострить своё внимание именно на этом.

Больше интересного про жизнь в IT у меня в ТГ

Теги:
Всего голосов 5: ↑4 и ↓1+3
Комментарии0

[Отладка] git bisect

Сегодня хочу рассказать об инструменте Git, который может очень помочь при отладке. Этот инструмент называется git bisect.

Возможно, ты уже сталкивался с ситуацией, когда нужно выяснить, после какого изменения в коде проекта появилась ошибка. Перебирать все коммиты вручную — не самое приятное занятие. Особенно, если ошибка была допущена давно. Именно здесь на помощь приходит git bisect.

Принцип работы git bisect основан на методе бинарного поиска. Тебе лишь нужно указать «хороший» коммит, в котором ошибка точно отсутствует, и «плохой» коммит, в котором ошибка уже есть. Git bisect автоматически проведет тебя через процесс бинарного поиска между этими двумя точками, поможет постепенно сузить круг «подозреваемых» и найти коммит, начиная с которого стал проявляться баг.

Использование git bisect начинается с запуска команды git bisect start, после чего ты помечаешь известные «хороший» и «плохой» коммиты соответствующими командами. Git затем предложит тебе проверить определенный коммит, и ты сообщишь, есть ли в нем данная ошибка. Процесс повторяется, пока не будет найден коммит, который послужил причиной появления бага.

Ссылка на доку здесь.

А тут мой тг-канал со свежими новостями из мира мобильной разработки.

Теги:
Всего голосов 13: ↑10 и ↓3+7
Комментарии1

Разработчики дистрибутива Arch Linux объявили о завершении миграции системы отслеживания ошибок на платформу GitLab и включении на обслуживающем проект сервере GitLab поддержки запросов на слияние (merge request). Модернизация системы отслеживания ошибок стала следующим шагом после перевода инфраструктуры для разработки пакетов с Subversion на Git и GitLab.

Старый интерфейс отслеживания ошибок в Arch Linux, основанный на платформе Flyspray, будет через какое-то время отключён, но доступ к старым записям планируют сохранить через размещение статической архивной копии сайта bugs.archlinux.org, в которой записи будут доступны по старым ссылкам.

В сообщениях об ошибках, разбиравшихся в процессе миграции, добавлены финальные комментарии, указывающие на новый адрес обсуждения в GitLab. Кнопки уведомления о проблемах, присутствующие на страницах пакетов, перенаправлены на новую систему. Процесс разбора сообщений о проблемах в Arch Linux останется прежним — первичный разбор сообщений осуществляют участники команды Bug Wranglers, после чего проблема перенаправляется для исправления соответствующим сопровождающим.

Источник: OpenNET.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

После трёх месяцев разработки опубликован выпуск распределенной системы управления исходными текстами Git 2.43.

Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям «задним числом» используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов.

По сравнению с прошлым выпуском в версию Git 2.43 внесено и принято 464 изменения, подготовленные при участии 80 разработчиков, из которых 17 программистов впервые приняли участие в разработке, включая:

  • в команду "git repack" добавлены опции "--filter" и "--filter-to", позволяющие выполнить переупаковку репозитория c учётом заданного фильтра объектов и при необходимости перенести в отдельное место объекты, не удовлетворяющие заданному фильтру;

  • добавлена возможность работы с несколькими pack-файлами с информацией о недостижимых объектах ("cruft packs"), на которые в репозитории отсутствуют ссылки (не ссылаются ветки или теги);

  • добавлено распознавание попыток выполнения двойной отмены коммита через "git revert" и учёт этого факта при формировании сообщения об отмене;

  • Разрешено совместное использование опций "--rfc" и "--subject-prefix".

Источник: OpenNET.

Теги:
Рейтинг0
Комментарии0

Вышел релиз GitExtensions 4.2, инструмента с графическим интерфейсом для управления репозиториями git, умеющего интегрироваться в системное меню работы с файлами и, через плагины, в IDE (JetBrains, VSCode, MSVS). Код проекта написан на C# и распространяется под лицензией GPLv3.

Основные изменения:

  • новый плагин интеграции с GitLab;

  • в плагин JIRA добавлена поддержка токенов личного доступа;

  • различные улучшения производительности;

  • различные улучшения пользовательского интерфейса;

  • улучшения в диалоговом окне журнала команд Git и в диалоговом окне «Rebase»;

  • разрешено выполнение операции сохранения «Save as...» сразу для нескольких файлов;

  • редактор теперь может перемещать строку вверх/вниз с помощью ALT + UP и ALT + DOWN;

  • для OpenSSH реализовано выставление переменной окружения SSH_ASKPASS, если запрашивается пароль (требуется OpenSSH 8.4 или выше; не действует для более старых версий OpenSSH);

  • обеспечена автоматическая установка GitExtensions в качестве редактора только в текущем окружении;

  • разрешён сброс непроиндексированных изменений, не затрагивая промежуточные;

  • более удобная обработка ошибок «Не удалось загрузить файл или сборку»;

  • вертикальная табуляция (SHIFT + ENTER) теперь рассматривается как перевод строки;

  • добавлена поддержка сборки GitExtensions для Windows на системах Arm64 (WoA), однако для этого требуется сборка вручную;

  • для скриптов реализована опция "{HEAD}";

  • для сборки теперь требуется .NET 6.0 Desktop Runtime v6.0.24 или новее;

  • рекомендованная версия Git 2.42.

Источник: OpenNET.

Теги:
Рейтинг0
Комментарии0

Вышел новый стабильный выпуск системы управления проектами Trac 1.6 с поддержкой Python 3, предоставляющей web-интерфейс для работы с репозиториями Subversion и ​Git, встроенный Wiki, систему отслеживания ошибок и раздел планирования функциональности для новых версий. Код написан на языке Python и распространяется под лицензией BSD. Для хранения данных могут применяться СУБД SQLite, ​PostgreSQL и ​MySQL/MariaDB.

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

В форме плагинов доступны модули для ведения новостных лент, создания дискуссионной площадки, проведения опросов, взаимодействия с различными системами непрерывной интеграции, генерации документации в Doxygen, управления загрузками, отправки уведомлений через ​Slack, поддержки Subversion и Mercurial.

Источник: OpenNET.

Теги:
Рейтинг0
Комментарии0

​​Как восстановить удалённый коммит в Git?

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

Потом понял, что закоммитил в мастер, а не в ветку с фичей. Поэтому сделал git reset --soft, чтобы удалить коммит, сохранив все изменённые файлы, и переключился в фича ветку. 

Если ветки сильно отличаются, то иногда приходится делать git clean -fxd, чтобы удалить все ненужные артефакты. И тут я понял, что удалил все свои изменения.

Повезло, что перед этим я закоммитил свои изменения, хотя коммит и был удалён. Ведь git позволяет восстановить удалённые коммиты. Для этого я сделал:

git reflog 

Нашёл в списке хэш моего коммита и перенёс из него все изменения в текущую ветку с помощью: git cherry-pick —no-commit <hash>

Результат работы команды git reflog
Результат работы команды git reflog

https://t.me/cherkashindev/105

Всего голосов 4: ↑4 и ↓0+4
Комментарии1

Вклад авторов