หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
เมื่อคุณทํางานกับพื้นที่ทํางานที่เชื่อมต่อ Git ใน Fabric คุณอาจพบสถานการณ์ที่รายการในพื้นที่ทํางานของคุณและรายการในสาขา Git ของคุณมีชื่อและชนิดเดียวกัน แต่รหัสตรรกะต่างกัน ความไม่ตรงกันนี้จะทริกเกอร์คําเตือนการเขียนทับข้อมูลเมตา และกําหนดให้คุณต้องตัดสินใจว่าจะเก็บรหัสตรรกะใดไว้
บทความนี้จะอธิบายว่ารหัสเชิงตรรกะคืออะไร เหตุใดจึงเกิดข้อขัดแย้ง และวิธีแก้ไขอย่างปลอดภัย
รหัสเชิงตรรกะคืออะไร
เมื่อพื้นที่ทํางาน Fabric ของคุณเชื่อมต่อกับสาขา Git ทุกรายการในพื้นที่ทํางานจะเชื่อมโยงกับรหัสตรรกะที่กําหนดไว้ในสาขานั้น รหัสเหล่านั้นแสดงถึง "เอกลักษณ์" ของแต่ละรายการในพื้นที่ทํางาน Fabric รหัสตรรกะคือตัวระบุข้ามพื้นที่ทํางานที่สร้างขึ้นโดยอัตโนมัติ ซึ่งเชื่อมต่อรายการในพื้นที่ทํางานกับรายการที่สอดคล้องกันในสาขา Git ไอเท็มที่มีรหัสตรรกะเดียวกันจะถือว่าเหมือนกัน
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับรหัสตรรกะและวิธีที่ Fabric แสดงรายการในการควบคุมแหล่งที่มา โปรดดู เอกสารประกอบรูปแบบซอร์สโค้ดการรวม Git
ความขัดแย้งของ Logical ID คืออะไร
ความขัดแย้งของ Logical ID เกิดขึ้นเมื่อ Fabric ตรวจพบสองรายการที่มีชื่อและประเภทรายการเดียวกัน แต่ Logical ID ต่างกัน โดยรายการหนึ่งในพื้นที่ทํางานและอีกรายการหนึ่งในสาขาที่เชื่อมต่อ Git เนื่องจาก Logical ID เป็นคีย์การผูกที่ไม่ซ้ํากันระหว่างรายการ Fabric และการแสดง Git การไม่ตรงกันหมายความว่า Fabric ไม่ทราบว่าเวอร์ชันใดควรได้รับการปฏิบัติเป็นข้อมูลประจําตัว "ที่แท้จริง" ของรายการ
เมื่อตรวจพบข้อขัดแย้ง คุณจะเห็นกล่องโต้ตอบยืนยันการเขียนทับข้อมูลเมตาที่คล้ายกับข้อความต่อไปนี้:
ข้อขัดแย้งนี้บ่งชี้ว่ารายการพื้นที่ทํางานของคุณมีรหัสตรรกะที่แตกต่างจากรุ่นของรายการที่มาจากตัวควบคุมแหล่งที่มา
การยืนยันการดําเนินการส่งผลให้รหัสตรรกะจากตัวควบคุมต้นทางของคุณแทนที่รหัสตรรกะของรายการที่ตรงกันภายในพื้นที่ทํางาน
สถานการณ์ทั่วไปที่นําไปสู่ความขัดแย้ง
รหัสตรรกะไม่ตรงกันอาจเกิดขึ้นเมื่อคุณ:
| สถานการณ์สมมติ | คำอธิบาย |
|---|---|
| เชื่อมต่อพื้นที่ทํางานกับโฟลเดอร์ Git ที่ไม่ว่างเปล่า | หากที่เก็บ Git มีรายการที่ตรงกับรายการพื้นที่ทํางานตามชื่อและชนิด แต่มีรหัสตรรกะที่แตกต่างกัน Fabric จะแจ้งให้คุณยืนยันการเขียนทับข้อมูลเมตาของพื้นที่ทํางาน |
| สลับไปยังสาขาอื่น | การเปลี่ยนสาขาอาจนําข้อกําหนดรายการที่ไม่ได้ใช้รหัสตรรกะเดียวกันกับเวอร์ชันพื้นที่ทํางาน |
| แยกสาขาไปยังสาขาใหม่ตามสาขาอื่นที่ไม่ใช่สาขาที่เชื่อมต่อ | แนะนําสายข้อมูลที่สองที่ไม่เกี่ยวข้องกันของข้อมูลประจําตัวของรายการลงในพื้นที่ทํางานที่แม็ปกับสาขา Git ที่เฉพาะเจาะจงแล้ว |
| ขยายไปยังพื้นที่ทํางานที่มีอยู่ซึ่งมีรายการ | เมื่อแยกสาขาออกจากพื้นที่ทํางานไปยังพื้นที่ทํางานที่มีอยู่ซึ่งมีรายการอยู่แล้ว Fabric จะจัดตําแหน่งข้อมูลเมตาของพื้นที่ทํางานเป้าหมายให้ตรงกับสาขาที่เชื่อมต่อใหม่ซึ่งสร้างขึ้นจากข้อมูลเมตาของสาขาพื้นที่ทํางานต้นทาง |
การแก้ไขข้อขัดแย้งของ Logical ID
เมื่อเกิดข้อขัดแย้ง คุณต้องตัดสินใจว่าจะเขียนทับข้อมูลเมตาของพื้นที่ทํางานหรือเก็บไว้
ตัวเลือกที่ 1: เขียนทับข้อมูลเมตาของพื้นที่ทํางาน (ใช้เวอร์ชัน Git)
หากคุณยืนยันการเขียนทับ ให้ทําดังนี้
- รหัสตรรกะจากตัวควบคุมแหล่งที่มาจะแทนที่รหัสตรรกะที่มีอยู่ในพื้นที่ทํางาน
- ขณะนี้ข้อมูลเมตาของพื้นที่ทํางานตรงกับเวอร์ชัน Git
ใช้ตัวเลือกนี้เมื่อคุณต้องการให้พื้นที่ทํางานสอดคล้องกับสาขา Git ของคุณอย่างสมบูรณ์
ผลกระทบต่อระบบอัตโนมัติที่มีอยู่
โดยการเลือกที่จะเขียนทับข้อมูลเมตาของพื้นที่ทํางาน คุณจะแทนที่รหัสตรรกะที่มีอยู่ในพื้นที่ทํางานด้วยเวอร์ชันที่มาจาก Git การดําเนินการนี้อาจทําลายระบบอัตโนมัติที่มีอยู่ซึ่งอาศัยรหัสตรรกะปัจจุบันเพื่อระบุรายการอย่างสม่ําเสมอ การเปลี่ยนรหัสตรรกะเหล่านั้นทําให้รายการพื้นที่ทํางานเป็น "ใหม่" จากมุมมองของเวิร์กโฟลว์เหล่านั้นอย่างมีประสิทธิภาพ ด้วยเหตุนี้ งานดาวน์สตรีมอาจล้มเหลวในการค้นหารายการ ข้ามการอัปเดต หรือสร้างรายการที่ซ้ํากันจนกว่าตรรกะระบบอัตโนมัติจะได้รับการอัปเดตเพื่อจดจําข้อมูลประจําตัวใหม่
ตัวเลือกที่ 2: เก็บข้อมูลเมตาของพื้นที่ทํางานที่มีอยู่ (เก็บเวอร์ชันพื้นที่ทํางาน)
หากคุณต้องการรักษารหัสตรรกะของพื้นที่ทํางาน:
- อย่ายืนยันการเขียนทับ
- อัปเดตที่เก็บ Git ของคุณด้วยรหัสตรรกะที่มีอยู่ในพื้นที่ทํางานในปัจจุบัน
คุณสามารถทําได้โดย:
- เช็คเอาท์หรือยอมรับกับสาขาอื่นและดึงข้อมูลเมตาของพื้นที่ทํางานไปยัง Git หรือ
- การเปลี่ยนชื่อรายการใน Git ซึ่งทําให้ Fabric ถือว่าเป็นการดําเนินการเพิ่ม/ลบแทนการอัปเดตที่ขัดแย้งกัน