หนึ่งในเหตุผลที่โปรแกรมเมอร์ชอบ SVN มากกว่า CVS คืออดีตยอมให้มีการปรมาณู สิ่งนี้หมายความว่า ?
หนึ่งในเหตุผลที่โปรแกรมเมอร์ชอบ SVN มากกว่า CVS คืออดีตยอมให้มีการปรมาณู สิ่งนี้หมายความว่า ?
คำตอบ:
หมายความว่าเมื่อคุณคอมมิตไปยังระบบควบคุมเวอร์ชันทุกสิ่งที่คุณต้องการคอมมิทเข้าไปหรือไม่มีอะไรทำ
ใน CVS เมื่อคุณพยายามที่จะยอมรับว่าเป็นไปได้สำหรับการกระทำที่จะประสบความสำเร็จในหลายไฟล์แล้วล้มเหลวในหลาย ๆ คน (เพราะพวกเขาเปลี่ยนไป) สิ่งนี้ทำให้ที่เก็บอยู่ในสถานะที่โชคร้ายเพราะครึ่งหนึ่งของการกระทำของคุณไม่ได้อยู่ที่นั่นและเป็นไปได้ว่าคุณทิ้งสิ่งต่าง ๆ ไว้ในสถานะที่พวกเขาจะไม่คอมไพล์หรือแย่กว่านั้น ตอนนี้คุณต้องรีบรวมการเปลี่ยนแปลงต่างๆเพื่อที่คุณจะสามารถยอมรับไฟล์อื่น ๆ ก่อนที่คนอื่นจะต้องอัพเดทและรับชุดการเปลี่ยนแปลงที่เสีย
ใน SVN สิ่งนี้จะไม่เกิดขึ้น - SVN จะยอมรับทุกสิ่งที่คุณเปลี่ยนแปลงหรือจะทำให้การเปลี่ยนแปลงทั้งหมดล้มเหลว ดังนั้นคุณจะไม่ปล่อยให้ที่เก็บอยู่ในสถานะใช้งานไม่ได้เนื่องจากการส่งปัญหา
นี่คือคำอธิบายเช่นในBye-bye CVS ฉันถูกบทความที่ถูกโค่นล้มโดยAndy Lester :
ถ้าฉันพยายามคอมมิชชันใน Subversion แต่ไฟล์ใดไฟล์หนึ่งมีข้อขัดแย้งหรือล้าสมัยไม่มีไฟล์ใดที่คอมมิท ใน CVS คุณได้รับชุดของไฟล์ที่คุณต้องแก้ไข RIGHT NOW
ความจริงที่ว่า CVS บังคับให้โปรแกรมเมอร์ทำการแก้ไขการผสานทันทีนั้นมีประสิทธิภาพเหมือนที่ได้รับ เมื่อเปรียบเทียบกับตัวเลือกในการหน่วงเวลา / ยกเลิก / รวมการเปลี่ยนแปลงอย่างรอบคอบเป็นประโยชน์อย่างมาก
ประโยชน์อื่น ๆ ของ SVN เหนือ CVS ที่อธิบายไว้ในบทความด้านบนคือ:
ทุกอย่างในท้องที่ที่คุณทำ
หากคุณต้องการ CV ต่าง ๆ คุณต้องเชื่อมต่อกับที่เก็บของคุณได้ ไม่มีการเชื่อมต่อเน็ตไม่แตกต่างกัน การโค่นล้มเก็บสำเนาเก่าแก่ของสิ่งที่คุณกำลังทำอยู่ดังนั้น svn diff จะทำงานได้ดี ต้องการเริ่มใหม่หรือ svn ย้อนกลับทำงานไม่ได้เชื่อมต่อเช่นกันชื่อสัญลักษณ์ของการแก้ไข
HEAD เป็นชื่อของส่วนท้ายของลำต้นใน CVS แต่ฉันอยากจะพูดว่า“ -r-1″ เหมือนฉันสามารถย้อนกลับไปได้ในช่วงวัน PVCS ด้วย CVS ฉันต้องทำการบันทึก CV ในสิ่งที่ฉันกำลังแก้ไขแล้วลบออก ไม่สนุกเลย ด้วยการโค่นล้มฉันสามารถพูด svn diff -r PREVการรายงานสถานะจริง
ใน CVS วิธีเดียวที่คุณสามารถดูได้ว่ามีบางสิ่งบนเซิร์ฟเวอร์ใหม่กว่าคือการปรับปรุง cvs และหวังว่าสิ่งที่เกิดขึ้นจะไม่ทำให้เกิดความขัดแย้ง ด้วยคำสั่ง svn สถานะฉันได้รับสถานะจริงดังนั้นฉันสามารถดูว่ามีข้อขัดแย้งก่อนที่ฉันจะทำการอัพเดตหรือไม่การจัดการความขัดแย้ง
ในการรวมที่เป็นประโยชน์ใน CVS หากมีข้อขัดแย้งคุณจะได้รับเครื่องหมายความขัดแย้งในไฟล์ของคุณ ในการโค่นล้มคุณจะได้รับเครื่องหมายข้อขัดแย้งรวมทั้งสำเนาไฟล์ต้นฉบับพรีขัดแย้งของคุณรวมทั้งเวอร์ชันที่ลงมาจากเซิร์ฟเวอร์รวมถึงเวอร์ชันที่คุณแก้ไขในตอนแรก จากนั้นคุณจะต้องแก้ไข svn อย่างชัดเจน filename.txt เพื่อแจ้งการโค่นล้มว่าคุณได้แก้ไขปัญหาแล้ว ไม่มีการย้อนกลับไปสู่ CVS โดยไม่ตั้งใจอีกต่อไปโดยมีเครื่องหมายข้อขัดแย้ง
หมายความว่าการเปลี่ยนแปลงทั้งหมดที่ทำกับไฟล์ทั้งหมดถูกทำในธุรกรรมเดียวดังนั้นจะสำเร็จหรือไม่ทำเลย
ซึ่งหมายความว่าคุณมีโอกาสน้อยที่จะได้รับการแก้ไขบางส่วนเช็คอินที่เก็บซึ่งทำให้การสร้างล้มเหลว คุณยังสามารถทำให้ผู้คนลืมที่จะเช็คอินไฟล์ที่เกี่ยวข้องทั้งหมด แต่นั่นเป็นปัญหากระบวนการแทนที่จะเป็นปัญหากับระบบการกำหนดเวอร์ชัน