คำถามติดแท็ก scm

14
ฉันจะรักษาคุณภาพของรหัสโดยไม่มี SCM ได้อย่างไร
ฉันทำงานในสถาบันของรัฐ เทคโนโลยีที่ใช้อยู่ที่นี่และวิธีการพัฒนาซอฟต์แวร์นั้นค่อนข้างล้าสมัย มีพื้นที่เก็บข้อมูลมากมาย แต่ไม่มีพื้นที่ที่เหมาะสมในการเก็บและบำรุงรักษาแอปพลิเคชันที่ใช้ในการทำงานส่วนใหญ่โดยอัตโนมัติที่นี่ สถาบันไม่อนุญาตให้ฉันใช้ซอฟต์แวร์ SCM เช่น GIT หรือ SVN อะไรจะเป็นวิธีที่ดีที่สุดในการรักษาคุณภาพรหัสและสามารถเพิ่มคุณสมบัติใหม่ในแอปได้ในภายหลัง ฉันจะจำการเปลี่ยนแปลงที่ทำกับรหัสโดยไม่ทำลายได้อย่างไร แก้ไข: ฉันลืมที่จะพูดถึงพวกเขามีไดรฟ์เครือข่ายสำหรับคอมพิวเตอร์แต่ละเครื่องและอย่างใดไดรฟ์เครือข่ายเหล่านี้ทำหรือบันทึกการสำรองข้อมูลในช่วงเวลา อย่างไรก็ตามหากฉันไม่ได้สร้างแผนของตัวเองเพื่อให้สามารถบันทึกงานของฉันและสามารถเพิ่มคุณสมบัติใหม่โดยไม่ทำลายโค้ดที่มีอยู่แล้วก็ไม่มีข้อได้เปรียบที่เหนือกว่าโซลูชัน SCM แก้ไข: เนื่องจากหลายคนแนะนำ Git พกพาฉันต้องเพิ่มข้อมูลเพิ่มเติม ฉันพยายามติดตั้งเซิร์ฟเวอร์ Visual SVN แต่ล้มเหลวเนื่องจากฉันไม่มีสิทธิ์ของผู้ดูแลระบบในการติดตั้ง ฉันพยายามดาวน์โหลด Git shell ปกติ แต่ไฟร์วอลล์หรือการตั้งค่าเครือข่ายไม่อนุญาตให้ฉันเข้าถึงหน้าดาวน์โหลด Git ฉันยังลองส่ง Git พกพาไปยังอีเมลซึ่งก็คือ Gmail Google ตรวจพบไฟล์ exe ในแพ็คเกจและมันก็ไม่อนุญาตให้ฉันดาวน์โหลด Git เวอร์ชั่นพกพาบนคอมพิวเตอร์ที่ทำงานของฉัน อีกสิ่งหนึ่งที่ฉันต้องพูดถึงคือนโยบายเครือข่ายที่ใช้กับคอมพิวเตอร์ที่สถาบันไม่อนุญาตให้ใช้การจัดเก็บ USB devces คุณสามารถใช้พอร์ต USB เพื่อชาร์จสมาร์ทโฟนหรือใช้พลังงานบางอย่างเช่นลำโพงขนาดเล็ก เช่นเดียวกับบางคนที่กล่าวถึงมีคอมพิวเตอร์ที่ไม่อนุญาตแม้แต่อินเทอร์เน็ต
110 git  code-quality  svn  scm 

10
ฉันควรทำอย่างไรเมื่อฉันรอนานเกินไประหว่างการคอมมิท?
ฉันเป็นคนซน ... "รหัสโคบาล" มากเกินไปยังไม่พอ ตอนนี้ที่นี่ฉันมีความมุ่งมั่นอย่างมาก ใช่ฉันน่าจะทำมาตลอด แต่มันก็สายเกินไปแล้ว อะไรดีกว่า? ทำสิ่งหนึ่งที่มีขนาดใหญ่มากในรายการสิ่งที่ฉันเปลี่ยน พยายามแบ่งมันออกเป็นข้อผูกพันเล็ก ๆ ที่อาจไม่ได้รวบรวมเนื่องจากไฟล์มีการแก้ไขหลายอย่างเปลี่ยนแปลงชื่อเมธอดเพิ่มเติม ฯลฯ พยายามทำการย้อนกลับบางส่วนของไฟล์เพื่อความมุ่งมั่นที่เหมาะสมจากนั้นนำการเปลี่ยนแปลงใหม่กลับมา หมายเหตุ: ณ ตอนนี้ฉันเป็นโปรแกรมเมอร์คนเดียวที่ทำงานในโครงการนี้ บุคคลเพียงคนเดียวที่จะดูความคิดเห็นที่กระทำเหล่านี้คือฉันอย่างน้อยก็จนกว่าเราจะจ้างโปรแกรมเมอร์มากขึ้น โดยวิธีการ:ฉันใช้ SVN และ Subclipse ฉันสร้างสาขาใหม่ก่อนทำการเปลี่ยนแปลงใด ๆ เหล่านี้ ข้อมูลเพิ่มเติม : ฉันถามคำถามแยกต่างหากที่เกี่ยวข้องกับวิธีการที่ฉันได้รับในสถานการณ์นี้ในตอนแรก: วิธีเตรียมความพร้อมสำหรับการเขียนกาวของแอปพลิเคชันใหม่

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

