ในการโค่นล้มฉันจะตั้งค่าแอปพลิเคชันเวอร์ชันหลักใหม่ได้อย่างไร


10

ฉันกำลังจะเริ่มทำงานกับแอปพลิเคชันเชิงพาณิชย์รุ่นใหม่ (เวอร์ชัน 4) ของฉัน ฉันใช้การโค่นล้ม

จากประสบการณ์ความผิดพลาดและความสำเร็จของคุณคุณจะแนะนำให้ตั้งค่าเวอร์ชั่นใหม่ในการโค่นล้มได้อย่างไร

นี่คือข้อมูลบางส่วน: ฉันตั้งใจจะปล่อยการอัปเดตที่สำคัญในรุ่น 3 ต่อไปหลังจากที่มีการเปิดตัวเวอร์ชัน 4 อย่างไรก็ตามการพัฒนาคุณสมบัติใหม่ทั้งหมดจะเป็นรุ่น 4 เท่านั้น

ในกรณีที่มีความเกี่ยวข้อง: ฉันเป็นผู้พัฒนาเดี่ยวสำหรับผลิตภัณฑ์นี้และมีแนวโน้มที่จะยังคงอยู่ในกรณีนี้

แก้ไข: ฉันรู้แท็กและสาขาของ SVN ฉันเดาว่าสิ่งที่ฉันต้องการคือกลยุทธ์ที่ดีที่สุดสำหรับการใช้แท็กและสาขาในสถานการณ์ของฉัน

คำตอบ:


8

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

สิ่งที่คุณกำลังมุ่งมั่นในตอนนี้จะเป็นtrunkและคุณจะรหัสรุ่น 4 ในนั้น หากมีการเปลี่ยนแปลงที่สำคัญใด ๆ เกิดขึ้นกับเวอร์ชัน 3 และคุณต้องการให้มีในเวอร์ชัน 4 คุณจะต้องทำการผสานจาก branch (v3) ไปยัง trunk (v4) เพื่อนำการเปลี่ยนแปลงไปที่ลำต้น

นอกจากนี้คุณยังสามารถดูแท็กซึ่งมีลักษณะเหมือนกิ่งไม้ แต่เชื่อมโยงไปยังเวอร์ชันเดียวโดยทั่วไปคือการแก้ไขครั้งล่าสุดของเวอร์ชัน (หรือเวอร์ชันแรก)


ในขณะที่สร้างสาขาของเวอร์ชันก่อนหน้าคุณยังสามารถสร้างแท็กสำหรับทุกการอัพเดท / รุ่นที่คุณสร้าง วิธีนี้ทำให้คุณมีสาขาที่จะผูกพันและคุณสามารถใช้แท็กเพื่อสร้างรีลีสก่อนหน้านี้ที่คุณทำ
Geerten

แท็ก IIRC ใน svn ไม่จำเป็นต้องเชื่อมโยงไปยังเวอร์ชั่นเดียว แต่จริงๆแล้วมันเหมือนกับสาขาในทั้งหมดยกเว้น intension
jk

ที่จริงแล้วกิ่งและแท็กนั้นเหมือนกันในการนำไปใช้จริง ๆ แล้วมันคือสำเนาของรหัส มันเป็นเพียงในการประชุมที่พวกเขาแตกต่างแท็กมีจุดมุ่งหมายเพื่อชี้ไปที่การแก้ไขโดยเฉพาะในขณะที่สาขาควรจะเป็นเส้นทางการพัฒนาทางเลือก
Karthik T

3

มันขึ้นอยู่กับ.

คุณสามารถเก็บรุ่น 4 ไว้ในลำตัวและพัฒนาต่อไปใน V4 เวอร์ชัน 3 จะเป็นสาขาที่คุณต้องการอัปเดตตามต้องการ ประโยชน์ของวิธีการนี้คือหากพบปัญหาร้ายแรงใน V3 ที่อยู่ใน V4 คุณสามารถผสานไฟล์อย่างง่ายข้ามสาขาได้

ตัวเลือกอื่นคือการสร้างและที่เก็บใหม่ทั้งหมดสำหรับ V4 สิ่งนี้จะทำให้คุณเริ่มต้นใหม่ ข้อเสียคือประวัติการเปลี่ยนแปลงถูกรีเซ็ตและคุณจะไม่สามารถรวมไฟล์ผ่านการโค่นล้ม คุณจะต้องใช้โปรแกรมเช่น Beyond Compare เพื่อรวมการเปลี่ยนแปลง

ส่วนตัวฉันจะยึดติดกับวิธีแรก สร้างสาขา V3 และบำรุงรักษารหัสและการปรับปรุงในสาขานี้ โค้ด V4 ใหม่สามารถพัฒนาได้ใน trunk


2

ฉันพบแนวทางที่ดีเยี่ยมสำหรับสถานการณ์นี้ :

If you want to be able to both develop a newer version (in trunk) and 
fix bugs on an older version, what you want is a branch for the older 
version. You can fix your bug in the older version's branch, then 
make a new tag of that. 
Example: 
/repo/ 
        project/ 
                trunk/ 
                branches/   
                tags/ 
You've developed your software in trunk and are now ready to call it 
version 1.0. You make a branch and a tag: 
svn cp $REPO/project/trunk $REPO/project/branches/1.x 
svn cp $REPO/project/branches/1.x $REPO/project/tags/1.0 
/repo/ 
        project/ 
                trunk/ 
                branches/ 
                        1.x/    
                tags/ 
                        1.0/ 
Now you continue to develop in trunk, adding new features, and this 
will eventually become version 2.0. But while you're doing this, you 
find a bug in 1.0 and need to fix it quick. So you check out branches/ 
1.x, make the change, test it, and commit it. Then you tag that as 1.1: 
svn cp $REPO/project/branches/1.x $REPO/project/tags/1.1 
/repo/ 
        project/ 
                trunk/ 
                branches/ 
                        1.x/    
                tags/ 
                        1.0/ 
                        1.1/ 
If the bug also exists in trunk, then you need to port your bugfix to 
trunk. "svn merge" can help you there. 
cd trunk-wc 
svn merge -c$R $REPO/project/branches/1.x . 
where $R is the revision in which you fixed the bug on the 1.x 
branch. Now you test the fix in trunk and then commit it. Now the bug 
is fixed in trunk too. 

0

สิ่งที่คุณถามเกี่ยวกับกลยุทธ์สาขา (และผสาน) ที่จะใช้ ดังนั้นนำโพสต์ของkarthik tและใช้เป็นสูตร

สำหรับพื้นหลังบางส่วนให้อ่านแหล่งข้อมูลต่อไปนี้:

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