Git의 최신 코드를 가져 와서 빌드하고 자동 단위 테스트를 수행하는 스크립트를 작성하라는 요청을 받았습니다.파이썬 코드 내에서 Git 명령 사용하기
쉽게 사용할 수있는 힘내 상호 작용을위한 두 개의 내장 파이썬 모듈이 있음을 발견했습니다 : GitPython
및 libgit2
.
어떤 접근법/모듈을 사용해야합니까?
Git의 최신 코드를 가져 와서 빌드하고 자동 단위 테스트를 수행하는 스크립트를 작성하라는 요청을 받았습니다.파이썬 코드 내에서 Git 명령 사용하기
쉽게 사용할 수있는 힘내 상호 작용을위한 두 개의 내장 파이썬 모듈이 있음을 발견했습니다 : GitPython
및 libgit2
.
어떤 접근법/모듈을 사용해야합니까?
더 쉬운 해결책은 파이썬 subprocess
모듈을 사용하여 git를 호출하는 것입니다. 귀하의 경우,이 최신 코드를 당겨 구축 할 것입니다 :
import subprocess
subprocess.call(["git", "pull"])
subprocess.call(["make"])
subprocess.call(["make", "test"])
문서를 :
Linux 또는 Mac의 경우, 왜 사용 이 작업에 대한 모든 python? 쉘 스크립트를 작성하십시오.
#!/bin/sh
set -e
git pull
make
./your_test #change this line to actually launch the thing that does your test
나는 Ian Wetherbee와 동의합니다. git을 직접 호출하려면 subprocess를 사용해야합니다. 명령의 출력에 대해 일부 논리를 수행해야하는 경우 다음과 같은 서브 프로세스 호출 형식을 사용합니다.
import subprocess
PIPE = subprocess.PIPE
branch = 'my_branch'
process = subprocess.Popen(['git', 'pull', branch], stdout=PIPE, stderr=PIPE)
stdoutput, stderroutput = process.communicate()
if 'fatal' in stdoutput:
# Handle error case
else:
# Success!
에서 우리는 GitPython에 의지하고 있습니다.
사용 방법에 대한 예제는 here을 참조하십시오.
GitPython은 worktree를 지원하지 않습니다 : ( –
그것은 훨씬 더 복잡합니다 ... – Fuhrmanator
아마도 질문자는 결과물과 함께 복잡한 것을하고 싶습니까? 하지만 그래, 나는 동의하는 경향이있다. – aychedee
글쎄, 질문에 파이썬 태그가있다. OP의 동기를 추측하지 마십시오. –