คำถามติดแท็ก version-control

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

11
ฉันจะตั้งค่าระบบควบคุมซอร์สโค้ดสำหรับตัวเองได้อย่างไร
ฉันโปรแกรมบนเดสก์ท็อปของฉันในสำนักงานของฉัน แต่บางครั้งก็อยู่ที่บ้านในห้องที่แตกต่างกันบนแล็ปท็อปของฉันและแม้แต่อยู่ไกลบ้าน สิ่งที่ฉันต้องการคือระบบที่จะซิงค์งานของฉันจากที่หนึ่งไปอีกที่หนึ่งโดยอัตโนมัติหรือตามต้องการ ฉันไม่มีการตั้งค่าเครือข่ายในบ้านและถึงแม้ว่าฉันคิดว่าฉันสามารถทำได้นั่นอาจเป็นคำถามสำหรับบอร์ดอื่น ฉันคิดเกี่ยวกับระบบบางอย่างที่จะเก็บซอร์สโค้ดในคลาวด์ แต่ฉันไม่รู้เกี่ยวกับสิ่งนี้พอที่จะเริ่มต้น ฉันต้องการวิธีฟรีหรือราคาถูกในการทำเช่นนี้ ฉันทำงานใน. NET (Windows Phone 7 อันที่จริง)

5
การฟอร์แมตและการควบคุมเวอร์ชัน
เรื่องการจัดรูปแบบรหัส แม้เรื่องการเยื้อง และความมั่นคงมีความสำคัญมากกว่าการปรับปรุงเล็กน้อย แต่โครงการมักจะไม่มีคู่มือสไตล์ชัดเจนชัดเจนตรวจสอบได้และบังคับใช้ตั้งแต่วันที่ 1 และการปรับปรุงที่สำคัญอาจมาถึงทุกวัน บางทีคุณอาจพบว่า SELECT id, name, address FROM persons JOIN addresses ON persons.id = addresses.person_id; อาจเขียนได้ดีกว่า / เขียนได้ดีกว่า SELECT persons.id, persons.name, addresses.address FROM persons JOIN addresses ON persons.id = addresses.person_id; ในขณะที่ทำงานเพื่อเพิ่มคอลัมน์เพิ่มเติมในแบบสอบถาม บางทีนี่อาจเป็นคำถามที่ซับซ้อนที่สุดในทั้งสี่ข้อความในรหัสของคุณหรือข้อความค้นหาเล็กน้อยในหมู่คนนับพัน ไม่ว่าการเปลี่ยนแปลงจะทำได้ยากเพียงใดคุณตัดสินใจได้ว่ามันคุ้มค่า แต่คุณจะติดตามการเปลี่ยนแปลงของรหัสในการเปลี่ยนแปลงการจัดรูปแบบที่สำคัญได้อย่างไร คุณเพียงแค่ยอมแพ้และพูดว่า "นี่คือจุดที่เราเริ่มต้นอีกครั้ง" หรือคุณสามารถฟอร์แมตแบบสอบถามทั้งหมดในประวัติพื้นที่เก็บข้อมูลทั้งหมด หากคุณใช้ระบบควบคุมเวอร์ชันแบบกระจายเช่น Git คุณสามารถย้อนกลับไปสู่การคอมมิทครั้งแรกและฟอร์แมตใหม่จากที่นี่ไปเป็นสถานะปัจจุบัน แต่มันเป็นงานจำนวนมากและทุกคนจะต้องหยุดทำงานชั่วคราว (หรือเตรียมพร้อมสำหรับแม่ของการรวมทั้งหมด) ในขณะที่มันกำลังดำเนินอยู่ มีวิธีที่ดีกว่าในการเปลี่ยนประวัติศาสตร์ซึ่งให้ผลลัพธ์ที่ดีที่สุด: สไตล์เดียวกันในทุกการกระทำ ผสานงานน้อยที่สุด …

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

