2014-01-18 4 views
0

내가 직접 DIFF를 이메일로 자식에 대한 명령을 만들려고 노력하고 있어요을 사용하여 텍스트 파일로 I 출력 자식은 diff을은 어떻게 생각 무엇을</p> <p>이메일로 텍스트 파일은 diff를 얻을 것입니다, 파이썬

하지만이

pr = subprocess.Popen("git diff HEAD^ HEAD" , cwd = os.path.dirname(os.getcwd()), shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE) 
(out, error) = pr.communicate() 
print "Error : " + str(error) 
print "out : " + str(out) 

내가 아웃 사랑하는 원하는 반면

Error : error: Could not access 'HEAD^' 

out : 

말하는 오류를 확인 제공하는 이유 변수를 전자 메일로 보냅니다.

답변

0

git이 초기화 된 올바른 폴더에서 명령을 실행하지 않았을 수 있습니다.

실제 문제는 os.path.dirname 명령이 os.getcwd 명령에서 폴더를 스트라이프하고 실제로 부모 폴더에서 명령을 실행하고 있다는 것입니다. os.path.dirname을 없애고 os.getcwd을 사용하면 코드가 작동합니다.

+1

'cwd = os.path.dirname (os.getcwd())'를하지 않으면'cwd = os.getcwd()'만 문제를 해결합니다. –

+0

:) 그냥 이것도 발견하고 내 대답을 편집. – user1918305