git: Удалить Change-Id для веток - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть git-репозиторий, в котором есть два пульта, один, который принудительно устанавливает Change-Id, и другой, который принудительно удаляет их. У меня есть хук Gerrit commit-msg, который создает Change-Id для каждого коммита. У меня также есть хук, который для веток с определенным именем Change-Id не создается. То, что я хочу, это то, что уберет его, и мне не придется вносить изменения в каждый коммит вручную. Мой текущий рабочий процесс:

  • Создать коммит, который получает Change-Id
  • Перейти в назначенную ветку
  • git am patches с идентификаторами изменений
  • изменить каждый коммит и удалить Change-Id

Есть ли способ автоматизировать последний шаг?

1 Ответ

1 голос
/ 30 апреля 2019

Вы можете удалить строку Change-Id перед применением исправления.

sed "/^Change-Id: /d" foo.patch | git am

В sed, /^Change-Id: / пытается найти строку, начинающуюся с Change-Id:, а d удаляетлиния, если она существует.foo.patch не изменяется.Его содержимое без Change-Id выводится на стандартный вывод и передается на git am.

Чтобы найти линию с более точным шаблоном,

sed "/^Change-Id:\s\+I[0-9a-f]\{40\}/d" foo.patch | git am
...