ฉันได้ยินเกี่ยวกับ บริษัท ใหญ่ ๆ บางแห่งเช่น Google และ Facebook ใช้ Perforce
มีเหตุผลใดบ้างที่ SVN / Git ไม่สามารถแทนที่ Perforce ได้?
ฉันได้ยินเกี่ยวกับ บริษัท ใหญ่ ๆ บางแห่งเช่น Google และ Facebook ใช้ Perforce
มีเหตุผลใดบ้างที่ SVN / Git ไม่สามารถแทนที่ Perforce ได้?
คำตอบ:
การให้เหตุผลอาจมีความเกี่ยวข้องน้อยกว่าครั้งหนึ่ง แต่ Perforce มีแนวโน้มที่จะทำงานได้ดีขึ้นในที่เก็บข้อมูลขนาดใหญ่กว่าการโค่นล้ม นี่คือหนึ่งในเหตุผลที่ Microsoft ได้รับสิทธิ์การใช้งานแหล่งข้อมูลเพื่อบังคับให้สร้างคลังเก็บข้อมูล พื้นที่เก็บข้อมูลของ NT เป็นสัตว์ประหลาดและมีผลิตภัณฑ์เชิงพาณิชย์หรืออื่น ๆ จำนวนมากที่สามารถจัดการได้
นอกจากนี้อย่างน้อยหนึ่งครั้งเครื่องมือภาพสำหรับ Perforce ก็มีวิธีดีกว่าที่มีให้ในกล่อง (เพื่อพูด) ด้วยการโค่นล้มหรือ Git หากคุณใช้ Meld บางทีสิ่งเหล่านั้นสำคัญน้อยกว่าที่เคยทำ แต่ก็ยังมีบางสิ่งที่ Perforce ทำได้ดีมากรวมถึงการสร้างภาพการแยกและผสานซึ่งแม้ว่าฉันจะไม่ได้มีความทรงจำที่ละเอียดตั้งแต่นั้นมา ประมาณ 3 ปีตั้งแต่ฉันสัมผัส Perforce ครั้งล่าสุดดูเหมือนว่าจะซับซ้อนกว่าตัวอย่างเช่นวิธีของ Github
เมื่อคุณใช้ Perforce คุณอาจเข้าใจว่าข้อดีของมันคืออะไรในทางปฏิบัติ พวกเขาเสนอตัวเลือกเซิร์ฟเวอร์ฟรีสำหรับผู้ใช้สองคนมานานและขึ้นอยู่กับระบบการจัดการซอร์สโค้ดที่คุณมีประสบการณ์ด้วยคุณอาจพบว่ามันคุ้มค่ากับการอัพเกรดหลังจากทีมของคุณทำการทดสอบเป็นระยะเวลาหนึ่ง สำหรับร้านค้าเล็ก ๆ รวมถึงผลกระทบด้านเครือข่ายของนักพัฒนาที่เคยใช้และชอบมันคือเหตุผลว่าทำไม Perforce จึงกลายเป็นผู้ใช้ที่ได้รับค่าจ้าง อาจมีจำนวนไม่มากนักในเรื่องการกินและดื่ม CTOs เพื่อขาย Perforce ให้กับ บริษัท ที่มีทีมพัฒนาขนาดเล็กซึ่งตรงกันข้ามกับคำพูดเหยียดหยามของ Dmitri แต่มันถูกใช้ในสถานที่ดังกล่าว
โครงการส่วนใหญ่ที่ฉันทำงานนอก Microsoft สามารถให้บริการอย่างดีจาก Git, Mercurial หรือ Subversion และฉันจะบอกว่า บริษัท ส่วนใหญ่ที่ฉันทำงานเพื่อใช้ตัวเลือกเหล่านี้ แต่มีจุดที่น่าสนใจซึ่งมักจะเป็นการรวมกันของขนาดพื้นที่เก็บข้อมูลการแยกและการรวมโมเดลและประสบการณ์ / ประวัติทีมที่นำผู้คนไปใช้เครื่องมือเชิงพาณิชย์ ยกตัวอย่างเช่นฉันเคยเห็นที่เก็บ Git ขนาดใหญ่ สิ่งนี้อาจไม่ได้เกิดจากข้อ จำกัด ที่แท้จริงของ Git; ฉันยอมรับความเขลาทั้งหมด แต่ในบางโครงการ (เช่น Windows NT) อาจมีข้อ จำกัด ในทางปฏิบัติสำหรับการแก้ปัญหาฟรี
ฉันมีความเชี่ยวชาญพอสมควรกับ svn, git และ Perforce ทั้งในฐานะผู้ใช้และในการตั้งค่าและบำรุงรักษาเซิร์ฟเวอร์
สำหรับ บริษัท หรือแม้แต่โปรแกรมเมอร์คนเดียวอย่างฉันการควบคุมแหล่งที่มาคือค่าใช้จ่ายในการสนับสนุนกิจกรรมการทำเงินจริงซึ่งเป็นการพัฒนาและขายรหัส ดังนั้นจึงมีหลายปัจจัยที่ควรพิจารณา:
ฉันจะข้าม tl: dr รายละเอียดเกี่ยวกับข้อดีข้อเสียของแต่ละระบบ พอจะพูดได้ว่าเมื่อฉันกลับไปที่การให้คำปรึกษาแบบเต็มเวลาเมื่อปีที่แล้วฉันตรวจสอบทั้งสามเพื่อตัดสินใจว่าจะให้ฉันทำเงินได้เร็วที่สุดเท่าที่จะเป็นไปได้ด้วยการส่งมอบซอฟต์แวร์ที่มีคุณภาพให้กับลูกค้าของฉัน หลอกไปรอบ ๆ เมื่อฉันพิจารณาทางการเมืองของ "FOSS เป็นสิ่งที่ดีและไม่ใช่ของ FOSS เป็นสิ่งที่ชั่วร้าย" จากสมการฉันได้ละทิ้งการขอใบอนุญาต Perforce
และนั่นเป็นสาเหตุที่ บริษัท ใหญ่ ๆ เลือกรับแรงด้วยเช่นกัน
นี่คือ TL: dr รายละเอียดจากความคิดเห็นรวมทั้งอีกเล็กน้อย
การระบุที่อยู่ svn นั้นเป็นเรื่องง่าย: เมื่อเทียบกับ Perforce แล้วสุนัขจะช้า ฉันทำงานที่ บริษัท หนึ่งที่ฝัง Linux ไว้สำหรับโทรศัพท์มือถือและแหล่งข้อมูลที่สมบูรณ์ของเรามีขนาด 9 GB; พวกเขาใช้ Perforce เมื่อคุณมีรหัสการอัพเดทแหล่งข้อมูลล่าสุดมักใช้เวลาไม่กี่วินาทีบน LAN หรือสองสามนาทีผ่านการเชื่อมต่อ VPN จากบ้านของฉัน ด้วย svn มันจะเป็นนาทีและชั่วโมงตามลำดับ
git vs. Perforce ซับซ้อนกว่ามาก บริษัท หลายแห่งรู้สึกว่าพวกเขามีเหตุผลทางธุรกิจที่ดีในการใช้พื้นที่เก็บข้อมูลส่วนกลางที่มีการควบคุมการเข้าถึงและทำให้ง่ายต่อการส่งมอบที่นั่นและยากที่จะทำอะไรอย่างอื่น อย่างไรก็ตามคอมไพล์สนับสนุนให้คนทำงานในสาขาท้องถิ่นและไม่มีวิธีที่จะทำให้มันแตกต่างกัน นักพัฒนาสามารถทำงานได้อย่างสมบูรณ์ในสาขาท้องถิ่นและไม่เคยผูกพันกับ repo ส่วนกลางดังนั้นหาก บริษัท ไม่ต้องการให้พนักงานทำงานอย่างนั้น Perforce เป็นตัวเลือกที่ดีกว่า
มีปัญหาอื่น ๆ เกี่ยวกับคอมไพล์สำหรับความต้องการทางธุรกิจบางอย่าง ฉันทำงานใน บริษัท ที่ใช้คอมไพล์และฉันไม่รู้ว่าฉันได้ยินการสนทนากี่ครั้ง: "ฉันหวังว่าเราจะใช้ [VCS อื่น] เพราะฉันต้องทำ [นี้] และฉันไม่สามารถมีคอมไพล์ได้ ." "แน่นอนคุณสามารถทำได้ด้วย git" "ได้อย่างไร?" "ก่อนอื่นคุณต้องเขียนสคริปต์ทุบตี ... " "ไม่เป็นไร"
และจากนั้นก็มีเวลาที่จะเริ่มต้นเติมต้นไม้ต้นกำเนิดที่มีประวัติมากมาย ด้วย Perforce เนื่องจากประวัติถูกเก็บไว้บนเซิร์ฟเวอร์คุณเพิ่งได้รับไฟล์ทั้งหมดเวอร์ชันล่าสุดดังนั้นมันจึงเร็วมาก - แม้ตั้งค่าต้นไม้ 9 GB ทั้งหมดที่ฉันกล่าวถึงใช้เวลาเพียงสองสามชั่วโมงผ่าน VPN ด้วยคอมไพล์มันสามารถใช้ที่ไหนสักแห่งระหว่างเวลานานและนิรันดร์ บางครั้งฉันต้องโคลน GTK + หรือ repos คอมไพล์เซิร์ฟเวอร์ X และนั่นเป็นช่วงพักกลางวันที่ยาวนานหรืออาจจะเป็นเวลานอน
จริงๆมันเป็นเรื่องของเครื่องมือที่เหมาะสมสำหรับงาน svn ทำงานได้ดีสำหรับความพยายามของโอเพ่นซอร์สส่วนใหญ่และน่ากลัวสำหรับการแฮ็คเคอร์เนล git ใช้งานได้ดีกับ GTK + แต่ช้ามากอย่างไม่น่าเชื่อสำหรับการทำงานใน WebKit - ต้นกำเนิดและประวัติศาสตร์นั้นใหญ่เกินไป (อย่างที่ฉันรู้วิธีที่ทำงานกับโค้ดจากพอร์ทัล svn-to-git ของ WebKit) Perforce ทำงานได้ดีถ้าคุณมีต้นไม้ต้นกำเนิดยักษ์และต้องการการควบคุมจากส่วนกลาง แต่ละคนทำงานได้ดีในบริบทที่เหมาะสม
pull
submodules เป็นครั้งคราวเพื่อรับการปรับปรุงหรือคุณลักษณะใหม่และจากนั้นผู้ใช้ของที่เก็บนั้นจะต้องการการอัพเดตที่ใหญ่กว่ารหัสของที่เก็บเอง
โดยเฉพาะอย่างยิ่ง GIT และ SVN ในระดับหนึ่งนั้นไม่เก่าถ้าคุณต้องการการควบคุมเวอร์ชันที่มั่นคงในช่วงกลางยุค 90 คุณเกือบจะต้องไปโฆษณาเพราะ SVN อยู่ในช่วงวัยเด็กและ CVS ก็เหมือนกัน CVS เมื่อคุณลงทุนไปกับระบบจำนวนมากแล้ว
โอ้และคนที่ทำการตัดสินใจเหล่านี้อาจไม่เคยมีปฏิสัมพันธ์กับระบบควบคุมเวอร์ชัน แต่จะได้รับอาหารและรับประทานอาหารค่ำโดยพนักงานขายดังกล่าว
ฉันเป็นโปรแกรมเมอร์ในอุตสาหกรรมเกมมาเกือบ 9 ปีแล้วและทุกโครงการที่ฉันเคยทำใช้ Perforce ฉันสงสัยว่ามีบางสิ่งที่ทำให้ Perforce ใช้งานในอุตสาหกรรมนั้น ๆ
บางทีพวกเขาอาจชอบ Perforce เพราะ Perforce ดีกว่าไหม
ตกลงก่อนที่คุณจะคิดว่าฉันเป็น Perforce Fanboi ครั้งสุดท้ายที่ฉันแนะนำ Perforce ให้กับ บริษัท เมื่อเจ็ดปีก่อน Perforce มีค่าใช้จ่าย $ 800 ต่อสิทธิ์ใช้งาน - ซึ่งราคาถูกเมื่อเทียบกับ ClearCase แต่ราคาแพงกว่าเมื่อเทียบกับ Subversion ฉันมีเวลายากที่จะพิสูจน์ความถูกต้องของ Perforce มากกว่าการโค่นล้ม
นอกจากนี้นักพัฒนาส่วนใหญ่ใช้ในการโค่นล้ม พวกเขาไม่ต้องการเรียนรู้ Perforce ซึ่งมีวิธีการทำงานที่แตกต่างจากการโค่นล้ม ใน Perforce คุณต้องสร้างไคลเอนต์และคุณต้องทำเครื่องหมายไฟล์เพื่อทำการแก้ไขก่อนจึงจะสามารถแก้ไขได้ คุณไม่ต้องทำอย่างนั้นกับการโค่นล้ม
มีการรวมกันน้อยลงด้วยการบังคับใช้มากกว่าการโค่นล้มเช่นกัน ส่วนหนึ่งของที่เกิดจากการใช้งานของลูกค้า มันไม่ได้เล่นได้ดีกับ VisualStudio หรือแม้แต่ฮัดสัน ส่วนหนึ่งเป็นเพราะความจริงที่ว่า Perforce ต้องสร้างการรวมระบบของลูกค้า
มีค่าใช้จ่ายในการขอใบอนุญาตกรรมสิทธิ์เรียกค่าใช้จ่ายในการบริหาร ลองนึกภาพถ้าคุณสามารถให้ลิขสิทธิ์ซอฟต์แวร์หนึ่งชิ้นในราคา $ 1.00 ต่อผู้ใช้ เฮ้ทำสองชิ้นกัน ใบอนุญาตหลายพันใบมีค่าใช้จ่ายเพียง $ 250
ตอนนี้คุณต้องมีผู้ที่จัดการใบอนุญาตเต็มเวลา พนักงานด้านเทคนิคเฉลี่ยอยู่ที่ บริษัท ประมาณ 2 ปี นั่นหมายถึง 500 คนในแต่ละปีจะจากไปและอีก 500 คนมา สิบคนต่อสัปดาห์ต้องเปลี่ยนใบอนุญาต จากนั้นมีบางครั้งที่โครงการหยิบขึ้นมาและคุณต้องการใบอนุญาตอีก 250 ใบ สิ่งเหล่านี้จะต้องสั่งป้อนและบำรุงรักษา ซึ่งอาจใช้เวลาหลายสัปดาห์
นั่นเป็นเหตุผลที่ บริษัท การค้าจำนวนมากย้ายไปที่โอเพ่นซอร์ส ไม่ใช่ต้นทุนของใบอนุญาต คุณจ่ายนักพัฒนา $ 150,000 ต่อปีและอีก $ 800 สำหรับใบอนุญาต Perforce คืออะไร มันกำลังจัดการใบอนุญาตนั้น Perforce ดูดีมากเมื่อเปรียบเทียบกับ ClearCase: เร็วกว่าง่ายกว่าถูกกว่าและดีกว่า แต่กับการโค่นล้ม? จำเป็นต้องใช้อาจจะเร็วขึ้นและอาจจะดีกว่า แต่มันจะดีกว่า $ 800? มันจัดการใบอนุญาตได้ดีขึ้นหรือไม่ มันไม่ได้ใช้เครื่องมือที่ต้องการดีกว่าเหรอ?
นั่นเป็นเหตุผลว่าทำไม Perforce อาจประสบปัญหา
Git ไม่ใช่เครื่องมือสำหรับทุกคน มันใช้งานได้ดีในสถานการณ์ที่คุณไม่ต้องการควบคุมแบบรวมศูนย์ว่าใครสามารถเข้าถึงที่เก็บข้อมูลได้ แต่มันอาจเป็นความเจ็บปวดในหลาย ๆ สถานการณ์ วิธีที่ฉันพูดถึงคือ:
หากคุณกำลังสร้างบิวด์ส่วนกลางคุณต้องให้ทุกคนใช้ที่เก็บเดียว ประโยชน์ของระบบกระจายในกรณีนี้คืออะไร? ในความเป็นจริงก็จะสามารถกระตุ้นให้คนที่จะทำงานออกจากสาย นักพัฒนาอาจออกไปในทางที่ร่าเริงของตัวเองและไม่ทำอะไรเลยจนกระทั่งนาทีสุดท้าย จากนั้นคุณใช้เวลาสองวันในการพยายามทำให้ทุกอย่างทำงานอีกครั้ง
ฉันไม่ได้ต่อต้าน Git ฉันแนะนำ Git ในหลาย ๆ กรณี เหล่านี้รวมถึงทีมกระจายที่มีการเชื่อมต่อที่ไม่ดีซึ่งกันและกันหรือสถานที่ที่คุณไม่ต้องการติดตามทุกคนที่มีสิทธิ์เข้าถึงแหล่งเก็บข้อมูลต้นฉบับ
ตัวอย่างเช่นแผนกวิทยาศาสตร์คอมพิวเตอร์วิทยาลัยต้องการให้นักเรียนใช้การควบคุมแหล่งที่มาและวางโค้ดไว้ที่นั่นเพื่อให้ครูดู ความคิดที่ดี. เด็กจำนวนมากออกจากวิทยาลัยโดยไม่เข้าใจขั้นตอนการสร้างและพัฒนามาตรฐาน ฉันแนะนำ Git
โดยการใช้ Git ผู้ดูแลระบบของที่เก็บจะต้องรับภาระจากอาจารย์ผู้สอนเท่านั้น พวกเขาไม่ต้องกังวลกับนักเรียนเป็นรายบุคคล อาจารย์สามารถอนุญาตให้นักเรียนกระทำการกับที่เก็บเวอร์ชันของพวกเขา นักเรียนสามารถทำงานเป็นกลุ่มและแต่ละกลุ่มสามารถแชร์รุ่นของที่เก็บได้
ถ้าวิทยาลัยใช้การโค่นล้มใครบางคนจะต้องรู้จักนักเรียนทุกคนและให้พวกเขาเข้าถึงที่เก็บส่วนกลางทั้งหมด พวกเขาจะต้องจัดการว่าใครสามารถเช็คอินได้ที่ไหนและที่ไหน หากอาจารย์มอบหมายโครงการกลุ่มนั่นจะต้องมีการตั้งค่าและจัดการ คุณต้องการคนแบบเต็มเวลาเพียงเพื่อจัดการสิ่งนั้น
นี่ไม่ใช่เกมฟุตบอลที่มีทีมใดทีมหนึ่งเก่งกว่าอีกทีมหนึ่ง เครื่องมือทำงานในรูปแบบที่ต่างกันและต่างก็มีข้อดีและข้อเสีย Perforce เป็นเครื่องมือที่ยอดเยี่ยม น่าเสียดายที่สถานการณ์ได้พัฒนาขึ้นซึ่งทำให้ยากต่อการแนะนำ
Git นั้นยอดเยี่ยม แต่ฉันยังคงล้มล้างการโค่นล้มสำหรับแหล่งเก็บข้อมูลส่วนบุคคลของฉัน ท้ายที่สุดฉันไม่แชร์และการโค่นล้มนั้นใช้ง่ายกว่า ฉันใช้ Git สำหรับงานส่วนตัวถ้าฉันมีทีมเล็ก ๆ เพราะฉันไม่ต้องทำให้ที่เก็บของฉันเต็มเวลาบนอินเทอร์เน็ต สำหรับเว็บไซต์เชิงพาณิชย์ส่วนใหญ่ฉันยังพบว่าการโค่นล้มทำงานได้ดีที่สุด แต่มีสถานการณ์เมื่อ Git ส่องแสง
ฉันไม่รู้ว่าการติดสินบน 'ไวน์และอาหาร' ยังคงมีผลอยู่หรือไม่ แต่สำหรับผู้จัดการส่วนใหญ่เมื่อพวกเขาตัดสินใจที่จะหาผลิตภัณฑ์พวกเขาจะอ่านในสิ่งพิมพ์ต่าง ๆ คุณธรรม
คาดเดาสิ่งที่ผลิตภัณฑ์ FOSS ไม่ได้มีอยู่ในสถานที่เหล่านั้น!
ดังนั้นเกือบจะเป็นเพราะการตัดสินใจซื้อการจัดการส่วนใหญ่ขับเคลื่อนด้วยการโฆษณาและการตลาด พวกเขาอาจทำการประเมินผล แต่ในหลาย ๆ ผลิตภัณฑ์ดังกล่าว
เหตุผลอื่นคือครบกำหนด ผลิตภัณฑ์บางอย่างที่เราใช้ในวันนี้มีความเสถียรเพียงพอสำหรับการใช้งานทางธุรกิจอย่างจริงจังบางตัวไม่มีตัวเลือกการสนับสนุนบางตัวไม่มีประวัติที่พิสูจน์แล้วว่าเป็นโซลูชันทางธุรกิจ สิ่งเหล่านี้เป็นสิ่งสำคัญที่ต้องพิจารณา (แม้ว่าในฐานะผู้เชี่ยวชาญฉันจะประเมินโซลูชั่น FOSS อย่างมีความสุขหากความเสี่ยงในการใช้งานและการทำให้ล้มเหลวนั้นน้อยที่สุดในการทำให้ธุรกิจดำเนินต่อไป) และผู้จัดการบางคน พวกเขามีความรับผิดชอบต่อเจ้านายของพวกเขาและจะรู้สึกสะดวกสบายมากขึ้นถ้ามีองค์กรสนับสนุนอยู่เบื้องหลังผลิตภัณฑ์ - คุณมีหนึ่งสำหรับธุรกิจของคุณหลังจากทั้งหมด
สุดท้ายในขณะที่ผลิตภัณฑ์ FOSS จำนวนมากได้รับการสนับสนุนจากพวกเขา (คิดว่า Collabnet หรือ Wandisco สำหรับ SVN) แต่ก็ยังคงได้รับชื่อเสียง 'ทำโดย geeks ในห้องนอนด้านหลังของพวกเขา' เราทุกคนรู้ว่าโดยทั่วไปแล้ว b * * ** t และ FOSS ที่ดีที่สุดจะแข่งขันกันได้ดีกับข้อเสนอเชิงพาณิชย์ แต่ผู้จัดการของฉันยังคงต้องเชื่อมั่น บางทีเขาอาจไม่ได้ตระหนักถึงความแตกต่างระหว่างผลิตภัณฑ์ FOSS ที่ยังไม่บรรลุนิติภาวะกับผลิตภัณฑ์ผู้ใหญ่ บางทีเขาอาจไม่สนใจ
อย่างไรก็ตาม Perforce เป็น SCM ที่ดีไม่มีเหตุผลที่จะไม่เลือก ฉันสามารถพูดแบบเดียวกันกับ SCM อื่น ๆ แต่มีอีกครั้งฉันสามารถพูดสิ่งเลวร้ายเกี่ยวกับคนอื่นและยังมีฝันร้ายเมื่อมันมาถึงผลิตภัณฑ์บางอย่าง
เนื่องจากเครื่องมืออย่างเพอร์ฟอร์ฟมีพนักงานขายสำหรับผู้ที่ดื่มไวน์และรับประทานอาหารที่รับผิดชอบการจัดซื้อในขณะที่ Git ไม่มี แน่นอนว่ามันเป็นเพียงแค่ความเห็นถากถางดูถูกของฉัน แต่มันก็เป็นความเห็นถากถางดูถูกที่เกิดขึ้นโดยการดูกระบวนการอย่างใกล้ชิด
เพียงเพื่อให้ชัดเจนอย่างสมบูรณ์: ฉันไม่ได้หมายความว่าทุกครั้งที่คุณเห็น CIO ของคุณเดินโซเซไปตามทางเดินคาดหวังว่าจะใช้ระบบเวอร์ชันใหม่ในไตรมาสหน้า เพียงว่ามีการตัดการเชื่อมต่อในหลายองค์กรระหว่างการใช้งานและการได้มา แน่นอนมีเหตุผลอื่น ๆ ที่ บริษัท ใช้ Perforce: ตัวอย่างเช่นพวกเขาอาจลงทุนไปแล้วอย่างมากในการนำไปใช้ในเวิร์กโฟลว์ แต่โดยทั่วไป --- และคำถามนี้กว้างมาก --- ไม่มีประโยชน์ในการใช้งานที่ไม่ได้ใช้เครื่องมือ FOSS
อาจเป็นเหตุผลเดียวกันที่ บริษัท ของฉันปฏิเสธที่จะใช้ซอฟต์แวร์โอเพ่นซอร์สจำนวนมาก (ไม่ใช่ที่ฉันเห็นด้วย):
เมื่อมีอะไรผิดพลาดพวกเขาต้องการคนที่พวกเขาสามารถโทรหาและตะโกน
ในขณะที่คำตอบทั้งหมดพูดคุยเกี่ยวกับ บริษัท ใหญ่ที่ใช้ P4 (และพวกเขาตอบว่าทำไม Google ถึงใช้ P4) หนึ่งในเหตุผลหลักที่ Google ยังคงใช้ Perforce ก็คือ Perforce อนุญาตให้คุณเช็คเอาต์ทรีย่อยของ repo ในขณะที่คุณไม่สามารถทำได้ ด้วย repos แหล่งใหญ่เช่น Google ที่สร้างความแตกต่างมาก
และเท่าที่ฉันเคยได้ยิน Facebook ใช้ SVN และ Git-SVN
เพราะ SVN คือดี SVN และความจำเป็น (จากเวลา 4 ปีที่ผ่านมาเมื่อเทียบเครื่องมือ) ไม่บางสิ่งบางอย่างที่ดีกว่า SVN (ฉันคิดว่าการแตกแขนงเป็นหนึ่งในนั้น)
และ GIT เป็น DVCS เช่นเดียวกับในการกระจาย สำหรับทีม บริษัท ส่วนที่แจกจ่ายอาจเป็นสิ่งที่ไม่สนใจและไม่ต้องการ
อีกเหตุผลหนึ่งที่ บริษัท ใหญ่ ๆ มักจะซื้อระบบควบคุมรุ่นใหญ่ "klunky" องค์กร ":
การจัดการระดับกลางถึงระดับสูงในแผนกไอทีเห็น VCS เป็นสิ่งที่ทุกโครงการใช้หรือคุณสามารถบังคับใช้ เมื่อคุณบังคับใช้ VCS แล้วทำไมไม่ลองใส่ "กระบวนการ" เล็ก ๆ น้อย ๆ ในนั้นล่ะ? ฉันหมายความว่าคุณมีโอกาสที่จะระบุระบบ "ระดับองค์กร" ทำไมไม่ลองใช้ภายใต้การควบคุมส่วนกลางและเพิ่ม "การกู้คืนความเสียหาย" และ "คุณสมบัติเวิร์กโฟลว์" เพื่อให้คุณสามารถพูดว่า "เราเป็น CMM Level StraightJacket สอดคล้อง!" VCS นั้นง่ายเกินไปสำหรับเป้าหมายที่จะนำคุณสมบัติการบังคับใช้เวิร์กโฟลว์มาใช้
เท่าที่ทางเลือกของซอฟต์แวร์ ickky-poo, cruddy (Serena Dimensions) ได้มีการกล่าวว่า Bikini Golf สองสามรอบในบาฮามาสด้วยพนักงานขายหญิง 20 คนสองสามคนสามารถโน้มน้าวผู้อำนวยการหรือรองประธานของทุกเรื่อง
บริษัท ขนาดใหญ่ต้องการแบบรวมศูนย์บางชนิด เมื่อนักพัฒนาเสร็จสิ้นการพัฒนาแล้วมันก็จะถูกส่งไปยังฝ่ายสนับสนุนลูกค้า คุณต้องการมีส่วนร่วมในรองเท้าเมื่อพวกเขาต้องต่อสู้ผ่าน repos พัฒนา 50-200 กระจาย? และการสร้างจะทำตาม repo ส่วนกลางสร้างต้องเสมอเสมอเสมอตรวจสอบย้อนกลับและทำซ้ำ คุณเรียนรู้สิ่งนี้เป็นครั้งแรกที่คุณถูกนำตัวขึ้นศาลเพื่อรับการละเมิดสิทธิบัตรโง่ ๆ
Git ใช้งานไม่ได้ในรุ่นนี้ หากคุณมี บริษัท ขนาดเล็กหรือ บริษัท ที่มีการเข้าถึง VPN ไม่ดีนั่นเป็นสิ่งที่ บริษัท ของคุณเปล่งประกาย
เหตุผลหนึ่งที่ บริษัท ขนาดใหญ่ส่วนใหญ่ใช้ Perforce อาจเป็นเพราะมีผู้เชี่ยวชาญในแผนกไอทีที่มีความรู้มากมายเกี่ยวกับเรื่องนี้และมีประสบการณ์ในการแก้ไขปัญหาที่เกี่ยวข้อง
ฉันรู้สึกว่าในอนาคต บริษัท อาจเริ่มย้ายจาก Perforce และไปสู่ GIT ... นักพัฒนาส่วนใหญ่ฉันรู้ว่าดูเหมือนจะชอบมัน !! ตรวจสอบhttp://whygitisbetterthanx.com/#git-is-fastเพื่อหาหลักฐานเพิ่มเติมว่าทำไม Perforce อาจไม่โดดเด่นในปีต่อ ๆ ไป !!
บางครั้งที่ผ่านมาเราเปลี่ยนจากชุดของ VCS (ฉันรู้ว่า RCS, CVS, ClearCase, Perforce ถูกนำมาใช้ก่อนหน้านี้อาจมีคนอื่นเช่นกัน) เป็นระบบที่ใช้งานเฉพาะ นั่นไม่ใช่โครงการขนาดเล็ก: การย้ายถิ่นฐานใช้เวลามากกว่าหนึ่งปี ทีม (ฉันไม่ได้เป็นส่วนหนึ่งของมัน) เป็นผู้ประเมิน VCS หลายแห่งและอย่างน้อย git และ svn ก็ถูกพิจารณาเช่นเดียวกับที่ใช้อยู่แล้ว เมื่อฉันจำรายงานของพวกเขาพวกเขากรองเครื่องมือโดยไม่ต้องใช้คุณสมบัติที่จำเป็นแล้วพิจารณา:
ประสิทธิภาพในการใช้งานทั่วไปโดยเฉพาะอย่างยิ่งสำหรับไซต์ระยะไกล
ข้อกำหนดด้านทรัพยากร
ความสำคัญของการเปลี่ยนแปลงที่จำเป็นในนิสัยการทำงาน
สนับสนุนความพร้อมใช้งานและค่าใช้จ่าย
และเพอร์ฟอร์ดค่อนข้างชัดเจนโดยรวม คอมไพล์ดีกว่าเล็กน้อยสำหรับจุดแรก แต่เสียเปรียบสำหรับคนอื่น ๆ
กาลครั้งหนึ่งนานมาแล้ว (เมื่อ IDE ถูกเรียกว่า VI) ระบบฟรี (โอเพ่นซอร์ส) เพียงระบบเดียวคือ CVS, RCS และ SCCS
มีระบบควบคุมซอร์สโค้ดเชิงพาณิชย์จำนวนมากอยู่ที่นั่นส่วนใหญ่จัดทำโดยผู้จำหน่ายเครื่องจักรรายเดียว (IBM, DEC, HP, etc) และทำงานบนฮาร์ดแวร์ของพวกเขาเท่านั้น
จากนั้นมีเพียงไม่กี่ บริษัท ที่ระบุว่าจะขายการควบคุมซอร์สโค้ดเชิงพาณิชย์ข้ามแพลตฟอร์มรวมถึง Perforce และ ClearCase
ClearCase สร้างขึ้นบน RPC ที่ทำงานได้ไม่ดีกับเครือข่ายบริเวณกว้าง (แต่เพียงอย่างเดียวอินเทอร์เน็ต) เนื่องจากแพ็คเก็ตเครือข่ายขนาดเล็กจำนวนมากถูก "ปัดเศษ" IBM และเหตุผลเห็น ClearCase เป็น "วัวเงินสด" และไม่เคยแสดงให้เห็นว่ามันมาก รัก.
ดังนั้นระบบควบคุมซอร์สโค้ดเชิงพาณิชย์“ เก่า” เพียงระบบเดียวที่ยังคงใช้งานทั่วไปคือ Perforce เมื่อมีการใช้งานอย่างบังคับและรวมเข้ากับระบบการสร้างและระบบติดตามบั๊กมีประโยชน์ระยะสั้นเพียงเล็กน้อยสำหรับ บริษัท ที่จะย้ายไปทำสิ่งอื่น
เพื่อที่จะสรุปผลได้อย่างเลี่ยงไม่พ้น“เท้าในประตู” เมื่อไม่มีตัวเลือกอื่น ๆ อีกมากมายและพวกเขาไม่ได้เลอะยังพอที่จะรับคนที่จะย้ายออกไปจากมัน