- ชำระเงินเป็นล็อคพิเศษในการปรับเปลี่ยนสาขาของวัตถุในพื้นที่เก็บข้อมูล
- Checkinเป็นการปลดล็อคแบบเอกสิทธิ์
มีระบบควบคุมแหล่งที่มาสองประเภทขึ้นอยู่กับว่าอะไรคือหน่วยย่อยที่เล็กที่สุดของการแยกสาขา
1) ต่อพื้นที่เก็บข้อมูลแขนง (CVS, SVN, GIT, อย่างเลี่ยงไม่พ้น ... ฯลฯ )
ในผลิตภัณฑ์ที่คุณแยกสาขาที่เก็บทั้งหมดโดยปกติการชำระเงินจะสร้างหรือเปิดใช้งานการแก้ไขสาขาท้องถิ่น (คัดลอก) ของพื้นที่เก็บข้อมูลทั้งหมด ในผลิตภัณฑ์เหล่านั้นเช็คอินมักจะไม่ได้ใช้และกลายเป็นส่วนหนึ่งของการดำเนินการกระทำซึ่งเป็นการชำระเงินครั้งเดียวของสาขาระยะไกลการใช้แพทช์ท้องถิ่นและการเช็คอินของสาขาระยะไกลในการดำเนินการครั้งเดียว คุณไม่ได้เช็คอินสาขาในพื้นที่ของคุณเนื่องจากเช็คเอาท์อย่างถาวร (หมายเหตุ: ใน GIT คุณไม่ได้กระทำเพื่อสาขาที่ห่างไกลคุณผลักดันในท้องถิ่นของคุณกระทำมันแตกต่างประโยคอย่างเคร่งครัด.. )
2) การแยกวัตถุ (ClearCase, AccuRev, Oracle ADE)
ในผลิตภัณฑ์ที่คุณแยกสาขาวัตถุเช่นไดเรกทอรีไฟล์ ฯลฯ แนวคิดของการชำระเงินและเช็คอินจะใช้ต่อวัตถุต่อสาขา คุณจะล็อควัตถุที่จะแก้ไขมันด้วยเช็คเอาท์และปล่อยมันกับการเช็คอิน ในผลิตภัณฑ์เหล่านั้นคุณมักจะทำงานในสาขาเอกชนที่ล็อคไม่ได้ขัดขวางไม่ให้ใครทำงานและในเวลาที่ผสานสาขาท้องถิ่นของคุณเข้ากับสาขาที่ใช้ร่วมกันวัตถุก็จะถูกชำระเงินที่สาขาชาร์ด (หลัก, มาสเตอร์, ฟีเจอร์สาขา ฯลฯ ) ความขัดแย้งของการผสานได้รับการแก้ไขและวัตถุcheckedinบนกิ่งไม้ที่ใช้ร่วมกัน สิ่งนี้ช่วยให้หลายคน "กระทำ" ในเวลาเดียวกันกับสาขาที่ใช้ร่วมกันตราบใดที่พวกเขาไม่ได้แก้ไขวัตถุเดียวกัน