Posh- Git и Posh-Hg Вместе?

Привет, я большой поклонник Git и Hg и должен использовать их как во многих проектах. В настоящее время я использую Posh-Hg, который является плагином powershell, который помещает текущую ветку и выдающуюся фиксацию прямо в вашу powershell. Posh- Git работает аналогичным образом, за исключением Git. Кто-нибудь успешно получил два сценария powershell, чтобы играть вместе?

http://poshhg.codeplex.com/

http://github.com/dahlbyk/posh-git alt text

Ответ 1

Попробуйте выполнить это в своем профиле script:

function isCurrentDirectoryARepository($type) {

    if ((Test-Path $type) -eq $TRUE) {
        return $TRUE
    }

    # Test within parent dirs
    $checkIn = (Get-Item .).parent
    while ($checkIn -ne $NULL) {
        $pathToTest = $checkIn.fullname + '/' + $type;
        if ((Test-Path $pathToTest) -eq $TRUE) {
            return $TRUE
        } else {
            $checkIn = $checkIn.parent
        }
    }
    return $FALSE
}

# Posh-Hg and Posh-git prompt

. $ProfileRoot\Modules\posh-hg\profile.example.ps1
. $ProfileRoot\Modules\posh-git\profile.example.ps1

function prompt(){
    # Reset color, which can be messed up by Enable-GitColors
    $Host.UI.RawUI.ForegroundColor = $GitPromptSettings.DefaultForegroundColor

    Write-Host($pwd) -nonewline

    if (isCurrentDirectoryARepository(".git")) {
        # Git Prompt
        $Global:GitStatus = Get-GitStatus
        Write-GitStatus $GitStatus
    } elseif (isCurrentDirectoryARepository(".hg")) {
        # Mercurial Prompt
        $Global:HgStatus = Get-HgStatus
        Write-HgStatus $HgStatus
    }

    return "> "
}

Ответ 2

Обратите внимание, что проблема исправлена. Предполагая, что у вас есть последние версии Posh-Hg и Posh- Git, ваш профиль должен включать только.

# Posh-Hg and Posh-git prompt
. $ProfileRoot\Modules\posh-hg\profile.example.ps1
. $ProfileRoot\Modules\posh-git\profile.example.ps1

Ответ 3

FYI - там сладкий пакет Chocolatey, называемый Posh-GIT-HG, который делает именно то, что отвечает выше, но имеет дополнительное преимущество, возможно, оставаться в синхронизации с последними версиями posh git и posh-hg.