Как генерировать (GIT) дифференциров ​​с символами контекста?

Обычно это исправление для меня,

добавьте эти строки в свой wp-config .php :

define('WP_HOME','https://example.com');
define('WP_SITEURL','https://example.com');

, где обе записи содержат адрес вашего нового сайта.

Перезагрузите веб-сервер

3
19.01.2019, 18:26
1 ответ

Этот скрипт выполнит свою работу, по крайней мере, если длинные управляющие последовательности (для раскрашивания )соответствуют ожиданиям. Назовите это, например. как git-diff-word-context -U 5. Он принимает все аргументы git diffи перехватывает-U(соответственно --unified=), чтобы установить количество символов. Он просто использует grepдля выполнения задачи:

#!/usr/bin/env bash

ESCAPE=$'\e'
START_DIFF="$ESCAPE\\[3[12]m"
END_DIFF="$ESCAPE\\[m"
NOESCAPE="[^$ESCAPE]"

CONTEXT="20"
STDIN=false
ARGS=()
while [ "${1::1}" = "-" ]; do
    case "$1" in
        "-U"|"--unified")
            CONTEXT="$2"
            shift
            ;;
        "-U"*)
            CONTEXT="${1#-U}"
            ;;
        "--unified="*)
            CONTEXT="${1#--unified=}"
            ;;
        "--stdin")
            STDIN=true
            ;;
        "--")
            break
            ;;
        *)
            ARGS+=("$1")
            ;;
    esac
    shift
done

set -o pipefail

ok() {
    "$@"
    true
}

if $STDIN; then
    cat
else
    git diff --color-words='[^\n]' "${ARGS[@]}" "$@"
fi |
ok grep -oP "$NOESCAPE{0,$CONTEXT}(($START_DIFF[^$ESCAPE]+$END_DIFF)+$NOESCAPE{0,$CONTEXT})+"

Самый простой способ вызвать его — настроить псевдоним Git, например. с git config alias.diffwc '!path/to/git-diff-word-context'.

Вы также можете использовать его как фильтр, вызвав его с опцией --stdin, например git show --color-words | git-diff-word-context --stdin -U5.

Чтобы настроить его как внешний драйвер diff, необходимо принять дополнительные меры (см. GIT_EXTERNAL_DIFFвman git). Передача произвольных аргументов в git diffИМХО особенно сложна в этом случае.

Пример

example output

0
27.01.2020, 21:33

Теги

Похожие вопросы