2
เป็นการดีหรือไม่ที่จะเก็บหมายเลขเวอร์ชันของซอฟต์แวร์ใน VCS?
เวอร์ชันผลิตภัณฑ์เช่นv1.0.0.100ไม่เพียงแสดงถึงการผลิตซอฟต์แวร์ที่ไม่ซ้ำใคร แต่ช่วยระบุชุดคุณลักษณะและขั้นตอนการแก้ไขด่วนสำหรับผลิตภัณฑ์ดังกล่าว ตอนนี้ฉันเห็นสองวิธีในการรักษาแพ็กเกจ / build / ไบนารีเวอร์ชันสุดท้ายของผลิตภัณฑ์: การควบคุมเวอร์ชัน ไฟล์ที่เก็บหมายเลขรุ่น เซิร์ฟเวอร์การสร้างการรวมต่อเนื่อง (CI) จะมีสคริปต์เพื่อสร้างซอฟต์แวร์ที่ใช้หมายเลขรุ่นที่เช็คอินนี้เพื่อใช้กับทุกพื้นที่ของซอฟต์แวร์ที่ต้องการ (ไบนารีแพคเกจการติดตั้งหน้าช่วยเหลือเอกสาร ฯลฯ ) สภาพแวดล้อมและ / หรือสร้างพารามิเตอร์ สิ่งเหล่านี้ได้รับการดูแลรักษาไว้นอกการควบคุมเวอร์ชัน (เช่นไม่ได้เชื่อมโยงกับสแน็ปช็อต / แท็ก / สาขา) สคริปต์การสร้างกระจายและใช้หมายเลขในลักษณะเดียวกัน แต่พวกเขาเพิ่งได้รับค่าที่แตกต่างกัน (มันมีให้กับสคริปต์การสร้างแทนที่จะให้สคริปต์รู้ว่าจะรับได้ที่ไหนเทียบกับต้นไม้แหล่งที่มา) ปัญหาที่เกิดขึ้นกับวิธีแรกคือมันสามารถทำให้เกิดการผสมข้ามสาขาได้ยาก หากคุณยังคงรักษาซอฟต์แวร์รุ่นเดียวกันไว้ 2 ขนานคุณจะแก้ไขข้อขัดแย้งเมื่อรวมระหว่างการฉีดสองครั้งหากเวอร์ชันมีการเปลี่ยนแปลงทั้งคู่ตั้งแต่การรวมครั้งล่าสุด ปัญหาเกี่ยวกับวิธีการที่สองคือการกระทบยอด เมื่อคุณกลับไปที่การวางจำหน่าย 1 ปีที่ผ่านมาคุณจะพึ่งพาข้อมูลแท็กเพียงอย่างเดียวเพื่อระบุหมายเลขรุ่น ในทั้งสองกรณีอาจมีบางแง่มุมของหมายเลขเวอร์ชันที่ไม่ทราบก่อนสร้าง CI ตัวอย่างเช่นการสร้าง CI โดยทางโปรแกรมอาจใส่องค์ประกอบที่ 4 ซึ่งเป็นหมายเลขบิลด์อัตโนมัติ (เช่นบิลด์ที่ 140 ในสาขา) อาจเป็นหมายเลขการแก้ไขใน VCS วิธีที่ดีที่สุดในการติดตามหมายเลขเวอร์ชันของซอฟต์แวร์คืออะไร ควรรักษาชิ้นส่วน "รู้จัก" …

5
มีเหตุผลที่จะใช้คอมไพล์ในเครื่องของฉันหรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว มันใช้ได้หรือไม่ที่จะใช้คอมไพล์ในพื้นที่เท่านั้น? ฉันไม่ต้องการจ่ายค่าบริการที่ให้บริการพื้นที่เก็บข้อมูลส่วนตัว (เช่น Github) แต่ฉันคิดว่า git เป็นวิธีที่ยอดเยี่ยมในการจัดระเบียบโครงการโอเพ่นซอร์สของฉัน

8
เหตุใดระบบควบคุมแหล่งข้อมูลจึงยังคงสำรองข้อมูลส่วนใหญ่อยู่
ดูเหมือนว่าระบบควบคุมแหล่งข้อมูลเพิ่มเติมยังคงใช้ไฟล์เป็นวิธีการจัดเก็บข้อมูลรุ่น Vault และ TFS ใช้ Sql Server เป็นแหล่งข้อมูลซึ่งฉันคิดว่าจะดีกว่าสำหรับความสอดคล้องของข้อมูลและความเร็ว ดังนั้นทำไม SVN ฉันเชื่อว่า GIT, CVS และอื่น ๆ ยังคงใช้ระบบไฟล์เป็นฐานข้อมูลเป็นหลัก (ฉันถามคำถามนี้เพราะเรามีเซิร์ฟเวอร์ SVN ของเราเพียงเสียหายในช่วงคอมมิชชันปกติ) แทนที่จะใช้ซอฟต์แวร์ฐานข้อมูลจริง ( MSSQL, Oracle, Postgre, ฯลฯ )? แก้ไข: ฉันคิดว่าอีกวิธีหนึ่งในการถามคำถามของฉันคือ "ทำไมนักพัฒนา VCS จึงหมุนระบบจัดเก็บข้อมูลของตนเองแทนที่จะใช้ระบบที่มีอยู่?"

6
เหตุผลเฉพาะสำหรับยังคงใช้การโค่นล้ม? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันต้องการเลือกระบบควบคุมเวอร์ชันสำหรับ บริษัท ของฉัน จนถึงตอนนี้ฉันรู้ว่าฉันมี Git, การโค่นล้มและ Mercurial ทุกวันนี้ฉันเห็นว่า Git นั้นถูกใช้มากที่สุดดังนั้นฉันจึงสงสัยว่าจะมีเหตุผลใดที่จะยังคงใช้การโค่นล้มหรือฉันควรไปที่ Git โดยตรงหรือไม่

6
วิธีส่งเสริมการยอมรับการควบคุมเวอร์ชัน
ฉันเพิ่งเริ่มทำงานในทีมที่ไม่มีการควบคุมเวอร์ชัน สมาชิกในทีมส่วนใหญ่ไม่คุ้นเคยกับการควบคุมเวอร์ชันใด ๆ ฉันใช้ Mercurial เป็นการส่วนตัวเพื่อติดตามงานของฉัน ฉันต้องการสนับสนุนให้ผู้อื่นนำมาใช้และอย่างน้อยที่สุดก็เริ่มต้นสร้างรหัสของพวกเขาเมื่อพวกเขาพัฒนาการเปลี่ยนแปลง ทุกคนสามารถให้คำแนะนำเกี่ยวกับวิธีที่ฉันสามารถกระตุ้นให้เกิดการยอมรับการควบคุมเวอร์ชันแบบกระจายเช่น Mercurial คำแนะนำใด ๆ เกี่ยวกับวิธีการเอาชนะผู้คนรวมถึงผู้จัดการของ DVCS จะได้รับการชื่นชมมาก

13
การโค่นล้ม / การควบคุมแหล่งสำหรับรหัสการผลิตเท่านั้น?
ฉันจบการศึกษาจากวิทยาลัยในสาขาวิทยาศาสตร์คอมพิวเตอร์เมื่อปีที่แล้วและตอนนี้ฉันทำงานที่ บริษัท พัฒนาเว็บไซต์ขนาดเล็ก (ฉันและนักพัฒนารายอื่นรวมถึงผู้จัดการฝ่ายบริการลูกค้าและผู้ทดสอบ) ก่อนที่ฉันจะเริ่มก็ยังไม่มีระบบควบคุมแหล่งที่มา ตอนนี้เราเริ่มที่จะนำ SVN ไปใช้อย่างช้าๆ แต่นักพัฒนา (อาวุโส) คนอื่น ๆ (ต่อจากนี้ไปจะเรียกว่า Joe) ยืนยันว่ารหัสเดียวที่ควรจะมีไว้สำหรับที่เก็บ SVN ของเราคือสิ่งที่ได้รับการทดสอบและรับรองว่าพร้อมใช้งานจริง ซึ่งหมายความว่าในโครงการขนาดใหญ่อาจไม่มีข้อผูกมัดต่อสัปดาห์ในแต่ละครั้งหรือมากกว่า นี่เป็นเรื่องปกติหรือไม่? ดูเหมือนว่าฉันจะชอบเราเสียประโยชน์มากมายจากการควบคุมแหล่งรวมถึง: การติดตามความคืบหน้าของโครงการอย่างละเอียด ติดตามปัญหาตามที่ปรากฏและได้รับการแก้ไข ย้อนกลับข้อผิดพลาดได้อย่างง่ายดาย สำรองข้อมูลรหัสได้ง่ายดังนั้นเราจะไม่สูญเสียอะไรมากหากเวิร์กสเตชันหยุดทำงาน ง่ายกว่าที่จะระบุว่ารหัสใดกำลังทำงานอยู่ในพื้นที่ผลิตจริงโดยสมมติว่าเราประทับตราการปรับปรุงลงในไฟล์ปฏิบัติการตามที่อธิบายไว้ที่นี่ การทำงานร่วมกันที่ง่าย (แม้ว่าเราจะไม่ทำงานเป็นทีมมันเป็นโครงการเดี่ยวทั้งหมด) เป็นต้น แก้ไข: ฉันควรเน้นว่าในอดีตไม่มีการทำงานเป็นทีมที่แท้จริงใน บริษัท นี้ นักพัฒนาเพียงสองคนที่ทำงานในโครงการแยกต่างหาก นอกจากนี้โครงการจำนวนมากมีขนาดเล็กเพื่อให้สามารถดำเนินการให้เสร็จภายในสองสามสัปดาห์ และ บริษัท อยู่ในธุรกิจมานานกว่าทศวรรษและได้รับพร้อมโดยไม่มีการควบคุมแหล่งที่มา โครงการมักจะแล้วเสร็จภายในระยะเวลาโดยประมาณ

4
วิธีที่ดีที่สุดในการจัดการการกำหนดเวอร์ชันผลิตภัณฑ์และการแยกของโครงการระยะยาวคืออะไร
โดยทั่วไปแล้วสำหรับโครงการระยะยาวที่อาจมีการเปิดตัวหลายครั้งในช่วงวงจรชีวิตผลิตภัณฑ์และต้องการการสนับสนุนผลิตภัณฑ์ก่อนหน้านี้วิธีที่ดีที่สุดในการจัดการเวอร์ชันผลิตภัณฑ์และการแตกสาขาของรหัสคืออะไร ในแง่ที่เฉพาะเจาะจงมากขึ้นสมมติว่ามีการควบคุมเวอร์ชันการกระจายที่เหมาะสมอยู่ในสถานที่ (เช่น git) และทีมมีขนาดเล็กถึงขนาดใหญ่และนักพัฒนาดังกล่าวอาจทำงานในหลายโครงการพร้อมกัน ปัญหาสำคัญที่กำลังเผชิญอยู่คือมีข้อผูกมัดตามสัญญาที่ให้การสนับสนุนเวอร์ชันเก่าตามที่มีอยู่ในเวลาซึ่งหมายความว่าการพัฒนาใหม่ไม่สามารถแก้ไขรหัสเก่าได้ (ผลิตภัณฑ์ Microsoft Office อาจเป็นตัวอย่างของสิ่งนี้ คุณลักษณะปีที่คุณเป็นเจ้าของ) ดังนั้นการกำหนดเวอร์ชันผลิตภัณฑ์ในปัจจุบันจึงเป็นเรื่องที่ซับซ้อนเนื่องจากแต่ละผลิตภัณฑ์หลักมีการขึ้นต่อกันหลายอย่างแต่ละรุ่นมีเวอร์ชันของตัวเองซึ่งอาจเปลี่ยนแปลงได้ระหว่างการเปิดตัวรายปี ในทำนองเดียวกันในขณะที่แต่ละผลิตภัณฑ์มีที่เก็บของตัวเองงานส่วนใหญ่ไม่ได้ทำในลำตัวแหล่งข้อมูลหลัก แต่จะอยู่ในสาขาสำหรับการเปิดตัวผลิตภัณฑ์ในปีนั้นพร้อมกับสาขาใหม่ที่ถูกสร้างขึ้นเมื่อมีการเปิดตัวผลิตภัณฑ์เพื่อสนับสนุน นี่หมายความว่าการได้รับฐานรหัสของผลิตภัณฑ์ไม่ใช่เรื่องง่ายอย่างที่ใคร ๆ คิดว่าเมื่อใช้การควบคุมเวอร์ชัน

3
การควบคุมแหล่งที่มาถูกคิดค้นเมื่อใด
ฉันตระหนักถึงระบบควบคุมหลายเวอร์ชัน: CVS, SVN, TFS และอื่น ๆ ... ฉันใช้ Google เป็นครั้งแรก "การควบคุมการแก้ไข / ระบบควบคุมเวอร์ชัน" และเห็นคำตอบที่ขัดแย้งกัน การควบคุมแหล่งที่มาถูกคิดค้นเมื่อใด ใครเป็นคนคิดค้นมัน? มันเรียกว่าอะไร?

4
ฉันจะจัดระเบียบที่เก็บ Git ส่วนตัวได้อย่างไร
ฉันอยู่ในขั้นตอนการตั้งค่าบัญชี GitHub โดยมีแผนที่จะสร้างห้องสมุดคู่หนึ่งที่ฉันพัฒนาขึ้นเพื่อเป็นส่วนหนึ่งของโครงการ iOS ล่าสุดบางโครงการที่สามารถใช้งานได้ฟรีสำหรับผู้พัฒนา iOS คนอื่น ๆ ปัจจุบันฉันไม่มีการสำรองข้อมูลนอกสถานที่สำหรับรหัสส่วนใหญ่ของฉันดังนั้นในตอนแรกฉันคิดว่าฉันจะอัปโหลดโครงการส่วนตัวทั้งหมดของฉันหรืออย่างน้อยโครงการ iOS ทั้งหมดของฉันไปยังที่เก็บส่วนตัวที่โฮสต์โดย GitHub . แต่ฉันมีจำนวนมากของโครงการนั่งรอบหลายแห่งซึ่งเป็นธรรมที่มีมูลค่าต่ำ (เช่นดัดแปลงมาจากหนังสือและเขียนขึ้นสำหรับประสบการณ์การเรียนรู้) GitHub ไม่เพียงเรียกเก็บจากที่เก็บข้อมูลส่วนตัว แต่ดูเหมือนว่าจะไม่มีวิธีการจัดระเบียบที่เก็บตามลำดับชั้น มีบางอย่างที่ฉันขาดหายไปซึ่งจะทำให้ฉันสามารถใช้พื้นที่เก็บข้อมูล git กับลำดับชั้นและตรวจสอบชิ้นส่วนตามที่ฉันต้องการ / ทำงานกับพวกเขาวิธีที่ฉันทำกับ SVN ในปัจจุบัน? GitHub (หรือคู่แข่งเช่น BitBucket) มีคุณสมบัติบางอย่างขององค์กรโครงการที่ฉันขาดหายไปหรือไม่? หากไม่เป็นเช่นนั้น "วิธี Git" ที่เป็นที่ยอมรับโดยทั่วไปในการจัดการกับสถานการณ์นี้ (ยกเลิกโครงการที่ไม่ได้มีไว้สำหรับเผยแพร่ให้เก็บออฟไลน์รวมพวกมันเข้าด้วยกัน ฯลฯ )? เท่าที่ฉันสามารถบอกได้ตัวเลือกของฉันคือ: ใส่ไลบรารี่บน GitHub แล้วดำเนินการโฮสต์ SVN ของฉันต่อไปสำหรับโครงการอื่น ๆ ทั้งหมดใช้โซลูชันที่ไม่ใช่ VCS สำหรับการสำรองข้อมูลนอกไซต์ (blech) ใส่ไลบรารีและซอฟต์แวร์ที่ฉันวางแผนจะวางจำหน่ายบน GitHub (ในฐานะที่เป็นรัฐและเอกชนตามลำดับ) …

