Created
August 20, 2015 09:57
-
-
Save jeremybeavon/88f296e2bdb07a0a3f42 to your computer and use it in GitHub Desktop.
Powershell script that return an object representing git log
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$startString = '@%x22%n' | |
$endString = '%n%x22@ | |
$dollar = '%x24' | |
$gitHash = "GitHash=$startString%n$endString" | |
$author = "Author=$startString%an$endString" | |
$branch = "Branch=$startString%d$endString -replace '^\s*\([^,]+,\s*[^,]+,\s*(?<BranchName>[^\)]+)\).*$dollar', '$dollar{BranchName}'" | |
$date = "Date=[datetime]::ParseExact($startString%ad$endString, %x22ddd MMM dd HH:mm:ss zzz", $($dollar)null)" | |
$logMessage = "LogMessage=$startString%s$endString" | |
$changes = "Changes=$startString" | |
$format = "`"$endString},@{$gitHash;$author;$branch;$date;$logMessage;$changes`"" | |
Function Get-GitLog([string]$Options) | |
{ | |
return Invoke-Expression (((git log $Options --pretty=format:$format --name-status) -join "`n" -replace '^\n"@\},', '') + "`n""@}") | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment