[ruby] 번 들러로 하나의 보석 만 업데이트

번 들러를 사용하여 rails 앱에서 종속성을 관리하고 다음과 같이 git 저장소에 호스팅 된 gem이 있습니다.

gem 'gem-name', :git => 'path/to/my/gem.git'

이 gem을 업데이트하기 위해 실행 bundle update하지만 Gemfile에 언급 된 모든 gem도 업데이트합니다. 특정 보석 하나만 업데이트하는 명령은 무엇입니까?



답변

여기 에서 차이점에 대한 좋은 설명을 찾을 수 있습니다

gem과 종속성을 모두 업데이트하십시오.

bundle update gem-name 

또는

보석 만 업데이트 :

bundle update --source gem-name

가능한 부작용의 좋은 예와 함께.

최신 정보

@Tim의 답변에서 알 수 있듯이 Bundler 1.14에서 공식적으로 지원되는 방법은입니다 bundle update --conservative gem-name.


답변

이를 수행하는 방법은 다음 명령을 실행하는 것입니다.

bundle update --source gem-name


답변

최신 버전의 번 들러 (> = 1.14)에서는 다음과 같습니다.

bundle update --conservative gem-name


답변

명령 행에 gem 이름을 지정하기 만하면됩니다.

bundle update gem-name


답변

bundle update gem-name [--major|--patch|--minor]

이것은 또한 의존성에도 적용됩니다.


답변

나는 bundle update --source오랫동안 나 자신을 사용 했지만 작동하지 않는 시나리오가 있습니다. 운 좋게도, bundler-patch이 단점을 고치는 것을 목표로 하는 보석 이 있습니다.

또한 사용 방법 과 일관되게 작동하지 않는 이유 에 대한 간단한 블로그 게시물을 작성했습니다 . 또한 chrismo 의 게시물 을 확인 하여 옵션의 기능을 자세히 설명하십시오 .bundler-patchbundle update --source--source


답변

bundler update --source gem-name Gemfile.lock에서 개정 해시를 업데이트하여 해당 자식 분기의 마지막 커밋 해시와 비교할 수 있습니다 (기본적으로 마스터).


GIT
remote: git@github.com:organization/repo-name.git
revision: c810f4a29547b60ca8106b7a6b9a9532c392c954

에서 찾을 수 있습니다 github.com/organization/repo-name/commits/c810f4a2(URL에 약식 8 문자 커밋 해시를 사용했습니다)