bup-get - คู่มืออ้างอิง ตัวเลือก ตัวอย่างคำสั่ง


ชื่อ

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 ในซอร์สทรีสามารถใช้ช่วยทดสอบก่อน/หลังผลลัพธ์)

วิธีการ

--ff ref, --ff: ref dest

กรอไปข้างหน้า ปลายทาง เพื่อให้ตรงกับ ผู้อ้างอิง ถ้าไม่ได้ระบุ ปลายทาง และ อ้างอิง ตั้งชื่อการบันทึก ให้ตั้งค่า ปลายทาง เป็นสาขาของการบันทึก ถ้าไม่ได้ระบุ dest และ ref ตั้งชื่อสาขาหรือแท็ก ให้ใช้ชื่อเดียวกันสำหรับ dest

--append ref, --append: ref dest

ต่อท้ายคอมมิชชันทั้งหมดที่แสดงโดย ref ถึง dest เป็นคอมมิชชันใหม่ ถ้า ref ตั้งชื่อไดเร็กทอรี/ทรี ให้เพิ่มการคอมมิตใหม่สำหรับทรีนั้น ถ้าไม่ได้ระบุ ปลายทาง และ อ้างอิง ตั้งชื่อบันทึกหรือสาขา ให้ตั้งค่า ปลายทาง เป็นชื่อสาขา อ้างอิง หากไม่ได้ระบุ dest และ ref ตั้งชื่อแท็ก ให้ใช้ชื่อเดียวกันสำหรับ dest

--pick ref, --pick: ref dest

ต่อท้ายการคอมมิตเดียวที่ตั้งชื่อโดย ref ถึง dest เป็นการคอมมิตใหม่ ถ้าไม่ได้ระบุ ปลายทาง และ อ้างอิง ตั้งชื่อบันทึก ให้ตั้งค่า ปลายทาง เป็นชื่อสาขา อ้างอิง หากไม่ได้ระบุ dest และ ref ตั้งชื่อแท็ก ให้ใช้ชื่อเดียวกันสำหรับ dest

--force-pick ref, --force-pick: ref dest

ทำสิ่งเดียวกันกับ --pick แต่อย่าปฏิเสธที่จะเขียนทับแท็กที่มีอยู่

--new-tag ref, --new-tag: ref dest

สร้างแท็ก ปลายทาง สำหรับ อ้างอิง แต่ปฏิเสธที่จะเขียนทับแท็กที่มีอยู่ หากไม่ได้ระบุ dest และ ref ตั้งชื่อแท็ก ให้ใช้ชื่อเดียวกันสำหรับ dest

--replace ref, --replace: ref dest

บล็อก ปลายทาง ด้วย อ้างอิง เขียนทับแท็กที่มีอยู่ หรือแทนที่สาขาที่มีอยู่ ถ้าไม่ได้ระบุ dest และ ref ตั้งชื่อสาขาหรือแท็ก ให้ใช้ชื่อเดียวกันสำหรับ dest

--unnamed ref

คัดลอก ref ลงในที่เก็บปลายทาง โดยไม่มีชื่อใดๆ ปล่อยให้มีการอ้างอิงที่อาจห้อยต่องแต่งจนกระทั่ง/เว้นแต่วัตถุที่ตั้งชื่อโดย ref ถูกอ้างถึงด้วยวิธีอื่น (cf. bup tag) .

ตัวเลือก

-s, --source=path

ใช้ เส้นทาง เป็นที่เก็บต้นทาง แทนที่จะเป็นค่าเริ่มต้น

-r, --remote=host:path

จัดเก็บรายการที่ระบุบนเซิร์ฟเวอร์ระยะไกลที่กำหนด หากละเว้น เส้นทาง ให้ใช้เส้นทางเริ่มต้นบนเซิร์ฟเวอร์ระยะไกล (คุณยังคงต้องใส่ `:') การเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลทำด้วย SSH หากคุณต้องการระบุพอร์ต ผู้ใช้ หรือคีย์ส่วนตัวที่จะใช้สำหรับการเชื่อมต่อ SSH เราขอแนะนำให้คุณใช้ไฟล์ ~/.ssh/config

-c, --print-commits

สำหรับแต่ละสาขาที่อัปเดต ให้พิมพ์ git commit id ใหม่

-t, --print-trees

สำหรับแต่ละสาขาที่อัปเดต ให้พิมพ์ git tree id ใหม่ของรูทระบบไฟล์

--print-tags

สำหรับแต่ละแท็กที่อัปเดต ให้พิมพ์ git id ใหม่

-v, --verbose

เพิ่มความฟุ่มเฟือย (สามารถใช้มากกว่าหนึ่งครั้ง) ด้วย -v ให้พิมพ์ชื่อของทุกรายการที่ดึงข้อมูล ด้วย -vv เพิ่มชื่อไดเร็กทอรี และด้วย -vvv เพิ่มทุกชื่อไฟล์

--bwlimit=bytes/sec

อย่าส่งมากกว่า ไบต์/วินาที ไบต์ต่อวินาทีไปยังเซิร์ฟเวอร์ สิ่งนี้สามารถช่วยหลีกเลี่ยงการดูดแบนด์วิดท์เครือข่ายทั้งหมดของคุณ ใช้คำต่อท้าย เช่น k, M หรือ G เพื่อระบุผลคูณของ 1024, 1024*1024, 1024*1024*1024 ตามลำดับ

-#, --compress=#

ตั้งระดับการบีบอัดเป็น # (ค่าตั้งแต่ 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-home

ดูสิ่งนี้ด้วย

bup-on(1), bup-tag(1), ssh_config(5)

บัพ

ส่วนหนึ่งของชุด bup(1)

ผู้เขียน

ร็อบ บราวนิ่ง rlb@defaultvalue.org