การติดตามเวอร์ชันด้วยการโค่นล้ม (SVN) สำหรับผู้เริ่มต้น
คุณเคยต้องการที่จะทำงานในโครงการที่มีความสามารถในการติดตามการเปลี่ยนแปลงของคุณเช่นเดียวกับการย้อนกลับพวกเขา? How-To Geek อธิบายวิธีใช้ระบบติดตามเวอร์ชันยอดนิยม Subversion (a.k.a SVN).
ภาพโดยชัดเจนไม่ชัดเจน
Prelog
คำแนะนำนี้จะช่วยให้คุณสามารถใช้ subversion ไคลเอ็นต์โดยทั่วไปและถ้าคุณมีหนึ่งตัวในเราเตอร์ * DD-WRT ของคุณ คำแนะนำนี้ไม่มีคำแนะนำที่ชัดเจนสำหรับการโค่นล้มและข้อมูลจำนวนมากสามารถพบได้ในการโค่นล้ม Red Book คู่มือนี้มีวัตถุประสงค์เพื่อให้คำตอบสั้น ๆ กับคำถามพื้นฐานที่สุดเท่านั้น.
ภาพรวม
อาจมีสาเหตุหลายประการที่คุณต้องการ "ชำระเงิน" รหัสล่าสุดสำหรับโครงการซอฟต์แวร์ที่ใช้ระบบการกำหนดรุ่น การทำเช่นนั้นช่วยให้คุณได้รับประโยชน์จากการเปลี่ยนแปลงล่าสุดที่ยังไม่ได้เผยแพร่ความช่วยเหลือในการทดสอบและแม้แต่การพัฒนา ในคู่มือนี้เราจะอธิบายคำศัพท์พื้นฐาน SVN ขั้นพื้นฐานแสดงวิธีการติดตั้งไคลเอนต์ SVN บน Linux, Windows และหากคุณมี OPKG ที่เปิดใช้งานเราเตอร์ DD-WRT ของคุณ เราได้รวมตัวอย่างของโครงการที่คุณสามารถชำระเงินและใช้สำหรับเราเตอร์ดังกล่าว.
การโค่นล้มคืออะไร?
การโค่นล้มไม่ได้หมายความว่าระบบควบคุมรุ่นเดียวเท่านั้นที่มีอยู่และทางเลือกอื่น ได้แก่ Git (ซึ่งถูกสร้างโดย Linus Torvalds ผู้ก่อตั้งเคอร์เนล Linux), Mercurial และ PerForce ด้วยที่กล่าวว่ามันเป็นหนึ่งในฟรีมันเป็นผู้ใหญ่และมีการใช้อย่างกว้างขวางทั่วโลก.
ออกมาจากการโค่นล้ม“ Red Book”:
การโค่นล้มเป็นแหล่งเปิด / เสรี ระบบควบคุมเวอร์ชัน (VCS) นั่นคือการโค่นล้มจัดการไฟล์และไดเรกทอรีและการเปลี่ยนแปลงที่เกิดขึ้นเมื่อเวลาผ่านไป วิธีนี้ช่วยให้คุณสามารถกู้คืนข้อมูลรุ่นเก่าหรือตรวจสอบประวัติว่าข้อมูลของคุณเปลี่ยนแปลงไปอย่างไร ในเรื่องนี้หลายคนคิดว่าระบบควบคุมเวอร์ชันเป็น“ ไทม์แมชชีน”
หมายเหตุ: หนังสือเล่มนี้ คือ คอลเลกชันที่ดีที่สุดของความรู้เกี่ยวกับการโค่นล้มและคุณควรที่จะอ้างถึงมันในทุกหัวข้อที่เกี่ยวข้องกับการโค่นล้ม.
การกำหนดเวอร์ชันคืออะไร?
การกำหนดเวอร์ชันเป็นกระบวนการที่บันทึกสถานะของโครงการ ณ เวลาหนึ่ง ๆ ขั้นตอนประเภทนี้มักใช้ในการจัดการการพัฒนาซอฟต์แวร์เพื่อให้งานสามารถดำเนินการปรับปรุงโครงการหรือเพิ่มคุณสมบัติในขณะที่สามารถติดตามสิ่งที่เปลี่ยนไปจากจุด "บันทึก" โดยรวมล่าสุด ในการทำอย่างละเอียดขั้นตอนประเภทนี้จะมีประโยชน์สำหรับคนคนเดียว แต่ยิ่งกว่านั้นสำหรับกลุ่มคนที่ทำงานในโครงการเดียวกันทั้งหมด เพราะโดยปกติเมื่อทำงานในโครงการเป็นกลุ่มจะมีการกระจายความรับผิดชอบและคนที่แตกต่างกันจะเปลี่ยนแง่มุมต่าง ๆ ของโครงการ หากไม่มีกลไกการกำหนดเวอร์ชันมันยากมากที่จะทำให้ทุกคนซิงค์กับการเปลี่ยนแปลงการทำงานล่าสุดจากคนอื่น.
คำศัพท์
พื้นที่เก็บข้อมูล
ที่เก็บเป็นที่เก็บข้อมูลทั้งหมดจากสถานที่ต่าง ๆ ทั้งหมดจะถูกบันทึกไว้ ในโลกการโค่นล้มจากมุมมองของลูกค้าเป็นเซิร์ฟเวอร์ที่เก็บฐานข้อมูลของโครงการ ฐานข้อมูลนี้มีไฟล์ทั้งหมดที่เป็นส่วนหนึ่งของโครงการที่มีรุ่นที่ผ่านมาทั้งหมด.
การทบทวน
เมื่อพื้นที่เก็บข้อมูลถูกสร้างขึ้นมันจะได้รับหมายเลขการแก้ไขเป็นศูนย์ (0) จำนวนนี้จะเพิ่มขึ้นหนึ่ง (1) ทุกครั้งที่มีการคอมมิท หมายเลขการแก้ไขเป็นค่าส่วนกลางสำหรับที่เก็บ กล่าวคือว่าไม่มีหมายเลขการแก้ไขแต่ละรายการสำหรับไฟล์แต่ละไฟล์ในที่เก็บแม้ว่าไม่มีการเปลี่ยนแปลงใด ๆ ในไฟล์นั้นสำหรับการยืนยันเฉพาะนั้น.
สำเนาการทำงาน
สำเนาที่ใช้งานได้คือสำเนาในเครื่อง (หรือ“ ชำระเงิน”) ของรุ่นใดรุ่นหนึ่ง โดยปกติแล้วรุ่นนี้เมื่อเช็คเอาต์คือ "รุ่นล่าสุด" (เรียกอีกอย่างว่า "หัว") แต่สามารถขอรุ่นก่อนหน้าได้ ผู้ใช้สามารถทำอะไรกับสำเนาในเครื่องที่ต้องการได้โดยที่รู้ว่าที่แย่ที่สุดคือพวกเขาสามารถชำระเงินอีกครั้ง ยิ่งกว่านั้นสำเนานี้เป็น "ส่วนตัว" ทั้งนี้เนื่องจากจนกว่าคุณจะอัปเดตหรือส่งสำเนาของคุณคุณจะไม่เห็นการเปลี่ยนแปลงของคนอื่นและพวกเขาจะไม่เห็นคุณ.
การอัปเดตและการแก้ไขข้อขัดแย้ง
สามารถอัปเดตสำเนาการทำงานในเครื่องได้ นั่นคือถ้าคุณ“ ชำระเงิน” รุ่นที่แน่นอนและในขณะที่คุณกำลังทำงานรุ่นที่เก็บได้รับการปรับปรุงคุณสามารถปรับปรุงสำเนาการทำงานของคุณเป็นรุ่นล่าสุด ที่จริงแล้วเซิร์ฟเวอร์จะป้องกันไม่ให้คุณทำการเปลี่ยนแปลงก่อนที่คุณจะอัพเดทเป็นเวอร์ชั่นล่าสุดเพื่อให้ตรงกับที่เก็บ สิ่งนี้ทำเพื่อบังคับให้คุณแก้ไขข้อขัดแย้งในพื้นที่ก่อนที่คุณจะนึกถึงการเปลี่ยนแปลงที่เก็บข้อมูล.
การผสม
การผสานหมายถึงกระบวนการที่รหัสที่ถูกเปลี่ยนจะถูกผสมเป็นหนึ่งรุ่น มันอาจนำมาซึ่งการแก้ไขข้อขัดแย้ง.
commits
การยอมรับเป็นกระบวนการที่การเปลี่ยนแปลงที่คุณทำกับสำเนาโลคัลของคุณจะถูกรวมกลับเข้าไปในที่เก็บ นี่เป็นส่วนที่อันตรายที่สุดของกระบวนการตามที่คุณได้ทำการเปลี่ยนแปลงซึ่งอาจส่งผลกระทบต่อผู้อื่นที่ใช้ที่เก็บเดียวกัน นั่นคือเหตุผลที่มักจะทำสิ่งนี้หลังจากการพิจารณาด้วยความเห็นพ้องของทีมและหลังจากที่คุณได้แก้ไขข้อขัดแย้งใด ๆ.
ขั้นตอนการทำงาน
เวิร์กโฟลว์พื้นฐานที่สุดจากมุมมองของผู้ใช้เมื่อใช้การโค่นล้มคือ:
1. ชำระเงินรหัสที่มีอยู่ (มักจะเป็น "หัว").
2. ทำการเปลี่ยนแปลงเพิ่มไฟล์และพัฒนารหัสโดยทั่วไป.
3. อัปเดตเป็นเวอร์ชันล่าสุดเพื่อให้แน่ใจว่าสำเนาในเครื่องของคุณตรงกับการอัพเดทในที่เก็บ.
4. รวมประเทศและแก้ไขข้อขัดแย้งในกรณีที่จำเป็น.
5. ยอมรับการเปลี่ยนแปลงที่ถูกรวมเข้ากับที่เก็บ.
6. ไปที่ขั้นตอนที่ 2.
ช่วยให้ได้รับการแตกร้าว
ติดตั้งไคลเอนต์
เพื่อให้สามารถใช้การโค่นล้มคุณต้องติดตั้งไคลเอนต์บนเครื่องของคุณ.
บน Linux
คุณต้องติดตั้งแพ็คเกจเท่านั้น สำหรับ Ubuntu / Mint สิ่งนี้สามารถทำได้ด้วย:
sudo aptitude ติดตั้งการโค่นล้ม
ใน DD-WRT
หากคุณได้ติดตาม“ วิธีการติดตั้งซอฟต์แวร์เพิ่มเติมบนโฮมเราเตอร์ของคุณ (DD-WRT)” คุณจะสามารถติดตั้งไคลเอ็นต์ svn ได้โดยเพียงแค่ออก:
อัพเดต opkg; opkg install subversion-client
บน Windows
ในขณะที่เราผู้ใช้อย่างล้ำลึกผู้ใช้อาจเริ่มลืมว่า GUI ยังคงมีอยู่ในบางครั้งไม่ใช่ทุกคนที่มี หากคุณต้องการใช้ไคลเอนต์ windows เพื่อเชื่อมต่อกับที่เก็บข้อมูล SVN โดยที่นิยมมากที่สุดคือ "Tortoise" หากต้องการใช้งานเพียงดาวน์โหลดโปรแกรมและติดตั้งตามปกติ“ ถัดไปถัดไปเสร็จสิ้น”.
สร้าง "พื้นที่เก็บข้อมูล"
แม้ว่าเราจะไม่ได้เข้าไปดูรายละเอียดเกี่ยวกับวิธีตั้งค่าเซิร์ฟเวอร์การโค่นล้มในคู่มือนี้ แต่ทางเลือกของ Google ไม่ใช่จุดเริ่มต้นที่แย่สำหรับผู้ใช้มือใหม่ วิธีสร้างที่เก็บ Google:
- ตรงไปที่เว็บไซต์โฮสติ้ง Google Code และ "สร้าง" โครงการใหม่.
- ในหน้าถัดไปกรอกข้อมูลในฟิลด์ที่จำเป็นและเลือกประเภทของ“ ระบบควบคุมเวอร์ชัน” เพื่อทำการโค่นล้ม.
หมายเหตุ: คุณอาจต้องการดูความแตกต่างระหว่างใบอนุญาตของ Google ที่เสนอก่อนที่คุณจะเลือกหนึ่งใบสำหรับโครงการ. - คลิก“ สร้างโครงการ”.
เมื่อโครงการของคุณถูกสร้างขึ้นคุณควรจะสามารถหาคำแนะนำเกี่ยวกับวิธีการเข้าถึงได้ในแท็บ "แหล่งที่มา".
ข้อดีของโค้ด Google คือมันจะเปิดใช้งานรุ่นอ่านอย่างเดียวที่ไม่ระบุชื่อสำหรับโครงการของคุณ หากคุณไม่ต้องการจัดการกับความยุ่งยากในการสร้างโครงการของคุณเองคุณสามารถเช็คเอาต์ที่เก็บข้อมูลของนักเขียนคนนี้โดยไม่ระบุชื่อ.
หมายเหตุหนึ่งเกี่ยวกับโครงการ hotfortech: โครงการนี้มีวัตถุประสงค์เพื่อใช้เป็น wrapper สำหรับคุณสมบัติที่เพิ่มเข้ากับ DD-WRT บน How-To Geek (ซึ่งฉันใช้เอง) บวกกับการปรับแต่งส่วนตัว ในขณะที่โครงการนี้มุ่งเน้นที่จะทำงานร่วมกับบทความที่เผยแพร่ที่นี่ใน Howtogeek แต่ก็ยังเป็นโครงการส่วนตัวของฉัน นั่นคือมันเหมาะอย่างยิ่งกับเราเตอร์บัฟฟาโลของฉัน (สถาปัตยกรรม AR71xx) ความคาดหวังส่วนบุคคลของฉันและมีแนวโน้มที่จะเป็น borkage เป็นครั้งคราว.
บน Linux / DD-WRT
สร้างไดเร็กทอรีเพื่อทำงานตัวอย่างเช่นบน DD-WRT ที่อาจเป็น:
mkdir -p / jffs / svn; cd / jffs / svn
คำสั่งทั้งหมดบน Linux ประกอบด้วยคำสั่ง SVN เองคำสั่ง“ checkout” ที่อยู่ของที่เก็บและไดเรกทอรีที่จะเช็คเอาต์ด้วย สร้างไดเรกทอรีว่างและดำเนินการคำสั่งด้านล่าง:
svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only
โปรดทราบว่าในตัวอย่างข้างต้นเวอร์ชันสำหรับอ่านอย่างเดียวจะถูกตรวจสอบ หากคุณเลือกที่จะสร้างที่เก็บข้อมูลของคุณเองคุณจะต้องใช้ลิงก์ httpS.
บน Windows
เนื่องจากเต่าเป็นส่วนขยายของเชลล์คุณจะต้องใช้เมนูบริบทของ Windows File Explorer (คลิกขวา) เพื่อใช้ ในความเป็นจริงหากคุณพยายามเรียกใช้จากเมนูเริ่มต้นคุณจะได้รับ:
- สร้างไดเรกทอรีว่าง.
- คลิกขวาที่มันเพื่อเปิดเมนูบริบท.
- เลือก“ ชำระเงิน SVN”:
- คัดลอกและวางลิงค์สำหรับโครงการ (ถ้ามี) ลงในกล่องข้อความ“ URL”:
- ขึ้นอยู่กับขนาดของโครงการของคุณอาจใช้เวลาสักครู่ แต่เมื่อ "การชำระเงิน" เสร็จสมบูรณ์คุณควรเห็นสิ่งต่อไปนี้:
- คุณอาจเริ่มพัฒนา.
“ อัปเดต” &“ ผสาน” สำเนาการทำงานของคุณ
หากคุณทำงานกับรหัสกับเพื่อนร่วมงานหรือคุณกำลังอัปเดตรหัสด้วยตนเองจากหลาย ๆ ที่ (เช่นแล็ปท็อปเดสก์ท็อปหรือเราเตอร์) คุณจะต้องอัปเดตสำเนาการทำงานก่อนที่จะทำการเปลี่ยนแปลงล่าสุด.
บน Linux / DD-WRT
คำสั่งในการทำสิ่งนี้บนระบบ POSIX เหล่านี้เป็นเพียง:
svn up
บน Windows
- คลิกขวาในไดเรกทอรีทำงานและเลือก“ อัพเดต SVN”:
- หากคุณพบข้อขัดแย้งลองทำตามคำแนะนำบนหน้าจอและใช้วิจารณญาณของคุณว่าจะทำอย่างไรกับพวกเขา.
“ ยอมรับ” การเปลี่ยนแปลงของคุณ
คุณควรปราศจากความขัดแย้งและพร้อมที่จะอัปเดตที่เก็บข้อมูลด้วยการเปลี่ยนแปลงของคุณ.
จุดหนึ่งที่ควรทราบที่นี่คือเป็นเรื่องธรรมดาที่จะเพิ่มข้อความ“ บันทึก” ลงในข้อความคอมมิชชันเพื่อให้สามารถจดจำได้ง่ายว่าทำไมการเปลี่ยนแปลงจึงเกิดขึ้น ในความเป็นจริงที่เก็บของ Google ทำให้สิ่งนี้เป็นข้อกำหนดเบื้องต้นที่จำเป็นในการกระทำ.
บน Linux / DD-WRT
นี่คือตัวอย่างของความมุ่งมั่นที่ฉันทำกับโครงการ hotfortech ที่อัปเกรดเป็นเวอร์ชัน 19:
svn commit -m“ อัปเดตเพื่อสะท้อนลิงค์ ant-ads pack ใหม่”
บน Windows
- คลิกขวาในไดเรกทอรีใช้งานและเลือก“ SVN Commit”:
- คุณควรได้รับการต้อนรับจากหน้าต่างที่ช่วยให้คุณสามารถบันทึกข้อความบันทึก:
- กดปุ่มตกลงและเมื่อได้รับแจ้งให้ใส่รหัสผ่านให้ป้อนรหัสผ่านที่สร้างโดย Google.
- หากการกระทำสำเร็จคุณควรเห็นสิ่งต่อไปนี้:
- นั่นคือคุณควรจะสามารถกระทำเช่นเจ้านาย.
หมายเหตุสุดท้าย
นี่น่าจะเพียงพอสำหรับคุณในการเริ่มต้น คุณควรอ่านหนังสืออ้างอิงของ SVN เพื่อให้เข้าใจถึงวิธีการใช้งานตัวเลือกและคำเตือนของ SVN ที่ลึกซึ้งยิ่งขึ้น นอกจากนี้เราเตือนคุณอีกครั้งว่าการโค่นล้มไม่ใช่เพียงระบบควบคุมเวอร์ชันเท่านั้นและ GIT (ซึ่งสร้างโดย Linus Torvalds ผู้ก่อตั้งเคอร์เนล Linux) ดูเหมือนว่าจะได้รับความนิยมในช่วงไม่กี่ปีที่ผ่านมา.
หากคุณเลือกที่จะเรียกใช้ "running-config.sh" จากโครงการ hotfortech บนเราเตอร์ของคุณคุณจะพบว่ามันจะติดตั้งให้คุณในขณะนี้: anti-ads-pack, Opkg geek-init script รวมทั้ง สิ่งต่าง ๆ เช่น GNU แบบเต็ม“ ls”,“ less”,“ BASH” และอื่น ๆ.
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
คุณสมบัติเพิ่มเติมกำลังรอดำเนินการและจะถูกเพิ่มในอนาคต.
ผู้ดูแลระบบจะใช้รหัสในการเข้ารหัส.