Я мог бы найти что-то, хотя это зависит от конкретного моего случая.
Так что из-за того, что это монорепо, все мои теги имеют префикс с подпроектом, на который он ссылается.Этот префикс также совпадает с путем подпроекта.Например, предположим, что подпроект живет в cool-project/super-app
, поэтому все связанные с ним теги имеют префикс cool-project/super-app
.
Также, понизив мой сценарий изменений, чтобы принимать только полностью сформированные теги, например cool-project/super-app/v2
, теперь я могу предположить, что:
- Предыдущий тег также начинается с
cool-project/super-app
. - Изменения, которые меня интересуют при ведении журнала, произошли внутри каталога
cool-project/super-app
.
Получив это состояние, я обнаружил, что мы можем использовать git describe
, чтобы найти предыдущий тег :
git describe --tags --abbrev=0 --match "prefix/*" "tag^"
Где prefix
- деконструкция моего тега (удалена часть версии), а tag
- аргумент, введенный в скрипт.
Наконец, я могусоздать список коммитов между двумя тегами, относящимися к super-app
с помощью:
git log previous-tag..tag -- prefix
, где previous-tag
- результат последней команды, приведенной выше, и еще раз tag
- аргумент, введенный вscript и prefix
- деконструкция этого аргумента (часть версии удалена).
Если у кого-то есть предложения или замечания по поводу этого решения, пожалуйста, дайте мне знать.Спасибо.