Аватары авторов
Список коммитов — это стена имён, а имена читаются медленно. Картинка рядом с каждым превращает «кто это написал» в вопрос, на который отвечаешь одним взглядом. Gitcito ставит её каждому показанному автору: в столбце автора в графе, в деталях коммита рядом с автором и каждым соавтором, в выборе соавторов при написании, в переключателе профилей и рядом с каждым профилем в настройках.
Откуда берётся картинка
Два источника, в этом порядке:
| Источник | Когда используется |
|---|---|
| Gravatar | У почты коммита есть аккаунт Gravatar. Загружается по HTTPS, по хешу SHA-256 от адреса в нижнем регистре. |
| Сгенерированный аватар | Всё остальное — нет Gravatar, нет сети или запрос выключен. Рисуется локально из адреса, никогда не загружается. |
Сгенерированный аватар — это небольшое существо, а не цветной квадрат: одна и та же почта всегда даёт одну и ту же форму и те же цвета, поэтому автор остаётся узнаваемым между репозиториями и между запусками. Два разных адреса практически никогда не совпадают. Его рисует blobatar (MIT), и сети он не требует вовсе: репозиторий, полный авторов без Gravatar, всё равно получает полный набор различимых лиц, офлайн, при первой отрисовке.
Поскольку основой служит почта коммита, автор, коммитящий с двух адресов,
получает два аватара. Это сделано намеренно — это тот же сигнал, что даёт столбец
автора в графе, и обычно именно так замечают машинный аккаунт или неверно настроенный
user.email. Исправьте это атрибутами автора, если два адреса
действительно один человек.
Лицо в заголовке окна
Аватар рядом с именем вашего профиля — единственный аватар в Gitcito, который означает вас, в этом репозитории, сейчас, поэтому он единственный реагирует на состояние репозитория. Он делает лицо, когда что-то происходит, и остаётся нейтральным всё остальное время.
![]()
На что оно реагирует, от худшего: файлы, оставшиеся в конфликте; merge, rebase, cherry-pick или revert, которому никто не сказал, чем закончиться; отделённый HEAD — испуганно, если под ним есть незакоммиченная работа, и просто озадаченно, если нет; коммиты, копящиеся без отправки или без получения с удалённого; изменения, копящиеся без коммита; ящик со стешами, который никто не открывает; и репозиторий, куда за месяц ничего не приехало.
Побеждает худшее: репозиторий с конфликтами и сорока неотправленными коммитами носит конфликты. Наведите курсор на аватар, и подсказка скажет, что именно вызвало это лицо: картинка, меняющаяся без названной причины, — загадка, а не сигнал. Читают подсказку; лицо лишь заставляет посмотреть.
Пороги намеренно высокие. Лицо, которое тревожится на первом неотправленном коммите, тревожно всегда, а постоянный сигнал — это сигнал, который перестают читать. Ветка без upstream остаётся нейтральной, а не довольной: «синхронна» — не утверждение, которое можно сделать о ветке, которую никто не отправлял.
Это украшение, а не измерительный прибор. Настоящие числа несёт строка состояния, и верить нужно ей. Лицо лишь говорит что-то происходит, одним взглядом.
Движение
Аватар в заголовке окна сам дышит и мигает. Отключите это в Настройки → Темы → Граф → Анимировать аватар профиля — выражение по-прежнему следует за репозиторием, оно просто перестаёт двигаться. Движение также автоматически пропускается, если система просит уменьшить анимацию.
Анимируется только этот аватар. Анимированный аватар приходится рисовать живым SVG, а не кешированной картинкой: нормально для одного и расточительно для нескольких сотен, которые граф рисует при прокрутке.
Как отключить запрос
Настройки → Темы → Граф → Показывать аватары.
Выключено означает:
- ни одного запроса к
gravatar.com, никогда — ни отложенного, ни кешированного с повтором; - аватары всё равно показываются, все сгенерированные локально.
То есть это переключатель приватности, а не «спрятать картинки». Настройки, которая убирает аватары полностью, нет.
Ограничения
- Запрос к Gravatar сообщает gravatar.com, что этот адрес просматривали. Хеш не секрет: любой, у кого есть адрес-кандидат, может его захешировать и сравнить. Если список авторов репозитория — то, что вы предпочли бы не отдавать третьей стороне, отключите запрос до его открытия.
- Только Gravatar. Аватары, загруженные на GitHub, GitLab или Bitbucket, не читаются: это потребовало бы аутентифицированного вызова API хостинга на каждого автора — слишком много сети ради украшения.
- Никаких переопределений. Нельзя закрепить за автором выбранную картинку и нельзя сменить стиль генерации. Аватар — функция адреса почты и ничего больше.
- У фото из Gravatar нет выражения. Если у почты вашего профиля оно есть, заголовок показывает фото и никакого лица — фотография не умеет кривляться. Отключите запрос, если предпочитаете выразительного блоба.
- Лицо следит только за активным репозиторием. На вкладке, которая не является репозиторием, реагировать не на что, поэтому оно остаётся нейтральным.
- Одно прочтение за раз. Лицо показывает только самое худшее из найденного, так что репозиторий может быть неопрятен сразу по-разному и всё равно носить одно выражение. Это не список состояния — этим занимаются строка состояния и подсказка.
- Маленькое остаётся маленьким. В столбце автора в графе аватар — 16px, что несёт цвет и силуэт, но не детали. Детали коммита рисуют автора в 38px, и там лицо видно по-настоящему.
Смотрите также: Темы и оформление · Граф коммитов · Атрибуты автора · Профили