Mercurial의 조건부 프롬프트

Mercurial의 조건부 프롬프트

다음과 같은 프롬프트를 표시하려고 합니다.

$ some-folder (patch-name):

다음을 수행했을 때 작동하게 만들 수 있었습니다.

hg_ps1() {
    hg prompt " ({patch})" 2> /dev/null
}

export PS1='$ \W$(hg_ps1): '

그러나 패치를 적용하지 않으면 다음과 같은 일이 발생합니다.

$ some-folder ():

패치를 적용하지 않으면 다음과 같습니다.

$ some-folder: 

내가 할 수 있는 방법이 있나요?

답변1

hg_ps1명령의 결과에 따라 출력을 조건부로 만들 수 있습니다 hg.

hg_ps1()
{
  typeset prmpt=$(hg prompt "{patch}" 2>/dev/null)
  [[ -n "$prmpt" ]] && echo " ($prmpt)"
}

답변2

다음 명령을 사용하여 적용된 패치와 적용되지 않은 패치를 표시할 수 있습니다.

hg prompt --angle-brackets "<patches|join( → )|pre_applied(${COLOR_BROWN})|post_applied(${COLOR_NC})|pre_unapplied(${COLOR_BLACK})|post_unapplied(${COLOR_NC})>"

원하는 색상을 선택하세요. 예를 들어 저는 다음 색상을 사용했습니다.

COLOR_BROWN=$'\e[0;33m'
COLOR_NC=$'\e[0m' # No Color
COLOR_BLACK=$'\e[0;30m'

관련 정보