2012-06-20 3 views
12

Git의 최신 코드를 가져 와서 빌드하고 자동 단위 테스트를 수행하는 스크립트를 작성하라는 요청을 받았습니다.파이썬 코드 내에서 Git 명령 사용하기

쉽게 사용할 수있는 힘내 상호 작용을위한 두 개의 내장 파이썬 모듈이 있음을 발견했습니다 : GitPythonlibgit2.

어떤 접근법/모듈을 사용해야합니까?

답변

17

더 쉬운 해결책은 파이썬 subprocess 모듈을 사용하여 git를 호출하는 것입니다. 귀하의 경우,이 최신 코드를 당겨 구축 할 것입니다 :

import subprocess 
subprocess.call(["git", "pull"]) 
subprocess.call(["make"]) 
subprocess.call(["make", "test"]) 

문서를 :

-2

Linux 또는 Mac의 경우, 왜 사용 이 작업에 대한 모든 python? 쉘 스크립트를 작성하십시오.

#!/bin/sh 
set -e 
git pull 
make 
./your_test #change this line to actually launch the thing that does your test 
+0

아마도 질문자는 결과물과 함께 복잡한 것을하고 싶습니까? 하지만 그래, 나는 동의하는 경향이있다. – aychedee

+4

글쎄, 질문에 파이썬 태그가있다. OP의 동기를 추측하지 마십시오. –

8

나는 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! 
3

에서 우리는 GitPython에 의지하고 있습니다.

사용 방법에 대한 예제는 here을 참조하십시오.

+0

GitPython은 worktree를 지원하지 않습니다 : ( –

+0

그것은 훨씬 더 복잡합니다 ... – Fuhrmanator