Eu uso o bundler para gerenciar dependências no meu aplicativo rails e tenho uma gema hospedada em um repositório git incluído da seguinte maneira:
gem 'gem-name', :git => 'path/to/my/gem.git'
Para atualizar esta gema, eu executo, bundle update
mas ela também atualiza toda a gema mencionada no Gemfile. Então, qual é o comando para atualizar apenas uma gema específica?
A maneira de fazer isso é executar o seguinte comando:
fonte
Parece que nas versões mais recentes do bundler (> = 1.14) é:
fonte
Você só precisa especificar o nome da gema na linha de comando:
fonte
bundle help update
diz para fazer. Qual versão do bundler você está usando?bundle update gem-name
atualizará a gema e "qualquer uma de suas dependências".bundle update gem-name [--major|--patch|--minor]
Isso também funciona para dependências.
fonte
--major
,--minor
, e--patch
bandeiras atualizá-lo automaticamente para a versão mais recente possível.Eu me uso
bundle update --source
há muito tempo, mas há cenários em que não funciona. Felizmente, existe uma gema chamadabundler-patch
que tem o objetivo de corrigir essa falha.Também escrevi um pequeno post sobre como usar
bundler-patch
e porbundle update --source
que não funciona de maneira consistente. Além disso, verifique um post do chrismo que explica em detalhes o que a--source
opção faz.fonte
bundler update --source gem-name
atualizará o hash de revisão no Gemfile.lock, que você pode comparar com o último hash de confirmação desse ramo git (mestre por padrão).GIT remote: [email protected]:organization/repo-name.git revision: c810f4a29547b60ca8106b7a6b9a9532c392c954
pode ser encontrado em
github.com/organization/repo-name/commits/c810f4a2
(eu usei abreviação de 8 caracteres para confirmar o URL)fonte