Подпроцесс Python для git commit сообщения, принимающего только одну строку - PullRequest
1 голос
/ 16 октября 2019

Используя подпроцесс python для фиксации изменений в ветке git, сообщение -m будет принимать только одну строку

Я использую python 3 для циклического перемещения по каталогу для фиксации изменений для всех файлов xml. Я пытался использовать двойные кавычки и одинарные кавычки для сообщения, ни один не работал. Я также попытался использовать f и r, но оба не удалось.

add=subprocess.Popen([gitPath,'git add .'],cwd=cd,shell=True,stdout=subprocess.PIPE)
subprocess.Popen.wait(add)

commit=subprocess.Popen([gitPath,f"git commit -m 'no message spacing works'"],cwd=cd,shell=True,stdout=subprocess.PIPE)

subprocess.Popen.wait(commit)

push=subprocess.Popen([gitPath,'git push origin DEV:PyTesting'],cwd=cd,shell=True,stdout=subprocess.PIPE)
subprocess.Popen.wait(push)

Я хотел бы иметь возможность использовать обычные текстовые строки, включая пробелы, для ввода входного сообщения фиксации. Когда я использую в сценарии «не работает интервал между сообщениями», ошибки приводят к ошибке: pathspec 'message' не соответствует ни одному файлу (файлам), о котором известно git error: pathspec 'spacing' не соответствует ни одному файлу (файлам), которые известны как git error: pathspec 'works' 'не соответствует ни одному из файлов, известных git

Если я использую git commit -m 'no message spacing works' в bash, это принимается. Чего мне не хватает в скрипте, чтобы разрешить несколько строк?

1 Ответ

3 голосов
/ 16 октября 2019

Я думаю, что вы передаете аргументы Попену неправильно. Если вы передаете список, то каждый аргумент должен быть отдельным элементом списка. Таким образом, вам даже не придется возиться с кавычками. Таким образом, git commit -m 'no message spacing works' должно быть передано как ['git', 'commit', '-m', 'no message spacing works']. Смотрите также примеры в справочной документации Popen.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...