bup-get - คัดลอกรายการที่เก็บ (ข้อควรระวัง: ทดลอง)
bup get [-s source-path] [-r host:path] OPTIONS <(METHOD ref [dest])>...
bup รับสำเนา ref ที่ระบุจากที่เก็บต้นทางไปยังที่เก็บปลายทาง (ตาม --bup-dir และ BUP_DIR) ตาม METHOD ที่ระบุ ซึ่งอาจเป็นหนึ่งใน --ff, -- ff:, --append, --append:, --pick, --pick:, --force-pick, --force-pick:, --new-tag, --new-tag:, --replace , --replace:, หรือ --ไม่มีชื่อ ดูตัวอย่างด้านล่างสำหรับคำแนะนำอย่างรวดเร็ว
ref คือแหล่งอ้างอิงที่เก็บต้นทางของวัตถุที่จะดึงข้อมูล และ ปลายทาง คือแหล่งอ้างอิงปลายทางที่เป็นทางเลือก สามารถระบุ ปลายทาง สำหรับ METHOD ที่มีชื่อลงท้ายด้วยเครื่องหมายทวิภาคเท่านั้น ตัวอย่างเช่น:
bup get -s /source/repo --ff foo
bup get -s /source/repo --ff: foo/latest bar
bup get -s /source/repo --pick: foo/2010-10-10-101010 .tag/barในกรณีพิเศษ ถ้า อ้างอิง ตั้งชื่อ symlink บันทึก "ล่าสุด " bup จะทำเหมือนกับว่าบันทึกที่ "ล่าสุด " ชี้ไป แทนที่จะเป็น symlink "ล่าสุด " เอง ดังนั้น bup get foo/latest จะถูกตีความว่าเป็น bup get foo/2013-01-01-030405
ในบางสถานการณ์ bup get จะประเมินการดำเนินการของสาขาว่าจะเป็นการ "กรอไปข้างหน้า" หรือไม่ (ซึ่งกำหนดให้สาขาปลายทางที่มีอยู่เป็นบรรพบุรุษของต้นทาง)
แท็กปลายทางที่มีอยู่สามารถเขียนทับได้โดย --replace หรือ --force-pick เท่านั้น
เมื่อ Commit ใหม่ถูกสร้างขึ้น (เช่น ผ่าน --append, --pick เป็นต้น) จะมีผู้เขียน วันที่เขียน และข้อความเหมือนกับต้นฉบับ แต่ Committer และ Committer Date จะสอดคล้องกับผู้ใช้และเวลาปัจจุบัน .
หากมีการร้องขอโดยตัวเลือกที่เหมาะสม bup จะพิมพ์คอมมิต ทรี หรือแฮชแท็กสำหรับการอ้างอิงปลายทางแต่ละรายการที่อัปเดต เมื่อมีความเกี่ยวข้อง แฮชต้นไม้จะถูกพิมพ์ก่อนคอมมิตแฮช
สามารถพุช refs ในเครื่องไปยังที่เก็บระยะไกลด้วยตัวเลือก --remote และสามารถดึง refs แบบรีโมตไปยังที่เก็บในเครื่องผ่าน "bup on HOST get .. .”. ดู bup-on(1) และตัวอย่างด้านล่างสำหรับข้อมูลเพิ่มเติม
คำเตือน: นี่เป็นหนึ่งในคำสั่ง bup ไม่กี่คำสั่งที่สามารถแก้ไขไฟล์เก็บถาวรของคุณโดยเจตนาทำลายล้าง แม้ว่าความพยายามที่จะเข้าร่วมหรือกู้คืนข้อมูลที่คุณยังคงสนใจอยู่นั้นสำเร็จหลังจากที่คุณเรียกใช้คำสั่งนี้แล้ว นั่นเป็นสัญญาณที่ดีพอสมควรว่ามันทำงานได้อย่างถูกต้อง (คำสั่ง dev/compare-tree ในซอร์สทรีสามารถใช้ช่วยทดสอบก่อน/หลังผลลัพธ์)
กรอไปข้างหน้า ปลายทาง เพื่อให้ตรงกับ ผู้อ้างอิง ถ้าไม่ได้ระบุ ปลายทาง และ อ้างอิง ตั้งชื่อการบันทึก ให้ตั้งค่า ปลายทาง เป็นสาขาของการบันทึก ถ้าไม่ได้ระบุ dest และ ref ตั้งชื่อสาขาหรือแท็ก ให้ใช้ชื่อเดียวกันสำหรับ dest
ต่อท้ายคอมมิชชันทั้งหมดที่แสดงโดย ref ถึง dest เป็นคอมมิชชันใหม่ ถ้า ref ตั้งชื่อไดเร็กทอรี/ทรี ให้เพิ่มการคอมมิตใหม่สำหรับทรีนั้น ถ้าไม่ได้ระบุ ปลายทาง และ อ้างอิง ตั้งชื่อบันทึกหรือสาขา ให้ตั้งค่า ปลายทาง เป็นชื่อสาขา อ้างอิง หากไม่ได้ระบุ dest และ ref ตั้งชื่อแท็ก ให้ใช้ชื่อเดียวกันสำหรับ dest
ต่อท้ายการคอมมิตเดียวที่ตั้งชื่อโดย ref ถึง dest เป็นการคอมมิตใหม่ ถ้าไม่ได้ระบุ ปลายทาง และ อ้างอิง ตั้งชื่อบันทึก ให้ตั้งค่า ปลายทาง เป็นชื่อสาขา อ้างอิง หากไม่ได้ระบุ dest และ ref ตั้งชื่อแท็ก ให้ใช้ชื่อเดียวกันสำหรับ dest
ทำสิ่งเดียวกันกับ --pick แต่อย่าปฏิเสธที่จะเขียนทับแท็กที่มีอยู่
สร้างแท็ก ปลายทาง สำหรับ อ้างอิง แต่ปฏิเสธที่จะเขียนทับแท็กที่มีอยู่ หากไม่ได้ระบุ dest และ ref ตั้งชื่อแท็ก ให้ใช้ชื่อเดียวกันสำหรับ dest
บล็อก ปลายทาง ด้วย อ้างอิง เขียนทับแท็กที่มีอยู่ หรือแทนที่สาขาที่มีอยู่ ถ้าไม่ได้ระบุ dest และ ref ตั้งชื่อสาขาหรือแท็ก ให้ใช้ชื่อเดียวกันสำหรับ dest
คัดลอก ref ลงในที่เก็บปลายทาง โดยไม่มีชื่อใดๆ ปล่อยให้มีการอ้างอิงที่อาจห้อยต่องแต่งจนกระทั่ง/เว้นแต่วัตถุที่ตั้งชื่อโดย ref ถูกอ้างถึงด้วยวิธีอื่น (cf. bup tag) .
ใช้ เส้นทาง เป็นที่เก็บต้นทาง แทนที่จะเป็นค่าเริ่มต้น
จัดเก็บรายการที่ระบุบนเซิร์ฟเวอร์ระยะไกลที่กำหนด หากละเว้น เส้นทาง ให้ใช้เส้นทางเริ่มต้นบนเซิร์ฟเวอร์ระยะไกล (คุณยังคงต้องใส่ `:') การเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลทำด้วย SSH หากคุณต้องการระบุพอร์ต ผู้ใช้ หรือคีย์ส่วนตัวที่จะใช้สำหรับการเชื่อมต่อ SSH เราขอแนะนำให้คุณใช้ไฟล์ ~/.ssh/config
สำหรับแต่ละสาขาที่อัปเดต ให้พิมพ์ git commit id ใหม่
สำหรับแต่ละสาขาที่อัปเดต ให้พิมพ์ git tree id ใหม่ของรูทระบบไฟล์
สำหรับแต่ละแท็กที่อัปเดต ให้พิมพ์ git id ใหม่
เพิ่มความฟุ่มเฟือย (สามารถใช้มากกว่าหนึ่งครั้ง) ด้วย -v ให้พิมพ์ชื่อของทุกรายการที่ดึงข้อมูล ด้วย -vv เพิ่มชื่อไดเร็กทอรี และด้วย -vvv เพิ่มทุกชื่อไฟล์
อย่าส่งมากกว่า ไบต์/วินาที ไบต์ต่อวินาทีไปยังเซิร์ฟเวอร์ สิ่งนี้สามารถช่วยหลีกเลี่ยงการดูดแบนด์วิดท์เครือข่ายทั้งหมดของคุณ ใช้คำต่อท้าย เช่น k, M หรือ G เพื่อระบุผลคูณของ 1024, 1024*1024, 1024*1024*1024 ตามลำดับ
ตั้งระดับการบีบอัดเป็น # (ค่าตั้งแต่ 0-9 โดยที่ 9 คือค่าสูงสุด และ 0 คือไม่มีการบีบอัด) ค่าเริ่มต้นคือ 1 (การบีบอัดที่รวดเร็วและหลวม)
อัปเดตหรือคัดลอกสาขาไฟล์เก็บถาวรใน src-repo ไปยังที่เก็บในเครื่อง:
bup get -s src-repo --ff archivesผนวกไฟล์เก็บถาวรเฉพาะที่บันทึกไว้ในสาขาไฟล์เก็บถาวรที่ถูกตัด:
bup get -s src-repo --pick: archives/2013-01-01-030405 pruned-archivesอัปเดตหรือคัดลอกสาขาไฟล์เก็บถาวรบนรีโมตโฮสต์ไปยังที่เก็บในเครื่อง:
bup on remotehost get --ff archivesอัปเดตหรือคัดลอกไฟล์เก็บถาวรสาขาในเครื่องไปยัง remotehost:
bup get -r remotehost: --ff archivesอัปเดตหรือคัดลอกสาขาไฟล์เก็บถาวรใน src-repo ไปยัง remotehost:
bup get -s src-repo -r remotehost: --ff archivesอัปเดตสาขา archives-2 บน remotehost เพื่อให้ตรงกับไฟล์เก็บถาวร หากมี archives-2 และไม่ใช่บรรพบุรุษของ archives bup จะปฏิเสธ:
bup get -r remotehost: --ff: archives archives-2แทนที่เนื้อหาของสาขา y ด้วยเนื้อหาของ x:
bup get --replace: x yคัดลอกการบันทึกในเครื่องล่าสุดจากสาขาเอกสารสำคัญไปยังแท็กระยะไกล foo:
bup get -r remotehost: --pick: archives/latest .tag/fooหรือถ้ามี foo อยู่แล้ว:
bup get -r remotehost: --force-pick: archives/latest .tag/fooต่อท้าย foo (จากด้านบน) ไปยังสาขาไฟล์เก็บถาวรอื่น ๆ ในเครื่อง:
bup on remotehost get --append: .tag/foo other-archivesผนวกเฉพาะไดเร็กทอรี /home จากไฟล์เก็บถาวร/ล่าสุดไปยัง only-home:
bup get -s "$BUP_DIR" --append: archives/latest/home only-homebup-on(1), bup-tag(1), ssh_config(5)
ส่วนหนึ่งของชุด bup(1)
ร็อบ บราวนิ่ง rlb@defaultvalue.org