การควบคุมแหล่งที่มาใดที่ฉันต้องการสำหรับโครงการขนาดใหญ่ใน บริษัท โดยเฉลี่ย [ปิด]


10

ฉันรู้ว่า Git นั้นยอดเยี่ยมสำหรับโครงการโอเพ่นซอร์ส แต่ฉันสงสัยว่า: สำหรับ บริษัท ที่มีโปรแกรมเมอร์ 20 คนทำงานในโครงการ 1 ปีระบบควบคุมแหล่งที่มาเป็นที่ต้องการหรือไม่ จากสิ่งที่ฉันได้ยิน Git ใช้การดึง มันจะไม่ดีกว่าที่จะต้องผ่านคนอื่นเพื่อรับการเปลี่ยนแปลงของคุณในลำตัวหลัก? โดยเฉพาะอย่างยิ่งเมื่อทุกคนทำงานในเวลาเดียวกัน

นั่นเป็นเพียงตัวอย่างที่ฉันสงสัย ฉันรู้วิธีใช้ SVN แต่ในงานสุดท้ายของฉันเราไม่ได้ใช้มันในโครงการของเราเนื่องจากทุกอย่างทำใน PHP และโดยทั่วไปเป็นโครงการแบบสแตนด์อโลน 1 สัปดาห์ ฉันเพิ่งมี SVN สำหรับรหัสท้องถิ่นของฉันและไม่จำเป็นต้องใช้กับผู้อื่น

ดังนั้นแหล่งควบคุมที่ดีคืออะไรและโดยเฉพาะเหตุใดจึงดีสำหรับสิ่งนี้


13
เพราะคุณรหัสใน php ไม่ใช่เหตุผลที่จะไม่ใช้ VCS
Chris

@Chris: ถ้ามันขึ้นอยู่กับฉันจะมี repo ในเครือข่าย แต่น่าเสียดายที่ บริษัท ไม่ได้ใช้เลย ฉันแค่บอกว่าฉันไม่มีประสบการณ์แบบ 'ทีม' ที่มีการควบคุมซอร์ส


คำตอบ:


29

ใช้สิ่งที่ทีมของคุณพอใจ ระบบควบคุมเวอร์ชันทั้งหมดทำสิ่งเดียวกันในลักษณะเดียวกัน ไม่มีเหตุผลที่จะคิดค้นล้อใหม่เพราะ "มันอาจทำงานได้ดีกว่า" หากทีมของคุณไม่สะดวกกับอะไรให้เลือกตัวเลือกที่มีการรวมที่ง่ายที่สุดกับ IDE มาตรฐานของทีม


1
นั่นเป็นคำตอบที่ฉลาดและไม่ใช่พรรคพวก - ฉันชอบ
Murph

1
+1 ระบบควบคุมแหล่งที่มาซับซ้อนพอสิ่งใดที่คุณสามารถทำได้เพื่อลดสิ่งนี้ให้ดีขึ้น!
Dal

3
มีสิ่งต่าง ๆ ที่ VCS กระจายทำได้ดีกว่าแบบรวมศูนย์และคุณสามารถใช้ DVCS เป็นแบบรวมศูนย์ได้ดังนั้นสำหรับการใช้งานทั่วไปในระยะยาวฉันขอแนะนำ Git หรือ Mercurial สำหรับสถานการณ์เช่นนี้ VCS สมัยใหม่ที่มีเหตุผลจะทำอย่างดีและการโค่นล้มน่าจะง่ายที่สุดในการเรียนรู้
David Thornley

ใช้สิ่งที่ทีมของคุณรู้หรือใช้อย่างสะดวกสบาย (ยกเว้นว่าเป็น CVS หรือ RCS) หากคุณเปลี่ยนไปใช้สิ่งใหม่และทุกคนต้องเรียนรู้ทำคณิตศาสตร์: 20 คน * 3 ชั่วโมงการฝึกอบรม * $ 40 / ชั่วโมง = $ 2,400
Barry Brown

หรือคาดหวังให้พวกเขารู้วิธีรับ VCS ใหม่อย่างมีประสิทธิภาพภายใน 5 นาที ...
ทางเลือก


4

ฉันคิดว่ามันขึ้นอยู่กับระดับของการสนับสนุนที่คุณต้องการ

ฉันใช้คอมไพล์ที่บ้านสำหรับโครงการสนุก ๆ ของฉันเมื่อมีปัญหาเวลาฉัน แต่ฉันสามารถใช้เวลาในการเรียนรู้สิ่งที่ฉันต้องแก้ไข

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


1
+1: Perforce มีราคาแพง แต่คุณได้สิ่งที่คุณจ่ายไป
ไม่มีใคร

3

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

โครงสร้างและการบังคับใช้คือส่วนที่สำคัญที่สุดของการควบคุมเวอร์ชัน

