2011-12-19 2 views
2

Я использую git и имеет записи в mailmap, которые перенаправляют различные адреса электронной почты, которые люди используют для «канонического» имени и электронной почты для этого пользователя. Тем не менее, у меня также есть некоторые исторические коммиты, в которых нет электронной почты вообще, а просто имя пользователя, например «tommy».Как получить git для распознавания почтовой рассылки для пользователей без адресов электронной почты?

Я также хочу перенаправить их также на каноническое имя и адрес электронной почты для этого пользователя, но не смог этого сделать. Я пробовал и то, и другое:

Canonical_name tommy 
Canonical <[email protected]> tommy <> 
Canonical tommy <> 

но ни один из них, похоже, не имеет никакого эффекта.

Изменить, чтобы уточнить: у меня нет желания изменять историю. Я просто хочу, чтобы канонические имена отображались, когда prettyprinting с% aN, который переназначает имена, используя mailmap. Это работает - отлично - для случая, когда 3 разных адреса электронной почты должны отображаться на одно каноническое имя. Но совсем не так, если исходный коммиттер вообще не предоставил адрес электронной почты.

+0

Какая версия вы используете? Из примечаний к выпуску Git для версии 1.6.2: «Можно установить расположение файла .mailmap, а его формат файла был расширен, чтобы отображать неверное поле электронной почты». Быстрый тест с использованием версии 1.7.8 работает правильно; информация автора отображается, когда я использую 'Tommy Lee <[email protected]> tommy <>' в '.mailmap'. Это может быть поведенческая разница между версиями. –

+0

Я использую git 1.7.5.4 – Agrajag

ответ

0

Поскольку коммиты уже находятся в дереве, они не изменятся - это сломает целостность истории!

Ваш единственный вариант, если вы действительно хотите это сделать, заключается в использовании git filter-branch, см. here для получения более подробной информации. Но вы, безусловно, измените свой репозиторий, а это значит, что другие люди, использующие этот же репозиторий в качестве базы, также будут затронуты.

0

Вы можете добавить поддельный адрес электронной почты ([email protected]).

С другой стороны: если люди все еще находятся в проекте, у них будет есть существующий адрес электронной почты сейчас. Если их больше нет, зачем беспокоиться по этому адресу? Вы можете взять поддельный адрес в этом случае ...

Смежные вопросы