2010-12-08 8 views
2

존재하지 않는 라인에 공백을 후행에 포장 마차를 저지하지만, 다음과 같은 오류가 나타납니다힘내 내가 힘내 커밋하기 위해 노력하고있어

$ git commit -m "Changed model name from Employee to Person for abstraction" 
* 
* You have some suspicious patch lines: 
* 
* In app/helpers/people_helper.rb 
* trailing whitespace (line 28) 
app/helpers/people_helper.rb:28: 
* trailing whitespace (line 44) 
app/helpers/people_helper.rb:44: 

좋아합니다. 공백을 제거합니다. 유일한 문제는? 그 선은 존재하지 않습니다.

$ cat app/helpers/people_helper.rb 
module PeopleHelper 
end 
$ 

파일의 길이는 2 줄입니다. 줄 28과 44에는 공백이 없어야합니다.

무엇을 제공합니까?

저는 기본적으로 설치된 것을 제외하고는 Git 1.5.4 버전을 사용하고 있습니다.

+0

어떤 버전의 git입니까? 활성 후크가 있습니까? (예 :'git --version'과'ls .git/hooks') –

+0

감사합니다. Emil - 원래 질문에 추가되었습니다. Git 1.5.4, 비정형 후크는 없다. –

+0

기본적으로 후크가 없습니다. 후크 샘플이 있지만 모두 뒤에 '.sample'확장명이 붙어 있으므로 활성화되지 않습니다. 활성 후크가 있습니까? –

답변

1

힘내 1.5.4는 힘내 매우 오래된 버전입니다 (2008 년 2 월 이후). 최신 버전으로 업데이트하는 것이 좋습니다. 최신 버전 (1.6 버전부터)은 기본적으로 샘플 후크를 활성화하지 않습니다. 이전 버전에서는 샘플 후크를 기본적으로 사용할 수 없지만, 실수로 얻을 수있는 실행 가능 비트를 비활성화하여 수행 한 것으로 보입니다. 특정 플랫폼에서 설정되었으므로 이제는 .sample이라는 이름을 지정하여 완료됩니다. 그래서 Git은 이름을 바꿀 때까지 해당 플랫폼을 보지 않습니다. 업그레이드하는 경우 기존 저장소는 모두 기존 고리가 유지되므로 수동으로 비활성화해야합니다 (.git/hooks의 모든 이름을 .sample으로 끝내야 함). 또는 새로 만든 저장소로 복제본을 복제하기 만하면됩니다. 오래된 쓰레기가없는 저장소.

정확한 문제에 관해서는 더 자세한 정보가 없으면 왜 확신하지 못합니다 (git-diff-index -p -M --cached HEAD의 출력이 도움이 될 것입니다). 그러나 후크 공백을 검사하는 샘플 후크가 생성되는 방식이 패치를 파싱 한 다음 파일 이름을 얻기 위해 diff 헤더를 찾고, 라인을 찾아 내기위한 diff 라인 번호, 변경되지 않은 라인을 카운트하는 공간으로 시작하는 라인 및 변경된 라인을 찾기 위해 +으로 시작하는 라인을 찾습니다. 이 간단한 패치 파서를 혼란스럽게 만들었다면 완전히 잘못된 파일 이름과 줄 번호로보고 할 수 있습니다.

이 후행 공백에 대한 검사는 더 이상 취약하지 않기 때문에 샘플 사전 커밋 훅에 더 이상 포함되지 않습니다.