7
บริษัท ของฉันรวมสาขาผิดหรือเปล่า?
ฉันเพิ่งมาข้ามบทความ MSDN เกี่ยวกับการแยกทางและการผสานและ SCM: การแตกแขนงและผสานรองพื้น - คริส Birmele ในบทความพวกเขาบอกว่า 'บิ๊กแบงผสาน' เป็นปฏิปักษ์ต่อการรวม: Big Bang Merge - ชะลอการรวมสาขาเพื่อสิ้นสุดความพยายามในการพัฒนาและพยายามรวมสาขาทั้งหมดพร้อมกัน ฉันรู้ว่านี่คล้ายกับสิ่งที่ บริษัท ของฉันทำกับสาขาการพัฒนาทั้งหมดที่ผลิต ฉันทำงานที่ บริษัท ขนาดเล็กมากโดยมีคนคนหนึ่งทำหน้าที่เป็นผู้ตรวจสอบขั้นสุดท้าย + มีอำนาจในการรวมลำตัว เรามีนักพัฒนา 5 คน (รวมถึงฉันด้วย) เราแต่ละคนจะได้รับมอบหมายภารกิจ / ข้อบกพร่อง / โครงการแยกจากกันและเราจะแยกแต่ละสาขาออกจากเส้นทางปัจจุบัน (การโค่นล้ม) จากนั้นทำการพัฒนาในสาขาของเราทดสอบผลลัพธ์เขียนเอกสาร หากจำเป็นให้ดำเนินการตรวจสอบแบบเพียร์และข้อเสนอแนะกับนักพัฒนาอื่น ๆ แล้วส่งสาขาสำหรับความคิดเห็น + ผสานในซอฟต์แวร์การจัดการโครงการของเรา เจ้านายของฉันซึ่งเป็นผู้มีอำนาจ แต่เพียงผู้เดียวในที่เก็บ trunk จะทำการตรวจสอบความคิดเห็นทั้งหมดของสาขาจนกว่าจะถึงจุดเดียวในเวลาที่เขาจะแสดงความคิดเห็นให้มากที่สุดเท่าที่จะทำได้บางสาขาจะถูกโยนทิ้งเพื่อปรับปรุง / แก้ไข กิ่งไม้จะถูกรวมเข้ากับลำต้นบางสาขาจะถูกโยนกลับเนื่องจากความขัดแย้ง ฯลฯ ไม่ใช่เรื่องแปลกที่เราจะมีสาขาที่ใช้งานอยู่ 10-20 …

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

5
ความแตกต่างระหว่าง DevOps และการจัดการการกำหนดค่าซอฟต์แวร์
ความแตกต่างระหว่างการดำเนินการพัฒนาและการจัดการการกำหนดค่าซอฟต์แวร์คืออะไร? สำหรับฉันดูเหมือนว่าจะเหมือนกันตราบใดที่ทั้ง DevOps และ Software Configuration Management มุ่งเน้นไปที่: การสร้างโครงสร้างพื้นฐานการพัฒนา - รับผิดชอบการควบคุมเวอร์ชันการจัดการการสร้างการจัดการการปรับใช้การจัดการการพึ่งพาการรวมอย่างต่อเนื่องและการจัดส่งฯลฯ โดยใช้วิธีปฏิบัติที่ดีที่สุดสำหรับการจัดสภาพแวดล้อมการพัฒนา การประกันคุณภาพของกระบวนการพัฒนา - รวบรวมตัวชี้วัดประสิทธิภาพการพัฒนาการทำงานเพื่อกำจัดคอขวดของกระบวนการพัฒนา (การทดสอบหน่วยการทำงานการประเมินความครอบคลุมการทดสอบหน่วย การจัดการโครงสร้างพื้นฐาน - แพลตฟอร์มเป้าหมายและข้อมูลเฉพาะ การจัดการการปล่อย - ทำให้แน่ใจว่ามีการส่งมอบการปล่อยให้กับลูกค้า / ลูกค้าตรงเวลา บางทีฉันอาจจะหายไปบางอย่าง ลิงค์นี้แสดงให้เห็นว่าการใช้คำว่า 'การจัดการการกำหนดค่าซอฟต์แวร์' มีผลบังคับใช้ แต่ถึงอย่างนั้นคุณจะใช้การรวมคำแบบใดในการอธิบายกิจกรรมที่ระบุไว้: การดำเนินการพัฒนาหรือซอฟแวร์การบริหารจัดการการกำหนดค่า ?

6
ในคอมไพล์วิธีการกำหนดเวอร์ชันสำหรับไลบรารีโหลทั้งหมดนั้นทำงานพร้อมกัน
เรากำลังทำโครงการ แต่เราใช้รหัสจำนวนมากระหว่างโครงการและมีห้องสมุดจำนวนมากที่มีรหัสทั่วไปของเรา ในขณะที่เราใช้งานโครงการใหม่เราค้นหาวิธีเพิ่มเติมในการแยกตัวประกอบของรหัสทั่วไปและใส่ลงในไลบรารี ห้องสมุดขึ้นอยู่กับแต่ละอื่น ๆ และโครงการขึ้นอยู่กับห้องสมุด แต่ละโปรเจ็กต์และไลบรารีทั้งหมดที่ใช้ในโปรเจ็กต์นั้นจำเป็นต้องใช้เวอร์ชันเดียวกันกับไลบรารีทั้งหมดที่อ้างถึง ถ้าเราปล่อยชิ้นส่วนของซอฟต์แวร์เราจะต้องแก้ไขข้อบกพร่องและอาจเพิ่มคุณสมบัติใหม่เป็นเวลาหลายปีบางครั้งก็เป็นเวลาหลายทศวรรษ เรามีห้องสมุดประมาณหนึ่งโหลการเปลี่ยนแปลงมักจะถูกตัดข้ามมากกว่าสองรายการและหลายทีมทำงานในหลายโครงการพร้อมกันโดยทำการเปลี่ยนแปลงพร้อมกันกับไลบรารีทั้งหมดเหล่านี้ เมื่อเร็ว ๆ นี้เราได้เปลี่ยนเป็นคอมไพล์และตั้งค่าที่เก็บสำหรับแต่ละไลบรารีและแต่ละโครงการ เราใช้ที่เก็บของเป็นที่เก็บข้อมูลทั่วไปทำสิ่งใหม่ ๆ ในฟีเจอร์สาขาจากนั้นทำการร้องขอการดึงและรวมเข้าด้วยกันหลังจากตรวจสอบแล้ว ปัญหาหลายอย่างที่เราต้องจัดการในโครงการต้องการให้เราทำการเปลี่ยนแปลงในหลาย ๆ ไลบรารีและรหัสเฉพาะของโครงการ สิ่งเหล่านี้มักจะรวมถึงการเปลี่ยนแปลงอินเทอร์เฟซของไลบรารีซึ่งบางอย่างไม่เข้ากัน (ถ้าคุณคิดว่ามันฟังดูแปลก ๆ : เราเชื่อมต่อกับฮาร์ดแวร์และซ่อนฮาร์ดแวร์ที่เฉพาะเจาะจงไว้ข้างหลังอินเตอร์เฟสทั่วไปเกือบทุกครั้งที่เรารวมฮาร์ดแวร์ของผู้ขายรายอื่นที่เราพบในกรณีที่อินเทอร์เฟซปัจจุบันของเราไม่ได้คาดหวัง ตัวอย่างเช่นสมมติว่าโครงการที่P1ใช้ห้องสมุดL1, และL2 ยังใช้และ, และใช้เช่นกัน กราฟการพึ่งพามีลักษณะดังนี้:L3L1L2L3L2L3 <-------L1<--+ P1 <----+ ^ | <-+ | | | | +--L2 | | ^ | | | | +-----L3---+ ตอนนี้คิดคุณลักษณะสำหรับโครงการนี้ต้องมีการเปลี่ยนแปลงในP1และที่เปลี่ยนอินเตอร์เฟซของL3 L3ตอนนี้เพิ่มโปรเจ็กต์P2และP3ลงในแบบผสมซึ่งยังอ้างถึงไลบรารีเหล่านี้ เราไม่สามารถเปลี่ยนทุกสิ่งให้เป็นอินเทอร์เฟซใหม่ทำการทดสอบทั้งหมดและปรับใช้ซอฟต์แวร์ใหม่ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.