อัปเดตอัญมณีเดียวด้วยบันเดิล


233

ฉันใช้ตัวรวมเครื่องเพื่อจัดการการพึ่งพาในแอพของฉัน

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

หากต้องการอัปเดตอัญมณีนี้ฉันจะใช้งานbundle updateแต่ยังอัปเดตอัญมณีทั้งหมดที่กล่าวถึงใน Gemfile ดังนั้นคำสั่งให้อัพเดตอัญมณีเฉพาะหนึ่งอันคืออะไร?

คำตอบ:


354

ที่นี่คุณจะพบคำอธิบายที่ดีเกี่ยวกับความแตกต่างระหว่าง

อัปเดตทั้งอัญมณีและการอ้างอิง:

bundle update gem-name 

หรือ

อัปเดตอัญมณีโดยเฉพาะ:

bundle update --source gem-name

พร้อมกับตัวอย่างที่ดีของผลข้างเคียงที่อาจเกิดขึ้นได้

ปรับปรุง

ในฐานะที่เป็นคำตอบ @ ทิมบอกว่าเป็นของ Bundler 1.14 bundle update --conservative gem-nameวิธีอย่างเป็นทางการได้รับการสนับสนุนในการนี้จะมี


19
ระวัง "อัปเดตอัญมณีและการอ้างอิง" หมายถึงการอัปเดตรางเองหากเป็นการพึ่งพาและคุณอาจไม่ต้องการสิ่งนั้น - แหล่งที่มาจะอัปเดตอัญมณีที่ระบุเป็นพารามิเตอร์เท่านั้น ดังนั้นจะดีกว่าในสถานการณ์ส่วนใหญ่
1.44mb

จะระบุเวอร์ชั่นได้อย่างไร?
Oshan Wisumperuma

1
@OshanWisumperuma ระบุรุ่นใน Gemfile หรืออาจจะเป็น Gemfile.lock ก่อนที่จะใช้คำสั่งกำเหล่านี้
แฮร์รี่ไม้

185

วิธีการทำเช่นนี้คือการเรียกใช้คำสั่งต่อไปนี้:

bundle update --source gem-name

3
นี่คือสิ่งที่ฉันต้องการฉันมีอัญมณีส่วนตัวและต้องการอัปเดตอัญมณีเองโดยไม่ต้องอัปเดตการอ้างอิงหลังจากฉันทำการเปลี่ยนแปลงอัญมณีส่วนตัวแล้ว
ฉันเป็นกบมังกร

30

ปรากฏว่ามีบันเดิลเวอร์ชั่นใหม่กว่า (> = 1.14) คือ:

bundle update --conservative gem-name

หมายเหตุ: คำสั่งนี้จะอัปเดตหนึ่งอัญมณีโดยไม่ต้องพึ่งพามัน
mmike

24

คุณเพียงแค่ต้องระบุชื่ออัญมณีในบรรทัดคำสั่ง:

bundle update gem-name

1
แปลก. นั่นคือสิ่งที่bundle help updateบอกว่าจะทำ คุณใช้ Bundler รุ่นใด
Brandan

40
bundle update gem-nameจะอัปเดตอัญมณีและ "การอ้างอิงใด ๆ ของมัน"
yaka

5

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

นอกจากนี้ยังใช้งานได้สำหรับการอ้างอิง


1
มีวิธีอัปเดตเป็นเวอร์ชันที่ระบุหรือไม่ เครื่องหมาย--major, --minorและ, --patchจะอัปเกรดเป็นรุ่นล่าสุดโดยอัตโนมัติ
user2490003

2

ฉันใช้bundle update --sourceตัวเองมานาน แต่มีบางสถานการณ์ที่มันใช้ไม่ได้ โชคดีที่มีอัญมณีที่เรียกว่าbundler-patchมีเป้าหมายในการแก้ไขข้อบกพร่องนี้

ฉันยังเขียนโพสต์บล็อกสั้น ๆเกี่ยวกับวิธีการใช้bundler-patchและสาเหตุที่bundle update --sourceทำงานไม่สม่ำเสมอ นอกจากนี้อย่าลืมตรวจสอบโพสต์โดย chrismo ที่อธิบายในรายละเอียดที่ดีว่า--sourceตัวเลือกทำอะไร


0

bundler update --source gem-name จะอัปเดตแฮชการแก้ไขใน Gemfile.lock ซึ่งคุณสามารถเปรียบเทียบกับแฮชการคอมมิชชันล่าสุดของสาขา git นั้น (โดยค่าเริ่มต้น)

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

สามารถพบได้ที่github.com/organization/repo-name/commits/c810f4a2(ฉันใช้ชวเลข 8 ตัวอักษรกระทำแฮสำหรับ url)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.