Perbarui hanya satu permata dengan bundler


233

Saya menggunakan bundler untuk mengelola dependensi di aplikasi rails saya, dan saya memiliki gem yang dihosting di repositori git termasuk sebagai berikut:

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

Untuk memperbarui permata ini, saya mengeksekusi bundle updatetetapi juga memperbarui semua permata yang disebutkan dalam Gemfile. Jadi apa perintah untuk memperbarui hanya satu permata tertentu?

Jawaban:


354

Di sini Anda dapat menemukan penjelasan yang bagus tentang perbedaan keduanya

Perbarui gem dan dependensi:

bundle update gem-name 

atau

Perbarui secara eksklusif permata:

bundle update --source gem-name

bersama dengan beberapa contoh yang bagus dari kemungkinan efek samping.

Memperbarui

Seperti jawaban @ Tim, pada Bundler 1.14, cara yang didukung secara resmi adalah dengan bundle update --conservative gem-name.


19
Hati-hati, "memperbarui permata dan dependensi" berarti memperbarui rel itu sendiri jika dependensi dan Anda mungkin tidak menginginkannya. --sumber hanya akan memperbarui permata yang ditentukan sebagai parameter. Jadi lebih baik dalam kebanyakan situasi.
— 1.44mb

bagaimana cara menentukan versi?
— Oshan Wisumperuma

1
@OshanWisumperuma Tentukan versi dalam Gemfile atau mungkin Gemfile.lock sebelum menjalankan perintah bundel ini
— Harry Wood

185

Cara untuk melakukan ini adalah dengan menjalankan perintah berikut:

bundle update --source gem-name

3
Inilah yang saya butuhkan, saya memiliki permata pribadi dan hanya perlu memperbarui permata itu sendiri tanpa memperbarui dependensi setelah saya membuat beberapa perubahan pada permata pribadi.
— Saya naga katak

30

Tampaknya dengan versi bundler yang lebih baru (> = 1.14) itu adalah:

bundle update --conservative gem-name

Catatan: perintah ini akan memperbarui satu permata tanpa ketergantungan
— mmike

24

Anda hanya perlu menentukan nama permata pada baris perintah:

bundle update gem-name

1
Aneh. Itu yang bundle help updatedikatakan harus dilakukan. Versi bundler mana yang Anda gunakan?
— Brandan

40
bundle update gem-nameakan memperbarui permata dan "semua dependensinya".
— yaka

5

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

Ini juga berfungsi untuk dependensi.


1
Apakah ada cara untuk memperbaruinya ke versi tertentu? The --major, --minordan --patchbendera otomatis meng-upgrade ke versi terbaru mungkin.
— user2490003

2

Saya telah menggunakan bundle update --sourcediri saya untuk waktu yang lama tetapi ada skenario di mana itu tidak berhasil. Untungnya, ada permata bernama bundler-patchyang memiliki tujuan memperbaiki kekurangan ini.

Saya juga menulis posting blog pendek tentang cara menggunakan bundler-patchdan mengapa bundle update --sourcetidak bekerja secara konsisten. Juga, pastikan untuk memeriksa posting oleh chrismo yang menjelaskan dengan sangat rinci apa yang dilakukan --sourceopsi.


0

bundler update --source gem-name akan memperbarui hash revisi di Gemfile.lock yang dapat Anda bandingkan dengan hash komit terakhir dari cabang git (master secara default).

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

dapat ditemukan di github.com/organization/repo-name/commits/c810f4a2(saya menggunakan steno 8 karakter melakukan hash untuk url)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.