rsync แก้ไขข้อขัดแย้งได้อย่างไร


14

จะเกิดอะไรขึ้นถ้าเครื่อง A และเครื่อง B ที่ใช้ร่วมกันมีไดเรกทอรีที่ซิงค์อยู่ก่อนหน้านี้rsyncและ A เปลี่ยนไฟล์และ B จะเปลี่ยนไฟล์เดียวกันและคุณเปลี่ยนrsyncจาก A เป็น B

บางทีมันอาจจะเป็นอะไรที่เหมือนกับความขัดแย้งที่ผสานกันgitหรือเปล่า?

สามารถแก้ไขข้อขัดแย้งได้อย่างง่ายดาย?

คำตอบ:


25

Rsync ไม่พยายามแก้ไขข้อขัดแย้ง นี่ไม่ใช่งานของมัน Rsync ไม่มีแม้แต่วิธีการตรวจสอบว่าทั้งสองฝ่ายได้แก้ไขไฟล์เนื่องจากไม่มีข้อมูลเกี่ยวกับบรรพบุรุษที่พบบ่อย

ด้วยตัวเลือกเริ่มต้นไฟล์ต้นฉบับจะถูกคัดลอกไปยังปลายทางโดยไม่มีเงื่อนไขเขียนทับไฟล์ปลายทาง ด้วยตัวเลือก-uไฟล์ต้นฉบับจะถูกคัดลอกเฉพาะในกรณีที่ไฟล์ปลายทางหายไปหรือเก่ากว่าไฟล์ต้นฉบับ ด้วยตัวเลือก--ignore-existingไฟล์ต้นฉบับจะถูกคัดลอกก็ต่อเมื่อไม่มีไฟล์ปลายทาง

หากคุณต้องการตรวจสอบความขัดแย้งคุณต้องใช้เครื่องมือที่ทราบว่าเมื่อใดที่ไฟล์ถูกซิงโครไนซ์ครั้งล่าสุดเพื่อให้สามารถแยกแยะ {ปลายทาง = รุ่นเก่า, แหล่งที่มา = รุ่นใหม่} จาก {ปลายทาง = รุ่นใหม่ 1, แหล่งที่มา = รุ่นใหม่ 2 } ใช้Unisonซึ่งทำสิ่งนั้นอย่างแม่นยำ พร้อมเพรียงเป็นแบบซิงโครไนเซอร์สองทิศทาง: มันจะคัดลอกไฟล์ที่ถูกแก้ไขตั้งแต่การซิงโครไนซ์ครั้งล่าสุดไปยังด้านที่ไฟล์นั้นไม่ได้ถูกแก้ไข หากทั้งสองฝ่ายได้รับการแก้ไขหรือทั้งสองฝ่ายได้รับการแก้ไขเหมือนกันมันจะไม่ทำอะไรเลย หากทั้งสองฝ่ายได้รับการแก้ไขด้วยวิธีที่ต่างกันระบบจะแจ้งให้คุณทราบและให้คุณเลือกข้ามคัดลอกในทิศทางเดียวหรือคัดลอกไปในทิศทางอื่น

หากคุณต้องการการแก้ไขข้อขัดแย้งโดยอัตโนมัติเช่นการรวมอัตโนมัติ (เมื่อเป็นไปได้ - มีหลายกรณีที่จำเป็นต้องใช้การผสานด้วยตนเอง) ให้ใช้ระบบควบคุมการแก้ไขเช่น git

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