У меня есть репозиторий Git, первоначально импортированный из Subversion. Части информации автора/коммиттера неверны, что не является ошибкой Git, но в основном из-за неаккуратной фиксации с Subversion.Использование git filter-branch для перезаписи авторов/коммиттеров и фиксации сообщений одновременно
Я хотел бы использовать git filter-branch
, чтобы переписать историю хранилища, зафиксировав информацию об участниках и авторах.
Беда в том, что ... Мне нужно вырвать информацию об авторе из сообщения совершения . Насколько я могу судить, git filter-branch
позволяет фильтровать и изменять информацию об авторе (с помощью --env-filter
) и/или фильтровать сообщения о фиксации (с --msg-filter
), но не делать одновременно, с информацией, разделяемой между различными фильтрами ,
Таким образом, я как бы недооцениваю, как это сделать ... самое лучшее, что я могу придумать, - это сделать это несколькими проходами: во-первых, соберите allllll сообщения фиксации, затем сделайте сценарий для прохождения и фильтрации все данные автора/коммиттера. Это кажется довольно неэлегантным и подверженным ошибкам, поэтому мне интересно, сможет ли кто-нибудь еще подумать о том, чтобы сделать такую работу более плавно.
Спасибо, Jefromi, я сделаю этот снимок! Кроме того, хороший момент о заказе --env-filter и -msg-filter: я подумал о том, чтобы оставить временные файлы позади, как вы предлагаете, но понял, что он не будет работать в том порядке, который я хотел. –