Functions/Find-HgChangeset.ps1


function Find-HgChangeset
{
    <#
    .SYNOPSIS
    Searches Mercurial history for changesets.
     
    .DESCRIPTION
    Returns found changesets as objects.
     
    ALIASES
      fdhgc, hglog
     
    .EXAMPLE
    Find-HgChangesets -Last 2
     
    Returns the last two changesets
     
    #>

    [CmdletBinding()]
    param(
        [string]
        # The revision to get.
        $Revision,
        
        [int]
        $Last,

        [string]
        [Alias('Path')]
        # The path to the repository to search. Defaults to the current directory.
        $RepoRoot = (Resolve-Path .)
    )
    
    $repoRoot = Resolve-HgRoot -Path $RepoRoot
    if( -not $repoRoot )
    {
        return
    }
    
    $revisionArgName = ''
    $revisionArgValue = ''
    if( $Revision )
    {
        $revisionArgName = '-r'
        $revisionARgValue = $Revision
    }
    
    $lastArg = ''
    if( $Last )
    {
        $lastArg = "-l$Last"
    }
    
    hg log --style $PsHgStylePath $lastArg $revisionArgName $revisionArgValue -R $repoRoot | Split-HgXml
}

Set-Alias -Name 'Find-HgChangesets' -Value 'Find-HgChangeset'
Set-Alias -Name 'hglog' -Value 'Find-HgChangeset'
Set-Alias -Name 'fdhgc' -Value 'Find-HgChangeset'