วางแผนล่วงหน้าและนำทุกคนขึ้นเครื่อง บังคับใช้ ไม่ใช่แค่กับโปรแกรมเมอร์ แต่มีทุกอย่างที่เกี่ยวข้องกับโครงการ (เอกสารรูปภาพ ฯลฯ )

SVN เป็นแอปพลิเคชั่นที่ดีและสามารถใช้งานร่วมกับโปรแกรมเสริมมากมาย (รวมถึงการติดตามข้อบกพร่อง / งาน) ไม่จำเป็นต้องใช้เซิร์ฟเวอร์แยกต่างหากและฟรี!

มีแอปพลิเคชันการควบคุมแหล่งข้อมูลที่ดีอื่น ๆ เช่น @EricBoersma กล่าวว่า:

ใช้สิ่งที่ทีมของคุณพอใจ

เพียงแค่มีกระบวนการและแนวปฏิบัติที่ดีที่สุดและซื้อจากที่สามารถบังคับใช้ได้


3

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


2

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

การควบคุมเวอร์ชันแบบกระจายช่วยให้คุณมีพื้นที่เก็บข้อมูลส่วนกลางมากกว่าหนึ่งแห่ง ลองนึกภาพการเปลี่ยนแปลงรหัสการโยกย้ายจากที่เก็บนักพัฒนาท้องถิ่นไปยังที่เก็บคุณสมบัติไปยังที่เก็บสินค้าไปยังที่เก็บ QA และในที่สุดก็ลงในพื้นที่เก็บข้อมูลที่ปล่อยออกมา

ส่วนตัวผมใช้ผลิตภัณฑ์ในเชิงพาณิชย์ที่เรียกว่าเตาเผาที่อยู่บนพื้นฐานของปรอท แต่คุณลักษณะที่สำคัญจะมีการกระจายการควบคุมเวอร์ชัน มันปฏิวัติการไหลของรหัสใหม่จากนักพัฒนาเป็นผลิตภัณฑ์ที่วางจำหน่าย


นั่นคือที่เก็บทั้งหมดสำหรับโครงการเดียว ช่างเป็นฝันร้ายที่ผสมผสานกัน
JBRWilkinson

3
ฉันจะเห็นด้วยกับคุณหากมีการผสานกับ SubVersion หรือ CVS เหตุผลที่ผลิตภัณฑ์ควบคุมรุ่นที่แจกจ่ายเหล่านี้ทำงานได้เนื่องจากทำให้การรวมนั้นง่ายและปราศจากความขัดแย้ง
Michael Shaw

2

คุณรู้วิธีใช้ SVN จากนั้นใช้ SVN - โอนย้ายไปยัง DVCS เฉพาะในกรณีที่มีบางอย่างที่คุณต้องการ

สิ่งที่สำคัญมากคือคุณใช้สิ่งที่คุณต้องการใช้ซึ่งใช้งานง่าย มาร์ตินฟาวเลอร์ทำการสำรวจอย่างง่าย ๆเกี่ยวกับ VCS ผลลัพธ์ที่น่าสนใจมาก


2

ฉันตั้งค่าคอมไพล์ที่งานล่าสุดของฉันซึ่งเรากำลังทำงานในโครงการขนาดใกล้เคียงกัน (15 นักพัฒนาโครงการ 18 เดือน) และทำงานได้ดี

วิธีที่เราติดตั้งคือ:

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

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


0

ฉันจะให้ Team Foundation System (TFS) จาก Microsoft อย่างน้อยก็ดูดี ฉันรับความคิดเห็นของคุณว่าคุณไม่ใช่ร้านค้าของ Microsoft อย่างไรก็ตามความเข้าใจของฉันคือว่ามีปลั๊กอิน Eclipse ที่แข็งแกร่งพอสมควรหากคุณใช้ IDE นั้นเพื่อการพัฒนา

กลไกการผสานและการแยกย่อยทำงานได้ดีเหมือนกับระบบควบคุมแหล่งอื่น ๆ (ดีกว่า svn จากประสบการณ์ของฉันและเกี่ยวกับกำลังดี) แต่สิ่งที่โดดเด่นคือการติดตามโครงการและการจัดการโครงการของผลิตภัณฑ์และ ระบบอัตโนมัติในตัวสำหรับการสร้างและการปรับใช้

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


พูดในฐานะคนที่เคยใช้ TFS จาก Eclipse ไม่มันน่ากลัว (ฉันสามารถดูรายละเอียดได้) ฉันจะไม่เรียกมันว่าชัดเจน TFS นั้นยอดเยี่ยม แต่ส่วนขยาย Eclipse ไม่ดีอย่างน่าตกใจ (ที่ไหนที่ AnhkSVN สำหรับ Visual Studio ยอดเยี่ยม)
Lyndon White

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