1

Я использую метод parse_git_branch который вызывается моим PROMPT. Я использую zshell, но я не понимаю, почему это перестало бы работать.

Вот функция:

parse_git_branch() {
    git_status="$(git status 2> /dev/null)"
pattern="^# On branch ([^[:space:]]*)"
    if [[ ! ${git_status} =~ "working directory clean" ]]; then
        state="*"
    fi
    if [[ ${git_status} =~ ${pattern} ]]; then
      branch=${match[1]}
      echo "(${branch}${state})"
    fi
}

и вот вывод git status:

On branch master
Your branch is up-to-date with 'origin/master'.

но все же вызов parse_git_branch ничего не отображает на экране.

Что могло измениться? Я только что установил последнюю версию XCode.

Git-версия: git version 1.8.5.2 (Apple Git-48) (которая не выглядит знакомой)

2 ответа2

2

Я рекомендую вам использовать https://github.com/nojhan/liquidprompt, он решит любую из этих проблем и предоставит вам больше функциональных возможностей и привлекательность для вашего терминала. Я использовал это в течение последних нескольких месяцев, и это очень мощный.

1

Изменить эту строку

pattern="^# On branch ([^[:space:]]*)

в

pattern="On branch ([^[:space:]]*)"

Не уверен, как те работали со старым мерзавцем, но все равно ...


Новая версия для работы с новым Git (вместо дерева используется дерево)

parse_git_branch() {
    git_status="$(git status 2> /dev/null)"
    pattern="On branch ([^[:space:]]*)"
    if [[ ! ${git_status} =~ "(working (tree|directory) clean)" ]]; then
        state="*"
    fi
    if [[ ${git_status} =~ ${pattern} ]]; then
      branch=${match[1]}
      echo "(${branch}${state})"
    fi
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .