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

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

8
'เวที' หมายถึงอะไรใน git?
ฉันพบว่ายากที่จะเข้าใจเพราะฉันไม่สามารถหาความหมายของคำที่ใช้สำหรับการกระทำได้ ฉันตรวจสอบพจนานุกรมสำหรับความหมายของ 'ระยะ' และไม่มีความหมายใดที่เกี่ยวข้องกับแนวคิดการควบคุมแหล่งที่มา 'ระยะ' หมายถึงอะไรในบริบทของคอมไพล์?

10
ฉันเป็นคนโค่นล้มเพราะเหตุใดฉันจึงควรพิจารณาหรือไม่พิจารณา Mercurial หรือ Git หรือ DVCS อื่น ๆ
ฉันพยายามเข้าใจถึงประโยชน์ของระบบควบคุมรุ่นแจกจ่าย (DVCS) ฉันพบว่าการโค่นล้ม Re-educationและบทความนี้โดยMartin Fowlerมีประโยชน์มาก Mercurial และ DVCS อื่น ๆ โปรโมตวิธีใหม่ในการทำงานกับโค้ดด้วยเซ็ตการแก้ไขและการคอมมิชชันท้องถิ่น มันป้องกันการรวมนรกและปัญหาการทำงานร่วมกันอื่น ๆ เราไม่ได้รับผลกระทบจากสิ่งนี้เนื่องจากฉันฝึกการรวมกลุ่มอย่างต่อเนื่องและทำงานคนเดียวในสาขาเอกชนไม่ใช่ตัวเลือกเว้นแต่ว่าเรากำลังทำการทดลอง เราใช้สาขาสำหรับทุกรุ่นสำคัญซึ่งเราจะแก้ไขข้อบกพร่องที่รวมเข้ากับลำต้น Mercurial อนุญาตให้คุณมีผู้หมวด ฉันเข้าใจว่าสิ่งนี้มีประโยชน์สำหรับโครงการขนาดใหญ่มากเช่น Linux แต่ฉันไม่เห็นคุณค่าในทีมขนาดเล็กและการทำงานร่วมกันสูง (5 ถึง 7 คน) Mercurial เร็วกว่าใช้พื้นที่ดิสก์น้อยลงและการทำสำเนาโลคัลเต็มรูปแบบช่วยให้สามารถบันทึกและดำเนินการได้เร็วขึ้น ฉันไม่ได้กังวลเรื่องนี้เช่นกันเนื่องจากฉันไม่ได้สังเกตเห็นความเร็วหรือปัญหาเกี่ยวกับพื้นที่ของ SVN แม้ว่าจะมีโครงการขนาดใหญ่มากที่ฉันกำลังทำงานอยู่ ฉันกำลังมองหาประสบการณ์ส่วนตัวและ / หรือความคิดเห็นของคุณจากอดีต SVN โดยเฉพาะอย่างยิ่งเกี่ยวกับแนวคิดเซ็ตการแก้ไขและประสิทธิภาพโดยรวมที่คุณวัดได้ UPDATE (วันที่ 12 มกราคม) : ตอนนี้ฉันเชื่อว่ามันคุ้มค่าที่จะลอง UPDATE (12 มิ.ย. ) : ฉันจูบ Mercurial และฉันชอบมัน รสชาติของเชอร์รี่ท้องถิ่นของเขามุ่งมั่น ฉันจูบ …

20
SVN ทำอะไรได้ดีกว่า Git [ปิด]
ไม่มีคำถามว่าส่วนใหญ่ของการอภิปรายมากกว่าเครื่องมือโปรแกรมเมอร์กลั่นทั้งทางเลือกส่วนบุคคล (โดยผู้ใช้) หรือเน้นการออกแบบ , ที่ , การเพิ่มประสิทธิภาพการออกแบบตามโดยเฉพาะอย่างยิ่งการใช้กรณี (โดยสร้างเครื่องมือ) โปรแกรมแก้ไขข้อความอาจเป็นตัวอย่างที่โดดเด่นที่สุด - coder ที่ทำงานบน Windows ในที่ทำงานและรหัสในHaskellบน Mac ที่บ้านค่าข้ามแพลตฟอร์มและการรวมคอมไพเลอร์และเลือกEmacsผ่านTextMateฯลฯ เป็นเรื่องธรรมดาที่เทคโนโลยีที่เพิ่งนำมาใช้ใหม่นั้นมีความเหนือกว่าตัวเลือกที่ยังหลงเหลืออยู่ ในความเป็นจริงแล้วกรณีนี้เกิดขึ้นกับระบบควบคุมเวอร์ชัน (VCS) โดยเฉพาะอย่างยิ่งVCS แบบรวมศูนย์ ( CVSและSVN ) กับVCS ( GitและMercurial ) แบบกระจาย ? ฉันใช้ SVN เป็นเวลาประมาณห้าปีและปัจจุบัน SVN ใช้ในที่ทำงานของฉัน น้อยกว่าสามปีก่อนฉันเปลี่ยนมาใช้ Git (และ GitHub) สำหรับโครงการส่วนตัวทั้งหมดของฉัน ฉันสามารถคิดถึงข้อดีหลายประการของ Git ในการโค่นล้ม (และนามธรรมส่วนใหญ่จะเป็นข้อได้เปรียบของการกระจายไปยัง VCS ส่วนกลาง) แต่ฉันไม่สามารถคิดถึงตัวอย่างที่ตรงกันข้ามได้ - งานบางอย่าง (ที่เกี่ยวข้องและเกิดขึ้นในโปรแกรมเมอร์ตามปกติ …

14
ทำไมทุกคนถึงใช้ Git ในลักษณะรวมศูนย์?
ฉันใช้ Git ในอดีตที่ผ่านมาทั้งสอง บริษัท เพื่อควบคุมเวอร์ชัน ดูเหมือนว่าจากสิ่งที่ฉันได้ยินมาว่าประมาณ 90% ของ บริษัท ใช้ Git มากกว่าระบบควบคุมเวอร์ชันอื่น หนึ่งในจุดขายที่ใหญ่ที่สุดของ Git ก็คือมันมีการกระจายอำนาจเช่นที่เก็บทั้งหมดมีค่าเท่ากัน ไม่มีแหล่งเก็บข้อมูลส่วนกลาง / แหล่งที่มาของความจริง นี่คือฟีเจอร์ของLinus Torvalds ที่ได้รับการปกป้อง แต่ดูเหมือนว่าทุก บริษัท ใช้ Git ในลักษณะรวมศูนย์เหมือนหนึ่งจะใช้ SVN หรือ CVS มักจะมีที่เก็บส่วนกลางบนเซิร์ฟเวอร์ (โดยปกติจะอยู่ที่ GitHub) ที่ผู้คนดึงและดันไป ฉันไม่เคยเห็นหรือได้ยินผู้คนที่ใช้ Git ในลักษณะที่มีการกระจายอำนาจอย่างแท้จริงตามที่ตั้งใจไว้คือการผลักดันและดึงไปยังที่เก็บเพื่อนร่วมงานคนอื่น ๆ ตามที่เห็นสมควร คำถามของฉันคือ: ทำไมคนไม่ใช้เวิร์กโฟลว์แบบกระจายสำหรับ Git ในทางปฏิบัติ ความสามารถในการทำงานในลักษณะกระจายนั้นสำคัญกับการควบคุมเวอร์ชันที่ทันสมัยหรือไม่หรือแค่ฟังดูดี แก้ไข ฉันรู้ว่าฉันไม่ได้รับเสียงที่ถูกต้องในคำถามเดิมของฉัน ดูเหมือนว่าฉันกำลังถามว่าทำไมทุกคนจะทำงานในลักษณะรวมศูนย์เมื่อระบบควบคุมเวอร์ชันกระจาย (DVCS) เหนือกว่าอย่างเห็นได้ชัด ในความเป็นจริงสิ่งที่ฉันหมายถึงคือฉันไม่เห็นประโยชน์ใด ๆ …

6
การเลือกระหว่างโครงการเดี่ยวหรือหลายโครงการในที่เก็บ git?
ในgitสภาพแวดล้อมที่เราได้ทำให้เป็นส่วนใหญ่โครงการเรากำลังเผชิญหนึ่งโครงการต่อพื้นที่เก็บข้อมูลหรือหลายโครงการต่อปัญหาการออกแบบพื้นที่เก็บข้อมูล ลองพิจารณาโครงการที่ทำให้เป็นโมดูล: myProject/ +-- gui +-- core +-- api +-- implA +-- implB วันนี้เรากำลังมีโครงการต่อหนึ่งพื้นที่เก็บข้อมูล มันให้อิสระในการ release แต่ละองค์ประกอบ tag แต่ละองค์ประกอบ แต่มันก็ยังเป็นเรื่องยุ่งยากสำหรับbranchส่วนประกอบที่บ่อยครั้งที่การแตกแขนงนั้นapiต้องการกิ่งไม้ที่เท่ากันcoreและส่วนประกอบอื่น ๆ เนื่องจากเราต้องการreleaseแต่ละองค์ประกอบเรายังสามารถได้รับความยืดหยุ่นที่คล้ายกันโดยใช้หลายโครงการต่อการออกแบบพื้นที่เก็บข้อมูล มีประสบการณ์อะไรบ้างและคุณได้จัดการกับปัญหาเหล่านี้อย่างไร?

12
กลยุทธ์ในการเก็บรักษาข้อมูลลับเช่นคีย์ API อยู่นอกการควบคุมของแหล่งที่มาหรือไม่
ฉันกำลังทำงานบนเว็บไซต์ที่จะอนุญาตให้ผู้ใช้เข้าสู่ระบบโดยใช้ข้อมูลประจำตัว OAuth จาก Twitter, Google และอื่น ๆ ในการทำเช่นนี้ฉันต้องลงทะเบียนกับผู้ให้บริการที่หลากหลายเหล่านี้และรับคีย์ API ลับสุดยอดที่ฉันมี เพื่อปกป้องด้วยคำมั่นสัญญาจากส่วนต่างๆของร่างกาย หากคีย์ของฉันถูก ganked ส่วนนั้นจะถูกดึง คีย์ API ต้องเดินทางไปพร้อมกับที่มาของฉันเนื่องจากมันถูกใช้ที่รันไทม์เพื่อทำการร้องขอการตรวจสอบสิทธิ์ ในกรณีของฉันคีย์ต้องมีอยู่ภายในแอปพลิเคชันในไฟล์กำหนดค่าหรือภายในโค้ดเอง นั่นไม่ใช่ปัญหาเมื่อฉันสร้างและเผยแพร่จากเครื่องเดียว อย่างไรก็ตามเมื่อเราส่งการควบคุมแหล่งที่มาลงในการผสมสิ่งต่าง ๆ ก็ซับซ้อนขึ้น ในฐานะที่ฉันเป็นไอ้เลวราคาถูกฉันก็อยากใช้บริการควบคุมแหล่งข้อมูลฟรีเช่น TFS ในคลาวด์หรือ GitHub สิ่งนี้ทำให้ฉันมีปริศนาเล็กน้อย: ฉันจะรักษาร่างกายของฉันให้เหมือนเดิมได้อย่างไรเมื่อคีย์ API ของฉันอยู่ในรหัสของฉันและรหัสของฉันจะมีอยู่ในที่เก็บสาธารณะ ฉันสามารถนึกถึงวิธีการต่าง ๆ ในการจัดการกับสิ่งนี้ แต่ไม่มีวิธีใดที่น่าพอใจ ฉันสามารถลบข้อมูลส่วนตัวทั้งหมดจากรหัสและแก้ไขกลับมาหลังจากการใช้งาน นี่จะเป็นความเจ็บปวดที่รุนแรงในการติดตั้ง (ฉันจะไม่ให้รายละเอียดหลาย ๆ วิธี) และไม่ใช่ตัวเลือก ฉันสามารถเข้ารหัสได้ แต่เมื่อฉันต้องถอดรหัสมันทุกคนที่มีแหล่งที่มาสามารถคิดวิธีการดังกล่าว ไม่มีจุดหมาย ฉันสามารถจ่ายสำหรับการควบคุมแหล่งข้อมูลส่วนตัว ฮ่า ๆ j / k ใช้เงินไหม …

10
ภาพควรถูกเก็บไว้ในที่เก็บคอมไพล์หรือไม่?
สำหรับทีมกระจายที่ใช้ Git และ Github เป็นตัวควบคุมเวอร์ชันรูปภาพควรถูกเก็บไว้ในที่เก็บ git หรือไม่? ส่วนใหญ่ภาพจะไม่เปลี่ยนแปลง โฟลเดอร์ที่บรรจุไว้จะมีขนาดใหญ่ขึ้นเมื่อมีการเพิ่มรูปภาพ สิ่งที่น่าเป็นห่วงคือโฟลเดอร์รูปภาพอาจมีขนาดใหญ่ขึ้นเมื่อเวลาผ่านไปด้วยการรวมรูปภาพขนาดใหญ่เข้าด้วยกันหรือเป็นจำนวนมาก นี่ถือว่าเป็นการปฏิบัติที่ดีที่สุดหรือไม่? มีทางเลือกอื่นอะไรอีกบ้างในการแบ่งปันไฟล์ไบนารีที่จำเป็นในโครงการที่ทีมกระจายสามารถเข้าถึงได้ง่าย?

4
ประโยชน์ของกระบวนการคอมมิชชันสองขั้นตอน (การจัดเตรียม) ของคอมไพล์
ฉันเรียนรู้คอมไพล์และฉันสังเกตว่ามันมีกระบวนการทำสองขั้นตอน: git add <files> git commit ขั้นตอนแรกทำการแก้ไขสิ่งที่เรียกว่า "พื้นที่จัดเตรียม" หรือ "ดัชนี" สิ่งที่ฉันสนใจคือเหตุผลที่ทำให้การตัดสินใจออกแบบนี้และประโยชน์ของมันคืออะไร นอกจากนี้ในฐานะผู้ใช้คอมไพล์คุณทำสิ่งนี้หรือแค่ใช้git commit -a? ฉันถามสิ่งนี้เพราะฉันมาจาก bzr (Bazaar) ซึ่งไม่มีคุณสมบัตินี้

30
เป็นเรื่องผิดปกติสำหรับ บริษัท ขนาดเล็ก (นักพัฒนา 15 คน) ที่จะไม่ใช้การควบคุมแหล่งที่มา / รุ่นที่จัดการหรือไม่ [ปิด]
ไม่ใช่คำถามทางเทคนิค แต่มีคำถามอื่น ๆ อีกมากมายเกี่ยวกับการควบคุมแหล่งที่มาและแนวปฏิบัติที่ดีที่สุด บริษัท ที่ฉันทำงานด้วย (ซึ่งจะไม่เปิดเผยชื่อ) ใช้เครือข่ายแชร์เพื่อโฮสต์ซอร์สโค้ดและโค้ดที่นำออกใช้ เป็นความรับผิดชอบของนักพัฒนาหรือผู้จัดการในการย้ายซอร์สโค้ดไปยังโฟลเดอร์ที่ถูกต้องด้วยตนเองโดยขึ้นอยู่กับว่ามันเปิดตัวแล้วหรือยังและเป็นเวอร์ชั่นอะไร เรามีสเปรดชีตหลายจุดที่เราบันทึกชื่อไฟล์และเวอร์ชันและสิ่งที่เปลี่ยนแปลงไปและบางทีมก็ใส่รายละเอียดของเวอร์ชันต่าง ๆ ไว้ที่ด้านบนของแต่ละไฟล์ แต่ละทีม (2-3 ทีม) ดูเหมือนจะทำสิ่งนี้แตกต่างกันภายใน บริษัท อย่างที่คุณสามารถจินตนาการได้มันเป็นระเบียบที่จัดระเบียบเพราะ "คนที่ใช่" รู้ว่าสิ่งของของพวกเขาอยู่ที่ไหน แต่เป็นระเบียบเพราะมันแตกต่างกันไป ฉันพยายามผลักดันการควบคุมแหล่งที่มาที่มีการจัดการมาระยะหนึ่งแล้ว แต่ดูเหมือนว่าฉันจะไม่ได้รับการสนับสนุนเพียงพอภายใน บริษัท ข้อโต้แย้งหลักของฉันคือ: ปัจจุบันเรามีช่องโหว่; ณ จุดใด ๆ ที่ใครบางคนอาจลืมที่จะทำหนึ่งในหลาย ๆ การกระทำที่เราต้องทำซึ่งอาจหมายถึงการจัดเก็บทั้งเวอร์ชันไม่ถูกต้อง อาจต้องใช้เวลาหลายชั่วโมงหรือหลายวันกว่าจะแยกรุ่นกลับมารวมกันหากจำเป็น เรากำลังพัฒนาคุณสมบัติใหม่พร้อมกับการแก้ไขข้อบกพร่องและมักจะต้องชะลอการปล่อยของหนึ่งหรืออื่น ๆ เพราะงานบางอย่างยังไม่เสร็จสมบูรณ์ เราต้องบังคับให้ลูกค้าใช้เวอร์ชันที่มีคุณสมบัติใหม่แม้ว่าพวกเขาต้องการแก้ไขบั๊กเพราะมีเพียงเวอร์ชันเดียวเท่านั้นที่พวกเรากำลังทำงานอยู่ เรากำลังประสบปัญหากับ Visual Studio เนื่องจากผู้พัฒนาหลายรายกำลังใช้โครงการเดียวกันในเวลาเดียวกัน (ไม่ใช่ไฟล์เดียวกัน แต่ยังคงทำให้เกิดปัญหา) มีนักพัฒนาเพียง 15 คน แต่เราทำทุกอย่างแตกต่างกัน มันจะดีกว่าไหมถ้ามีแนวทางแบบมาตรฐานทั่ว บริษัท ที่เราทุกคนต้องปฏิบัติตาม …

2
Git branching และการติดแท็กแนวทางปฏิบัติที่ดีที่สุด
ฉันกำลังเรียนรู้ที่จะใช้ Git โดยการอ่านPro Git ตอนนี้ฉันกำลังเรียนรู้เกี่ยวกับการแตกแขนงและแท็ก คำถามของฉันคือเมื่อฉันควรใช้สาขาและเมื่อฉันควรใช้แท็ก? ตัวอย่างเช่นสมมติว่าฉันสร้างสาขาสำหรับเวอร์ชัน 1.1 ของโครงการ เมื่อฉันเสร็จสิ้นและปล่อยรุ่นนี้ฉันควรออกจากสาขาเพื่อทำเครื่องหมายรุ่นที่วางจำหน่ายหรือไม่ หรือฉันควรเพิ่มแท็ก หากฉันเพิ่มแท็กฉันควรลบสาขาเวอร์ชัน (สมมติว่ามันรวมเข้ากับมาสเตอร์หรือสาขาอื่น ๆ )

9
รักษาสาขาที่กำหนดเองหลายร้อยสาขาเหนือสาขาต้นแบบ
ขณะนี้เรามีสาขาหลักหนึ่งสาขาสำหรับแอปพลิเคชัน PHP ของเราในที่เก็บที่ใช้ร่วมกัน เรามีลูกค้ามากกว่า 500 รายที่เป็นสมาชิกซอฟต์แวร์ของเราซึ่งส่วนใหญ่มีการปรับแต่งเพื่อวัตถุประสงค์ที่แตกต่างกันแต่ละแห่งมีสาขาแยกต่างหาก การกำหนดเองอาจเป็นชื่อฟิลด์ข้อความอื่นคุณลักษณะหรือโมดูลใหม่ทั้งหมดหรือตาราง / คอลัมน์ใหม่ในฐานข้อมูล ความท้าทายที่เราเผชิญคือเมื่อเรารักษาสาขาที่กำหนดเองเหล่านี้หลายร้อยรายการและแจกจ่ายให้กับลูกค้าเป็นครั้งคราวเรามีคุณลักษณะใหม่และอัปเดตสาขาหลักของเราและเราต้องการผลักดันการเปลี่ยนแปลงสาขาหลักเป็นสาขาที่กำหนดเองเพื่ออัปเดต เป็นเวอร์ชันล่าสุด น่าเสียดายที่สิ่งนี้มักจะส่งผลให้เกิดข้อขัดแย้งมากมายในรหัสที่กำหนดเองและเราใช้เวลาหลายชั่วโมงผ่านทุกสาขาเพื่อแก้ไขข้อขัดแย้งทั้งหมด สิ่งนี้ไม่มีประสิทธิภาพมากและเราพบว่าข้อผิดพลาดไม่ใช่เรื่องแปลกเมื่อแก้ไขข้อขัดแย้งเหล่านี้ ฉันกำลังมองหาวิธีที่มีประสิทธิภาพมากขึ้นในการทำให้สาขาของลูกค้าปล่อยให้ทันสมัยกับสาขาหลักที่จะทำให้ความพยายามน้อยลงในระหว่างการรวม

6
คุณจะทำโครงร่างการกำหนดตัวเลขด้วย Git ได้อย่างไร
องค์กรของฉันกำลังพิจารณาย้ายจาก SVN เป็น Git การโต้แย้งหนึ่งเรื่องการเคลื่อนย้ายมีดังนี้: เราจะทำเวอร์ชันอย่างไร เรามีการเผยแพร่ SDK ตามแพลตฟอร์ม NetBeans เนื่องจากการแก้ไข SVN เป็นตัวเลขอย่างง่ายเราจึงสามารถใช้พวกเขาเพื่อขยายหมายเลขรุ่นของปลั๊กอินและการสร้าง SDK ของเรา เราจะจัดการกับสิ่งนี้ได้อย่างไรเมื่อเราย้ายไปที่ Git การแก้ปัญหาที่เป็นไปได้: การใช้หมายเลขบิลด์จากฮัดสัน (ปัญหา: คุณต้องตรวจสอบฮัดสันเพื่อเชื่อมโยงกับเวอร์ชัน Git จริง) upping เวอร์ชันด้วยตนเองสำหรับทุกคืนและมีเสถียรภาพ (ปัญหา: เส้นโค้งการเรียนรู้ข้อผิดพลาดของมนุษย์) หากคนอื่นพบปัญหาที่คล้ายกันและแก้ไขมันเรายินดีที่จะได้ยินว่า

23
ทำไม Git ถึงได้โฆษณาเกินจริง …ในขณะที่คนอื่นทำไม่ได้? [ปิด]
ในช่วงไม่กี่ปีที่ผ่านมาการโฆษณารอบ ๆ Git เพิ่มขึ้นอย่างมาก ทุกคนรู้เกี่ยวกับ Git ไม่มีใครรู้เกี่ยวกับทางเลือก คนอื่น ๆ เช่น Mercurial ดูเหมือนจะไม่มีใครสังเกตเห็น ทั้งสองได้รับการปล่อยตัวในปี 2005 และมีฟังก์ชั่นที่คล้ายกัน ยิ่งไปกว่านั้น Mercurial ได้รับการพิจารณาว่าใช้งานได้ง่ายขึ้นใช้งานง่ายกว่าเดิม ดังนั้นจึงสามารถสันนิษฐานได้ว่าสิ่งนี้จะเป็นทางเลือกยอดนิยมโดยเฉพาะอย่างยิ่งสำหรับผู้ที่เพิ่งเริ่มการควบคุมเวอร์ชันแบบกระจาย ถึงกระนั้นดูเหมือนว่าคนส่วนใหญ่จะไม่รู้จักซึ่งแตกต่างจาก Git ที่ประสบความสำเร็จค่อนข้างดี จุดสำคัญของโพสต์นี้คือพยายามทำความเข้าใจปรากฏการณ์นี้ให้ดีขึ้น Git มาได้อย่างไรส่วนหนึ่งของเค้ก? พวกเขาใช้การตลาดที่ดีกว่าอย่างใด? เป็นเพราะชุมชนของมันมีมากขึ้น ... อะแฮ่ม ... "verbose"? เป็นเพราะชื่อ "Linus" หรือไม่? เป็นเพราะภาพลักษณ์ที่เกินบรรยายหรือไม่? ความคิดเห็นของคุณคืออะไร

7
ที่ทำงานของฉันต้องการที่จะรวมสาขาที่ไม่มีที่สิ้นสุดเป็นนโยบาย เรามีตัวเลือกอื่น ๆ อีกบ้าง?
ที่ทำงานของฉันกำลังพยายามหาวิธีที่เราจัดการแยกสาขาและผสานและเราประสบปัญหาใหญ่ ปัญหาของเราคือกับสาขาระยะยาว - ประเภทที่คุณมีไม่กี่คนที่ทำงานด้านข้างที่แยกจากต้นแบบเราพัฒนาขึ้นสองสามเดือนและเมื่อเราถึงเหตุการณ์สำคัญ ทีนี้ IMHO วิธีที่เป็นธรรมชาติในการจัดการคือสควอชด้านข้างให้กลายเป็นคอมมิชชันเดียว masterก้าวหน้าไปข้างหน้า อย่างที่ควรจะเป็น - เราไม่ได้ทิ้งการพัฒนาขนานไปmasterกับประวัติศาสตร์เป็นเวลาหลายเดือน และถ้าใครต้องการความละเอียดที่ดีกว่าสำหรับประวัติของไซด์แบรนช์แน่นอนว่ามันยังอยู่ที่นั่น - มันไม่ได้อยู่ในmasterไซด์แบรนช์ นี่คือปัญหา: ฉันทำงานเฉพาะกับบรรทัดคำสั่ง แต่ทีมที่เหลือของฉันใช้ GUIS และฉันได้ค้นพบว่า GUIS ไม่มีตัวเลือกที่เหมาะสมในการแสดงประวัติจากสาขาอื่น ดังนั้นถ้าคุณมาถึงสควอชกระทำบอกว่า "การพัฒนานี้แบนจากสาขาXYZ" มันเป็นขนาดใหญ่XYZความเจ็บปวดที่จะไปดูว่ามีอะไรใน บน SourceTree เท่าที่ฉันสามารถหาได้มันเป็นเรื่องที่ปวดหัวมาก: ถ้าคุณอยู่masterและคุณต้องการดูประวัติmaster+devFeatureคุณต้องเช็คเอาmaster+devFeatureท์ (แตะทุก ๆ ไฟล์ที่แตกต่าง) หรืออย่างอื่น เลื่อนดูบันทึกแสดงสาขาของพื้นที่เก็บข้อมูลทั้งหมดของคุณขนานกันจนกว่าคุณจะพบสถานที่ที่เหมาะสม และโชคดีที่ได้รู้ว่าคุณอยู่ที่ไหน เพื่อนร่วมทีมของฉันถูกต้องไม่ต้องการมีประวัติการพัฒนาจึงไม่สามารถเข้าถึงได้ ดังนั้นพวกเขาจึงต้องการให้สาขาด้านการพัฒนาขนาดใหญ่และยาวผสานเข้าด้วยกันด้วยการรวมกิจการ พวกเขาไม่ต้องการประวัติใด ๆ ที่ไม่สามารถเข้าถึงได้ทันทีจากสาขาหลัก ฉันเกลียดความคิดนั้น มันหมายถึงความสับสนวุ่นวายไม่รู้จบของประวัติศาสตร์การพัฒนาแบบคู่ขนาน แต่ฉันไม่เห็นทางเลือกอื่นที่เรามี และฉันก็งุนงงมาก ดูเหมือนว่าจะปิดกั้นทุกสิ่งส่วนใหญ่ที่ฉันรู้เกี่ยวกับการจัดการสาขาที่ดีและมันจะเป็นเรื่องยุ่งยากสำหรับฉันถ้าฉันไม่สามารถหาวิธีแก้ปัญหาได้ เรามีตัวเลือกใด ๆ นอกเหนือจากการรวมสาขาย่อยเข้าด้วยกันเป็นหลักอย่างต่อเนื่องหรือไม่? หรือมีเหตุผลที่การใช้งานผสานอย่างต่อเนื่องไม่เลวร้ายอย่างที่ฉันกลัวหรือไม่?

18
เมื่อใดที่ฉันควรจะใช้การควบคุมแหล่งข้อมูลเป็นอันดับแรก
ฉันไม่แน่ใจว่าเมื่อโครงการไกลพอที่จะยอมรับการควบคุมแหล่งที่มาก่อน ฉันมักจะชะลอการคอมมิทจนกว่าโครงการจะเสร็จสมบูรณ์ (ฉันไม่ได้ทำโครงการส่วนตัวใด ๆ ที่ใหญ่พอที่จะมีกรอบการทำงานหลักที่ใหญ่เกินไปสำหรับเรื่องนี้) ฉันมีความรู้สึกว่านี่ไม่ใช่วิธีปฏิบัติที่ดีที่สุดแม้ว่าฉันจะไม่แน่ใจว่าสิ่งใดผิดไป ตัวอย่างเช่นฉันมีโครงการที่ประกอบด้วยไฟล์รหัสเดียว จะใช้เวลาประมาณ 10 บรรทัดของรหัสสำเร็จรูปและ 100 บรรทัดเพื่อให้โครงการทำงานด้วยฟังก์ชั่นพื้นฐานที่ยอดเยี่ยม (1 หรือ 2 คุณสมบัติ) ฉันควรเช็คอินก่อน: ไฟล์ว่างเปล่า? รหัสสำเร็จรูป? คุณสมบัติแรก? เมื่อถึงจุดอื่น? นอกจากนี้สาเหตุที่ต้องเช็คอิน ณ จุดใดจุดหนึ่ง?

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