Ошибка предварительной фиксации захвата

Я пытаюсь выполнить pre commit git hook в python, чтобы проверить, имеют ли файлы длину строки менее 80 символов. Однако я не вижу такой ошибки файла / каталога. Я нахожусь в Fedora и установил #! usr / bin / python.help, будет оценен

#!/usr/bin/env python #-*- mode: python -*- from subprocess import Popen, PIPE import sys def run(command): p = Popen(command.split(), stdout=PIPE, stderr=PIPE) p.wait() return p.returncode, p.stdout.read().strip().split(), p.stderr.read() def precommit(): _, files_modified, _= run("git diff-index --name-only HEAD") i=1 for fname in files_modified: file = open(fname) while i==1: line = file.readline() if not line: break elif len(line)>80: print("Commit failed: Line greater than 80 characters") return 1 return 0 sys.exit(precommit()) 

  • Может ли git log pretty format сохранить новые строки в теме?
  • В Dulwich, как я могу передать ветку вместо HEAD?
  • Развертывание существующего приложения Django на Heroku
  • Как объединить ведущую ветвь в ветвь функции с GitPython?
  • Почему мой пост-получатель не может запустить команду virtualenv source?
  • Как получить список Ostream или Oinfo в переменной из пути репозитория в gitpython?
  • Ключи GitPython и SSH?
  • Использовать команды Git в коде Python
  • 2 Solutions collect form web for “Ошибка предварительной фиксации захвата”

    В вашем файле pre-commit есть посторонние каретки. Это может произойти, если вы отредактируете файл в Windows и скопируете файл на компьютер Linux.

    Попробуйте выполнить следующие команды:

     cp .git/hooks/pre-commit /tmp/pre-commit tr -d '\r' < /tmp/pre-commit > .git/hooks/pre-commit 

    И затем повторите команду git .

    Самый простой способ удаления «\ r»:

     dos2unix .git/hooks/pre-commit 
    Python - лучший язык программирования в мире.