Есть ли способ получить git commit --verbose для отображения обновленного diff при использовании хуков pre-commit? - PullRequest
0 голосов
/ 08 февраля 2019

Так что в настоящее время я настраиваю git pre-commit hook для связывания моих файлов python с помощью iSort и python Black, проблема, с которой я сталкиваюсь, заключается в том, что когда я использую git commit --verbose diff, который отображается вРедактор коммитов фактически не учел изменения в промежуточных файлах.

Например, допустим, у меня есть файл python, который выглядит следующим образом:

import re

from os import path

def x():
    v = re.compile(r"1")
    print(3, v)

def y(v=3):
    z = path.join("a", "b")
    thing = "a string"
    print(thing, z)

На основе iSortи настройки черного, которые я настроил, мой сценарий предварительной фиксации изменит файл, чтобы он выглядел так:

import re
from os import path


def x():
    v = re.compile(r"1")
    print(3, v)


def y(v=3):
    z = path.join("a", "b")
    thing = "a string"
    print(thing, z)

К сожалению, в редакторе коммитов git он по-прежнему показывает неизмененный diff.Есть ли какой-нибудь способ заставить редактор иметь правильный вывод?

Теоретически, я полагаю, это не имеет значения, но было бы неплохо увидеть, какой на самом деле будет разница.

1 Ответ

0 голосов
/ 08 февраля 2019

Вместо перехвата перед фиксацией попробуйте вместо этого драйвер фильтра содержимого со сценарием smudge / clean, который может:

  • при оформлении заказа сделать ваш сценарий в одну сторону
  • приcommit (или в git diff) создайте свой скрипт другим способом

См. пример здесь или (для очистки) здесь

https://i.stack.imgur.com/tumAc.png
(изображение из "Настройка атрибутов Git - Git" из " Pro Git book "))

...