6
ปวดหัวโดยใช้การควบคุมเวอร์ชันแบบกระจายสำหรับทีมดั้งเดิม?
แม้ว่าฉันจะใช้และชอบ DVCS สำหรับโครงการส่วนบุคคลของฉันและสามารถเห็นได้อย่างชัดเจนว่ามันช่วยให้คุณจัดการการสนับสนุนโครงการของคุณจากผู้อื่นได้ง่ายขึ้น (เช่นสถานการณ์ Github ทั่วไปของคุณ) แต่ดูเหมือนว่าสำหรับทีม "ดั้งเดิม" อาจมีปัญหามากกว่า วิธีการรวมศูนย์ที่ใช้งานโดยโซลูชันเช่น TFS, Perforce เป็นต้น (โดย "ดั้งเดิม" ฉันหมายถึงทีมนักพัฒนาในสำนักงานที่ทำงานในโครงการหนึ่งที่ไม่มีใคร "เป็นเจ้าของ" โดยทุกคนอาจสัมผัสรหัสเดียวกัน) ปัญหาเหล่านี้สองสามอย่างที่ฉันเห็นล่วงหน้าด้วยตัวเอง แต่โปรดพูดสอดแทรกกับข้อควรพิจารณาอื่น ๆ ในระบบดั้งเดิมเมื่อคุณพยายามตรวจสอบการเปลี่ยนแปลงของคุณในเซิร์ฟเวอร์หากมีคนอื่นตรวจสอบก่อนหน้านี้ในการเปลี่ยนแปลงที่ขัดแย้งกันแล้วคุณจะถูกบังคับให้รวมก่อนที่คุณจะสามารถตรวจสอบของคุณในรุ่น DVCS นักพัฒนาแต่ละคนตรวจสอบ การเปลี่ยนแปลงในท้องถิ่นและในบางจุดผลักไปที่ repo อื่น ๆ repo นั้นมีสาขาของไฟล์นั้นที่ 2 คนเปลี่ยน ดูเหมือนว่าตอนนี้บางคนต้องรับผิดชอบในการจัดการกับสถานการณ์นั้น บุคคลที่ได้รับมอบหมายในทีมอาจไม่มีความรู้เพียงพอเกี่ยวกับ codebase ทั้งหมดเพื่อให้สามารถจัดการกับการรวมความขัดแย้งทั้งหมด ดังนั้นตอนนี้จึงมีการเพิ่มขั้นตอนพิเศษที่บางคนต้องเข้าหาหนึ่งในผู้พัฒนาบอกให้เขาดึงและทำการรวมแล้วกดอีกครั้ง (หรือคุณต้องสร้างโครงสร้างพื้นฐานที่ทำงานโดยอัตโนมัติ) นอกจากนี้เนื่องจาก DVCS มีแนวโน้มที่จะทำงานในพื้นที่ให้สะดวกจึงมีความเป็นไปได้ที่นักพัฒนาจะสามารถสะสมการเปลี่ยนแปลงบางอย่างใน repos ท้องถิ่นของพวกเขาก่อนที่จะผลักดันทำให้ความขัดแย้งดังกล่าวเป็นเรื่องธรรมดาและซับซ้อนมากขึ้น เห็นได้ชัดว่าถ้าทุกคนในทีมทำงานได้เฉพาะในส่วนต่าง ๆ ของรหัสนี่ไม่ใช่ปัญหา แต่ฉันอยากรู้เกี่ยวกับกรณีที่ทุกคนทำงานกับรหัสเดียวกัน ดูเหมือนว่ารูปแบบการรวมศูนย์บังคับให้เกิดความขัดแย้งที่จะได้รับการจัดการอย่างรวดเร็วและบ่อยครั้งลดความจำเป็นในการรวมตัวที่ใหญ่โตเจ็บปวดหรือมีใคร "ตำรวจ" เป็นตัวแทนหลัก …

7
การสร้างรายวันสำคัญอย่างไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว หนึ่งในเกณฑ์ของการทดสอบ Joelคืองานสร้างรายวัน แนวคิดก็คือว่าถ้าการสร้างเสียหายใครก็ตามที่ทำลายมันจะต้องแก้ไข หากไม่สามารถแก้ไขบิลด์ได้ทุกคนจะต้องตรวจสอบเวอร์ชั่นเก่าและใช้งานมัน ฉันสามารถเข้าใจได้ว่าสิ่งนี้อาจไม่ดีนักในการควบคุมเวอร์ชันรวมศูนย์ซึ่งเป็นเรื่องสำคัญที่จะต้องหลีกเลี่ยงการรวมและแยกย่อยให้มากที่สุดเท่าที่จะเป็นไปได้ คุณเห็นด้วยกับสิ่งนี้หรือไม่? มีเหตุผลอื่น ๆ หรือไม่ที่การสร้างรายวันมีความสำคัญ?

2
ใน git มันเป็นความคิดที่ดีที่จะสร้างแท็กที่มีชื่อเดียวกันกับสาขาที่ถูกลบหรือไม่?
ผมมีโครงการที่มีการแตกแขนงคอมไพล์รูปแบบที่ประมาณดังนี้ว่าnvie ของคอมไพล์ไหล สาขาที่วางจำหน่ายของเรามีชื่ออยู่ในรูปแบบของSemVerเช่นv1.5.2 เมื่อสาขาย่อยได้รับไฟสีเขียวเพื่อการผลิตเราจะปิดสาขาโดยรวมมันเข้ากับต้นแบบใช้แท็กแล้วลบสาขา เมื่อเราลบสาขาที่วางจำหน่ายทันทีเราได้ใช้ตัวระบุเดียวกันสำหรับการติดแท็กสาขาเช่น v1.5.2 นี่คือคำสั่งที่เราใช้ปิดสาขาที่วางจำหน่าย: $ git checkout master $ git merge v1.5.2 $ git tag -a v1.5.2 -m "Version 1.5.2 - foo bar, baz, etc" $ git branch -d v1.5.2 $ git branch -dr origin/v1.5.2 $ git push origin :v1.5.2 $ git push $ git push --tags …

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