I would like to list the last commit date for a large number of files in a git repository.
For the sake of concreteness, let us assume that I want t
Here is a Powershell function
function Get-GitRevisionDates($Path='.', $Ext='.md')
{
[array] $log = git --no-pager log --format=format:%ai --name-only $Path
$date_re = "^\d{4}-\d\d-\d\d \d\d:\d\d:\d\d .\d{4}$"
[array] $dates = $log | Select-String $date_re | select LineNumber, Line
$files = $log -notmatch "^$date_re$" | ? { $_.EndsWith($Ext) } | sort -unique
$res = @()
foreach ($file in $files) {
$iFile = $log.IndexOf($file) + 1
$fDate = $dates | ? LineNumber -lt $iFile | select -Last 1
$res += [PSCustomObject]@{ File = $file; Date = $fDate.Line }
}
$res | sort Date -Desc
}