git for-each-ref - фильтровать результаты по возрасту - PullRequest
1 голос
/ 17 июня 2019

Я использую следующую команду из здесь :

git for-each-ref --format='%(color:cyan)%(authordate:format:%m/%d/%Y %I:%M %p)    %(align:25,left)%(color:yellow)%(authorname)%(end) %(color:reset)%(refname:strip=3)' --sort=authordate refs/remotes

Есть ли способ сортировки authordate по определенной дате?

Например,, показывать только результаты, которым X дней или месяцев, или, возможно, после определенной даты?Я думал об использовании grep, но я надеялся, что был подход, который фактически анализирует данную дату, чтобы выполнить вычисления, а не просто сопоставлять строки.

Я придумал следующее, используя sed:

git for-each-ref --format='%(color:cyan)%(authordate:format:%Y-%m-%d %I:%M %p)    %(align:25,left)%(color:yellow)%(authorname)%(end) %(color:reset)%(refname:strip=3)' --sort=authordate refs/remotes | sed -n '/{start_year}-*/,/{end_year}-{end_month}-*/p'

но было бы гораздо лучше просто указать одну конкретную дату и получить все результаты до или после указанной даты.

РЕДАКТИРОВАТЬ: метод выше с использованием sed не работает, еслиданная дата окончания не существует, так как sed является только потоковым редактором.Например, если полученная строка sed равна '/2017-*/,/2018-10-*/p', но нет записей, соответствующих 2018-10-* (нет веток с коммитами в октябре 2018 года), то все результаты будут получены с 2017 года.То есть это не настоящий расчет диапазона дат;это простое совпадение строк, которое останавливается, когда он находит первую запись, соответствующую правой стороне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...