2013-05-03 5 views
0

커밋하기 전에 bundle에 문의하는 것을 잊어 버린 경우 프로젝트 파일의 Gemfile.lock이 Gemfile과 일치하는지 확인하기 위해 단위 테스트를 작성하고 싶습니다.Gemfile.lock이 Gemfile과 일치하는지 확인하십시오.

bundle 명령 (또는 다른 방법)에서이를 확인하는 옵션이 있습니까?

bundle check은이 목적에 맞지 않습니다. Gemfile의 모든 보석이 로컬 시스템에 설치되어 있는지 확인하지만 Gemfile.lock은 확인하지 않습니다. 따라서 bundle check이 개발 시스템 또는 CI에서 성공하더라도 서버의 bundle install --deployment 명령이 실패 할 수 있습니다.

답변

2

시도 :

cp Gemfile.lock Gemfile.lock.orig 
bundle install 
diff Gemfile.lock Gemfile.lock.orig && echo "Gemfile.lock matches Gemfile" 
3

사용 bundle check 명령

확인은 Gemfile에 요청 보석의 각 로컬 컴퓨터를 검색합니다. 모든 보석이 발견되면, 첫 번째 누락 된 보석이 나열 Bundler를 상태 종료되어 있지 않으면, Bundler를 1.

0

Gemfile 일반적으로 doesnot Gemfile 일치 성공 메시지와 0의 상태로 를 출력 해 종료합니다 .lock becoz bunder는 보석의 모든 의존성을 해결할 것이고 나무의 유행에 보석의 이름 아래 놓을 것입니다. 또한 Gemfile.lock의 목적은 Bundler가 번들 설치 중에 여러 가지 호환되는 보석을 찾을 때 발생할 수있는 충돌의 경우 버전 번호 및 기타 종속성을 해결하기위한 것입니다.

당신이 번들 업데이트 명령을 수행 할 때 Gemfile.lock이 제거되고 새로운 Gemfile.lock 새로운 종속성이 생성됩니다 ...

관련 문제