ทำไม บริษัท ใหญ่ ๆ ถึงใช้ Perforce [ปิด]


113

ฉันได้ยินเกี่ยวกับ บริษัท ใหญ่ ๆ บางแห่งเช่น Google และ Facebook ใช้ Perforce

มีเหตุผลใดบ้างที่ SVN / Git ไม่สามารถแทนที่ Perforce ได้?


34
ฉันได้ยินมาว่า Google ใช้โฟลเดอร์ที่มีการประทับเวลาบนไดรฟ์ที่แชร์! ;)
FrustratedWithFormsDesigner

10
มีเพียงไดรฟ์ที่ใช้ร่วมกันเท่านั้นที่ใช้ MapReduce ดังนั้นมันจึงเท่ห์
Paul Stovell

4
ปัญหาใหญ่จะได้รับการสนับสนุน เมื่อคุณซื้อ Perforce คุณกำลังซื้อการสนับสนุนจากผู้พัฒนาระบบสิ่งที่คุณอาจไม่ได้รับจาก Git
ChrisF

12
@ อันโต: ใครสนใจสิ่งที่ไลนัสพูดว่าใคร? เพียงเพราะคุณเป็นนักพัฒนาเคอร์เนลที่ยอดเยี่ยมไม่ได้หมายความว่าคุณจะรู้ดีที่สุดเกี่ยวกับทุกสิ่งในทุกที่
Billy ONeal

5
เพิ่งมาจากการประชุมผู้ใช้ Perforce 2 สัปดาห์ที่ผ่านมาฉันสามารถบอกคุณได้ว่า Google ใช้การบังคับอย่างรวดเร็ว พวกเขาได้รับมากกว่า 10,000 ส่งต่อวันไปยังเซิร์ฟเวอร์ของพวกเขา 1
aflat

คำตอบ:


83

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

นอกจากนี้อย่างน้อยหนึ่งครั้งเครื่องมือภาพสำหรับ Perforce ก็มีวิธีดีกว่าที่มีให้ในกล่อง (เพื่อพูด) ด้วยการโค่นล้มหรือ Git หากคุณใช้ Meld บางทีสิ่งเหล่านั้นสำคัญน้อยกว่าที่เคยทำ แต่ก็ยังมีบางสิ่งที่ Perforce ทำได้ดีมากรวมถึงการสร้างภาพการแยกและผสานซึ่งแม้ว่าฉันจะไม่ได้มีความทรงจำที่ละเอียดตั้งแต่นั้นมา ประมาณ 3 ปีตั้งแต่ฉันสัมผัส Perforce ครั้งล่าสุดดูเหมือนว่าจะซับซ้อนกว่าตัวอย่างเช่นวิธีของ Github

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

โครงการส่วนใหญ่ที่ฉันทำงานนอก Microsoft สามารถให้บริการอย่างดีจาก Git, Mercurial หรือ Subversion และฉันจะบอกว่า บริษัท ส่วนใหญ่ที่ฉันทำงานเพื่อใช้ตัวเลือกเหล่านี้ แต่มีจุดที่น่าสนใจซึ่งมักจะเป็นการรวมกันของขนาดพื้นที่เก็บข้อมูลการแยกและการรวมโมเดลและประสบการณ์ / ประวัติทีมที่นำผู้คนไปใช้เครื่องมือเชิงพาณิชย์ ยกตัวอย่างเช่นฉันเคยเห็นที่เก็บ Git ขนาดใหญ่ สิ่งนี้อาจไม่ได้เกิดจากข้อ จำกัด ที่แท้จริงของ Git; ฉันยอมรับความเขลาทั้งหมด แต่ในบางโครงการ (เช่น Windows NT) อาจมีข้อ จำกัด ในทางปฏิบัติสำหรับการแก้ปัญหาฟรี


3
ขอขอบคุณที่ให้คำตอบที่สมเหตุสมผลนอกเหนือจากทฤษฎี "ไวน์และอาหาร" มันอาจจะเป็นจริงสำหรับจำนวนมากของ บริษัท แต่มีมีเหตุผลบางอย่างที่ legit ที่ บริษัท ไปกับความจำเป็น (หรือเขียนมัน: P) ฉันนึกภาพไม่ออกว่าพยายามจัดการกับแหล่งข้อมูล NT ใน SVN เป็นความจริงที่ SVN และ Git กำลังติดตามและอาจเป็นโครงการขนาดใหญ่ใหม่หนึ่งในนั้นคือการตัดสินใจที่ถูกต้อง แต่คิดว่าค่าใช้จ่ายที่เกี่ยวข้องกับการย้ายโปรเจ็กต์สดใหญ่เท่ากับ Windows (ทุกเวอร์ชั่น) จากระบบควบคุมแหล่งหนึ่งไปอีกระบบหนึ่ง มันไม่คุ้มกับค่าใช้จ่ายโดยเฉพาะอย่างยิ่งเมื่อระบบควบคุมแหล่งปัจจุบันทำงาน
เกร็กแจ็คสัน

1
ที่จริงแล้วพวกเขาย้ายจาก SLM (เครื่องมือภายใน) ไปยัง Source Depot (ทางแยกของ Perforce) ดังนั้นจึงอาจคุ้มค่ากับใครบางคนในกรณีนี้ แต่ใช่มันไม่คุ้มกับค่าใช้จ่ายเว้นแต่จะได้รับประโยชน์มากมาย
JasonTrue

1
Discuss.fogcreek.com/joelonsoftware/…มีประวัติบางส่วนจากแหล่งข้อมูลภายนอกส่วนใหญ่ (ฉันเป็นคนนอกตั้งแต่ปี 2004, FWIW)
JasonTrue

3
ฉันไม่แน่ใจในสถานการณ์ซื้อคืนขนาดใหญ่ ฉันจัดการหนึ่งอันคือ repo 12Gb (เช่นไดเรกทอรีเซิร์ฟเวอร์บีบอัดคือ 12Gb) และมีการแก้ไข 320,000 ครั้ง มันเร็วมากพอ โอกาสที่ Microsoft จะใช้ Perforce เนื่องจาก SVN ไม่มีอยู่ในปี 1999 maillist.perforce.com/pipermail/perforce-user/2001-August/ …และsubversion.apache.org/docs/release-notes/release-history.html
gbjbaanb

8
@gbjbaanb นั่นไม่ใช่ที่เก็บขนาดใหญ่ ... วันนี้มันนับว่าเป็นที่เก็บขนาดกลาง ;) ดูเช่นresearch.google.com/pubs/archive/34459.pdf
Alex Feinman

65

ฉันมีความเชี่ยวชาญพอสมควรกับ 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 ทำงานได้ดีถ้าคุณมีต้นไม้ต้นกำเนิดยักษ์และต้องการการควบคุมจากส่วนกลาง แต่ละคนทำงานได้ดีในบริบทที่เหมาะสม


2
ปัญหาที่ บริษัท ขนาดใหญ่ใส่รหัสลงในที่เก็บเดียวหรือไม่? สิ่งที่เกี่ยวกับการใส่ 'โมดูล' หรือ 'แอปพลิเคชัน' แต่ละรายการลงในที่เก็บ Git แยกกันดังนั้นขนาดของที่เก็บเหล่านี้จะจัดการได้อย่างไร แต่ละที่เก็บเหล่านี้จะนำเข้าฟังก์ชันการทำงานที่จำเป็นโดยใช้คุณสมบัติ submodule ของ Git ด้วยวิธีนี้ผู้ดูแลระบบของที่เก็บจะpullsubmodules เป็นครั้งคราวเพื่อรับการปรับปรุงหรือคุณลักษณะใหม่และจากนั้นผู้ใช้ของที่เก็บนั้นจะต้องการการอัพเดตที่ใหญ่กว่ารหัสของที่เก็บเอง
Carl G

@Carl G: ถ้าคุณอ่านคำตอบทั้งหมดที่นี่คุณจะพบเหตุผลมากมายที่ผู้คนเลือก Perforce สำหรับ git ที่ไม่มีส่วนเกี่ยวข้องกับความสามารถของ git ในที่เก็บหรือ submodules
Bob Murphy

ฉันพยายามที่จะพูดถึง "เวลาที่ใช้ในการเริ่มต้นการเติมข้อมูลต้นไม้ต้นนั้น" แต่จริงๆแล้วฉันสามารถเห็นได้ว่าปัญหาเรื่อง submodule ที่ฉันพูดถึงนั้นไม่เกี่ยวข้องเพราะ submodules นั้นมีประวัติทั้งหมดของที่เก็บเหล่านั้นด้วย ฉันคิดว่าวิธีเดียวที่จะลดประวัติศาสตร์คือใช้ไบนารีของการพึ่งพา
Carl G

ด้วย git คุณสามารถทำการโคลนแบบตื้น ๆ และรับประวัติจำนวนเล็กน้อยหรืออาจเป็นไฟล์ล่าสุดเท่านั้น (git clone - ส่วนที่ 1) ใช้งานได้กับโมดูลย่อย git ด้วย
Sahil Singh

38

โดยเฉพาะอย่างยิ่ง GIT และ SVN ในระดับหนึ่งนั้นไม่เก่าถ้าคุณต้องการการควบคุมเวอร์ชันที่มั่นคงในช่วงกลางยุค 90 คุณเกือบจะต้องไปโฆษณาเพราะ SVN อยู่ในช่วงวัยเด็กและ CVS ก็เหมือนกัน CVS เมื่อคุณลงทุนไปกับระบบจำนวนมากแล้ว

โอ้และคนที่ทำการตัดสินใจเหล่านี้อาจไม่เคยมีปฏิสัมพันธ์กับระบบควบคุมเวอร์ชัน แต่จะได้รับอาหารและรับประทานอาหารค่ำโดยพนักงานขายดังกล่าว


4
+1 เราเปลี่ยนมาใช้คอมไพล์เมื่อไม่นานมานี้และต้องทำงานอย่างหนักเป็นเวลานาน - เพราะทุกอย่างด้อยกว่า
9000

11
แม้ว่า IMO Perforce จะเสียเวลามาก เรายังคงใช้งานได้เพราะเราลงทุนเวลาในการพัฒนาเครื่องมือที่กำหนดเองที่โต้ตอบกับมัน เพื่อสลับเราจะต้องสร้างเครื่องมือเหล่านั้นขึ้นมาใหม่
m4tt1mus

2
นักพัฒนาที่ขยันขันแข็งทำให้ฉันเกลียดการเช็คอินโค้ด ผมค่อนข้างจะเขียนโค้ดด้วยดินสอและรวบรวมว่า
Jim Schubert

ฉันคิดว่าคุณควรดูที่บังคับก่อนที่จะแสดงความคิดเห็น
Toby Allen

30

ฉันเป็นโปรแกรมเมอร์ในอุตสาหกรรมเกมมาเกือบ 9 ปีแล้วและทุกโครงการที่ฉันเคยทำใช้ Perforce ฉันสงสัยว่ามีบางสิ่งที่ทำให้ Perforce ใช้งานในอุตสาหกรรมนั้น ๆ

  • ผู้คนใช้ Perforce มานานแล้วและค่อนข้างสบายใจกับมันทำให้พวกเขาลังเลที่จะเปลี่ยนไปใช้โซลูชันอื่น ผู้มีอำนาจตัดสินใจอาจลังเลที่จะนำโครงการ 30 ล้านดอลลาร์ไปอยู่ในมือของซอฟต์แวร์ที่ไม่เคยใช้มาก่อน
  • บริษัท / ทีมหลายแห่งได้เพิ่มการสนับสนุน Perforce เข้ากับเครื่องมือภายในองค์กรของพวกเขาซึ่งอาจต้องใช้งานจำนวนมากเพื่ออัปเดตเพื่อรองรับ VCS อื่น
  • ในขณะที่โปรแกรมเมอร์อาจมีเวลาสลับไปยัง Git / Hg / SVN อื่นได้ง่าย แต่ก็มีสมาชิกด้านเทคนิคน้อยกว่าของทีมพัฒนาเกมเช่นศิลปินนักออกแบบและผู้ผลิต ทำให้พวกเขาคุ้นเคยกับระบบใหม่อาจใช้เวลานานและฉันยินดีที่จะเดิมพันว่าพวกเขาจะต่อต้านการเปลี่ยนแปลงได้

19
ฉันคิดว่านักพัฒนาซอฟต์แวร์ "เก่า" (+10 ปี) น่าจะทนต่อการเปลี่ยนแปลงได้เหมือนคนที่ "ไม่ใช่ช่างเทคนิค"
Wayne Werner

3
+1 สำหรับสิ่งนี้โดยเฉพาะสำหรับอุตสาหกรรมนี้ โปรแกรมเมอร์วิดีโอเกมมักจะมีจำนวนมากบนจานของพวกเขาการเปลี่ยนโครงสร้างพื้นฐานที่พวกเขาทำงานด้วยเป็นเรื่องที่น่ากลัว "ถ้ามันยังไม่พัง ... " เป็นมนต์สักหน่อยและมักจะป้องกันไม่ให้อุตสาหกรรมย้ายจากโซลูชั่นเก่าแม้ว่ามันอาจจะเหมาะสมกว่าก็ตาม
Chris Subagio

2
@Wayne - ความคิดเห็นเกี่ยวกับยุคสมัยโดยสิ้นเชิง ฉันอายุมากกว่าหกสิบและเป็นผู้นำในการเปลี่ยนแปลงและนวัตกรรมในสถานที่ขนาดใหญ่ของฉัน James Gosling อายุ 46 ปีเมื่อเขาเริ่มเขียน JVM แรก Ken Thomson อายุ 49 ปีเมื่อเขาสร้างรูปแบบการเข้ารหัส UTF-8 และ 63 เมื่อเขาเริ่มทำงานกับภาษา GO
James Anderson

1
@ JamesAnderson ฉันคิดว่าคุณน่าจะไปที่นั่น และหากองค์กรของคุณไม่มีวัฒนธรรมแห่งการพัฒนาคุณจะเห็นเอฟเฟกต์ทะเลเดดซีเข้ามาเล่น ฉันสงสัยว่าเป็นไปได้ที่จะเปลี่ยนระบบโดยรวมหรือถ้าเราสามารถทำซอกับส่วนเล็ก ๆ ของเรา
Wayne Werner

2
@ MikeO'Connor คุณลืมที่จะนำเกมนั้นมาใช้สินทรัพย์ไบนารีจำนวนมาก ความสามารถในการล็อคสินทรัพย์ไบนารี่โดยเฉพาะนั้นเป็นข้อดีอย่างมาก
CodingMadeEasy

22

บางทีพวกเขาอาจชอบ Perforce เพราะ Perforce ดีกว่าไหม

  • อย่างรวดเร็ว เร็วกว่าการโค่นล้มหรือ Git มาก
  • การรวมกลุ่มแบบบังคับนั้นดีกว่าการโค่นล้มหรือ Git Git ไม่ได้ทำการผสานและการติดตามเวอร์ชันของ Subversion นั้นไม่ค่อยดีอย่างน้อยก็ใน 1.5
  • อย่างแรงมีการสนับสนุนลูกค้าที่ยอดเยี่ยม
  • Perforce รวมการแก้ไขที่เก็บของ Subversion กับการแก้ไขแต่ละไฟล์ 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 ไม่ใช่เครื่องมือสำหรับทุกคน มันใช้งานได้ดีในสถานการณ์ที่คุณไม่ต้องการควบคุมแบบรวมศูนย์ว่าใครสามารถเข้าถึงที่เก็บข้อมูลได้ แต่มันอาจเป็นความเจ็บปวดในหลาย ๆ สถานการณ์ วิธีที่ฉันพูดถึงคือ:

  1. คุณเรียกใช้โครงการโอเพนซอร์ส คุณจะมีความสุขหรืออารมณ์เสียหากมีคนนับล้านคนมีที่เก็บสำเนาทั้งหมดของคุณหรือไม่?
  2. คุณกำลังใช้โต๊ะการค้าการเงินที่ใช้ซอฟต์แวร์ที่เป็นกรรมสิทธิ์เพื่อให้ได้เปรียบกับคู่แข่งของคุณ คุณจะมีความสุขหรืออารมณ์เสียหากมีคนนับล้านคนมีที่เก็บสำเนาทั้งหมดของคุณหรือไม่?

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

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

ตัวอย่างเช่นแผนกวิทยาศาสตร์คอมพิวเตอร์วิทยาลัยต้องการให้นักเรียนใช้การควบคุมแหล่งที่มาและวางโค้ดไว้ที่นั่นเพื่อให้ครูดู ความคิดที่ดี. เด็กจำนวนมากออกจากวิทยาลัยโดยไม่เข้าใจขั้นตอนการสร้างและพัฒนามาตรฐาน ฉันแนะนำ Git

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

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

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

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


40
รออะไร? คุณสูญเสียฉันมาที่นี่ "การรวมกลุ่ม Perforce ดีกว่าการโค่นล้มหรือ Git จริง ๆ แล้ว Git ไม่ได้รวมกันอย่างแท้จริง [... ]" คุณอธิบายได้ไหม
Sverre Rabbelier

1
จริง ๆ แล้วฉันพบว่า Git นั้นค่อนข้างดีสำหรับการรวมกันเป็นเครื่องมือที่ดีกว่าเครื่องมือ scm แบบเก่า ๆ แต่เมื่อฉันอยู่ใน svn ฉันไม่สามารถใส่สิ่งต่าง ๆ ลงในรายการ "อย่าเช็คอิน" รายการเปลี่ยนแปลงอย่างที่ฉันทำกับ Perforce (ฉันได้ลองทำใน SVN แต่ยังจบลงด้วยการตรวจสอบสิ่งต่าง ๆ โดยไม่ได้ตั้งใจเพราะ svn และ p4 changelists ทำงานแตกต่างกัน)
JasonTrue

12
@SverreRabbelier 3 ปีต่อมาและยังมีคนรอคำตอบสำหรับคำถามของคุณ
Navin

1
"เพราะ Perforce ดีกว่า" ... "นี่ไม่ใช่เกมฟุตบอลที่หนึ่งทีมดีกว่าอีก" ...
RJFalconer

4
อย่างรวดเร็ว เร็วกว่า svn หรือ git มาก --- มาตรฐานหรือไม่เกิดขึ้น ... ; p
sjas

14

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

คาดเดาสิ่งที่ผลิตภัณฑ์ FOSS ไม่ได้มีอยู่ในสถานที่เหล่านั้น!

ดังนั้นเกือบจะเป็นเพราะการตัดสินใจซื้อการจัดการส่วนใหญ่ขับเคลื่อนด้วยการโฆษณาและการตลาด พวกเขาอาจทำการประเมินผล แต่ในหลาย ๆ ผลิตภัณฑ์ดังกล่าว

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

สุดท้ายในขณะที่ผลิตภัณฑ์ FOSS จำนวนมากได้รับการสนับสนุนจากพวกเขา (คิดว่า Collabnet หรือ Wandisco สำหรับ SVN) แต่ก็ยังคงได้รับชื่อเสียง 'ทำโดย geeks ในห้องนอนด้านหลังของพวกเขา' เราทุกคนรู้ว่าโดยทั่วไปแล้ว b * * ** t และ FOSS ที่ดีที่สุดจะแข่งขันกันได้ดีกับข้อเสนอเชิงพาณิชย์ แต่ผู้จัดการของฉันยังคงต้องเชื่อมั่น บางทีเขาอาจไม่ได้ตระหนักถึงความแตกต่างระหว่างผลิตภัณฑ์ FOSS ที่ยังไม่บรรลุนิติภาวะกับผลิตภัณฑ์ผู้ใหญ่ บางทีเขาอาจไม่สนใจ

อย่างไรก็ตาม Perforce เป็น SCM ที่ดีไม่มีเหตุผลที่จะไม่เลือก ฉันสามารถพูดแบบเดียวกันกับ SCM อื่น ๆ แต่มีอีกครั้งฉันสามารถพูดสิ่งเลวร้ายเกี่ยวกับคนอื่นและยังมีฝันร้ายเมื่อมันมาถึงผลิตภัณฑ์บางอย่าง


นี่เป็นข้อโต้แย้งที่น่าสนใจมากขึ้นเมื่อทศวรรษที่แล้ว แต่ผลิตภัณฑ์ FOSS จำนวนมากเป็นสิ่งสำคัญในปัจจุบัน รวมถึง SVN ซึ่งใช้ใน บริษัท ใหญ่บางแห่ง
Jeremy

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

gbjbaanb คุณเข้าใจฉันผิด ฉันไม่คิดว่าปัจจัยที่คุณอธิบายมีความเกี่ยวข้องกับการจัดการในระดับใดเกือบเท่ากับทศวรรษที่ผ่านมา ในขณะที่อาจเป็นสถานการณ์ของคุณมันจะผิดพลาดในการพูดคุยทั่วไป FOSS เป็นกระแสหลักหมายถึงมีการใช้งานโดย บริษัท ขนาดใหญ่ส่วนใหญ่และใช้ในระบบหลัก
Jeremy

6
ฉันคิดว่านี่เป็นประเด็นสำคัญ: เครื่องมือ FOSS ไม่โฆษณาตัวเองเพราะพวกเขาไม่มีเหตุผล ส่วนหนึ่งคือโบรชัวร์และสิ่งที่คุณพูดถึงแม้ว่าฉันจะเป็น Google "ระบบ SCM เปรียบเทียบ" หรือ "ระบบควบคุมเวอร์ชันเปรียบเทียบ" สิ่งเดียวที่ฉันพบคือสิ่งที่ Perforce ทำ แน่นอนฉันต้องพิจารณาแหล่งที่มา แต่ฉันไม่ทราบว่าเครื่องมือ FOSS ใช้ความพยายามในการโฆษณาตัวเองและพูดคุยเกี่ยวกับสาเหตุที่ดีที่สุด ฉันรู้ว่าเราดูถูกเรื่องการค้า แต่บางครั้งการตลาดและการโฆษณาจริง ๆ แล้วช่วยให้ฉันมีทางเลือกอย่างชาญฉลาด
โอกาส

1
ฉันคิดว่ามีสองเหตุผลที่ยอดเยี่ยมที่จะไม่เลือกใช้บังคับ: 1. การแบรนช์มีราคาแพงมากและ 2. กระบวนการเช็คเอาต์แล้วแก้ไขทำให้ออฟไลน์ทำงานได้ยากมาก
วินไคลน์

14

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

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


13
อาจฟังดูถากถาง แต่โดยหลักแล้วคุณต้องตอกตะปูบนหัว ใน บริษัท ของตัวเองฉันพยายามที่จะโปรโมตโซลูชัน FOSS ใด ๆ เนื่องจากผู้บริหารมีความเข้าใจว่าถ้ามันฟรีมันไม่ดีเลย
wolfgangsz

1
แม้ว่าฉันจะเปลี่ยนพวกเขาเล็กน้อยเมื่อพวกเขาเปลี่ยนโซลูชัน SVN ของเราเป็น 'องค์กร' ที่เสียค่าใช้จ่ายมากในการพลิกผันผู้ให้คำปรึกษาที่จำเป็นต้องมีผู้รับเหมา 2 รายเพื่อดูแลระบบและหลังจากคร่ำครวญมาก และการตายของผลิตผลของเรา ... ถูกโยนออกไปและแทนที่ด้วยโซลูชั่น SVN เก่าของเรา
gbjbaanb

7
Google ไม่รู้จักวัฒนธรรมแบบนี้จริงๆ
Jeremy

11
@ โอกาส: สิ่งใดที่คุณติดต่อฝ่ายสนับสนุนด้านเทคนิคสำหรับ? ฉันใช้ CVS การโค่นล้มและ Mercurial และฉันไม่เคยพบว่าตัวเองต้องการที่จะมีใครบางคนที่ฉันสามารถโทรหา หากฉันมีปัญหาฉันเป็น google หรือฉันโพสต์คำถามและจะแก้ไขได้ภายในไม่กี่นาที ฉันขอแนะนำว่าเครื่องมือควบคุมแหล่งข้อมูลซึ่งต้องการการสนับสนุนจากผู้พัฒนาระบบมีปัญหาร้ายแรง
Tom Anderson

2
@TobyAllen: ไม่ใช่ประมาณหกปี (สังเกตวันที่ของคำถาม) แต่ทุกวันนี้ดูเหมือนว่า Perforce ยังต้องการที่จะใช้สิ่งอื่นที่ไม่ใช่ Perforce: perforce.com/git
Dmitri

12

อาจเป็นเหตุผลเดียวกันที่ บริษัท ของฉันปฏิเสธที่จะใช้ซอฟต์แวร์โอเพ่นซอร์สจำนวนมาก (ไม่ใช่ที่ฉันเห็นด้วย):

เมื่อมีอะไรผิดพลาดพวกเขาต้องการคนที่พวกเขาสามารถโทรหาและตะโกน


2
ฉันเห็นด้วย: นี่เป็นเหตุผลใหญ่สำหรับแผนกไอทีจำนวนมาก แต่ดูเหมือนว่ายังไม่บรรลุนิติภาวะ "มันไม่ใช่ความผิดของเรามันเป็นความผิดพลาดของพวกเขา" การเลือกผลิตภัณฑ์ที่ด้อยกว่าเพียงเพราะนิ้วชี้“ หนึ่งคอที่จะบีบ” ดูเหมือนว่าเป็นการตัดสินใจในวัยแรกเกิด ไม่ใช่ว่ามันไม่ได้ถูกผลิตขึ้นมาบ่อยเท่าที่ดูเหมือนว่าเป็นเด็ก
Bruce Ediger

คำตอบของคุณไม่ได้อ้างอิงถึงการสนับสนุนด้านเทคนิคของ Perforce น่าเสียดายเพราะถ้าคุณรู้ว่ามันดีแค่ไหนคำตอบของคุณอาจจะไม่เกิดขึ้น การสนับสนุนเทคโนโลยีอย่างแม่นยำเป็นตัวเอกและมีความมุ่งมั่นและพวกเขาจะได้รับการแก้ไขอย่างรวดเร็ว
Br.Bill

9

ในขณะที่คำตอบทั้งหมดพูดคุยเกี่ยวกับ บริษัท ใหญ่ที่ใช้ P4 (และพวกเขาตอบว่าทำไม Google ถึงใช้ P4) หนึ่งในเหตุผลหลักที่ Google ยังคงใช้ Perforce ก็คือ Perforce อนุญาตให้คุณเช็คเอาต์ทรีย่อยของ repo ในขณะที่คุณไม่สามารถทำได้ ด้วย repos แหล่งใหญ่เช่น Google ที่สร้างความแตกต่างมาก

และเท่าที่ฉันเคยได้ยิน Facebook ใช้ SVN และ Git-SVN


1
แน่นอน subrepos สนับสนุนและลดความยุ่งยากในการนำรหัสกลับมาใช้ใหม่ นี่คือเหตุผลที่ฉันเลือก Perforce เมื่อฉันมีการพูดในเรื่อง เรื่องใหญ่! ผสมและจับคู่รหัสได้อย่างง่ายดายจาก repos ต่างๆ (ย่อยของ hg) ติดตามผู้ที่ใช้ subrepo เฉพาะความสามารถในการติดตามเช็คอินสาขาและผสานกับ repos ทั้งหมดได้อย่างง่ายดาย ในขณะที่ทำให้ง่ายสุดสำหรับนักพัฒนาที่มีสเปคไคลเอนต์บรรทัดเดียวและเก็บรายละเอียดในสเป็คสาขาสำหรับผู้ใช้ขั้นสูง ตอนนี้ฉันถูกบังคับให้ใช้ Mercurial ในโครงการขนาดใหญ่และจัดการกับ sup-repos ด้วย hg ซึ่งคิดต้นทุนจำนวนมากในการสูญเสียผลิตผล
stephenmm

8

เพราะ SVN คือดี SVN และความจำเป็น (จากเวลา 4 ปีที่ผ่านมาเมื่อเทียบเครื่องมือ) ไม่บางสิ่งบางอย่างที่ดีกว่า SVN (ฉันคิดว่าการแตกแขนงเป็นหนึ่งในนั้น)

และ GIT เป็น DVCS เช่นเดียวกับในการกระจาย สำหรับทีม บริษัท ส่วนที่แจกจ่ายอาจเป็นสิ่งที่ไม่สนใจและไม่ต้องการ


5
คุณสามารถใช้ Git ได้ดีกับเวิร์กโฟลว์ที่แตกต่างกันดังนั้นการเผยแพร่จึงไม่ใช่ปัญหา ... เว้นแต่ว่าทีมของ บริษัท จะไร้เดียงสา Whygitisbetterthanx.com/#any-workflow
M. Dudley

2
ฉันจะไม่พูดว่า Perforce แยกสาขาได้ดี ... การสร้างสาขา Perforce ส่งผลให้ทุกอย่างยุ่งลง SVN แยกสาขาด้วยการขี้เกียจดังนั้นมันจึงเร็วกว่ามาก
วินไคลน์

1
@ Jason - การแตกกิ่งในการโค่นล้มเกิดขึ้นเร็วกว่าที่ฉันสามารถพิมพ์ได้: "svn cp ... ; svn switch ... " บนการสร้าง perforce branch นั้นซับซ้อนอย่างเมามัน สร้างข้อมูลจำเพาะสาขาสร้างพื้นที่ทำงานบูรณาการกระทำ เฮคด้วยความจำเป็นทุกอย่างเป็นเช่นนั้น หากปราศจากการแตกแขนงที่ง่ายและรวดเร็วฉันคิดว่า RCS ใช้งานไม่ได้เป็นหลัก ตัดสินโดยปริมาณการใช้งานสุทธิและความเร็วของการปรับปรุงดูเหมือนว่า Perforce เป็นผลิตภัณฑ์หมดอายุการใช้งาน
วินไคลน์

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

1
@kevin: คุณรู้หรือไม่ว่ามีบางสิ่งที่ "ทำงานได้ดีขึ้น" ไม่จำเป็นต้องเป็นฟังก์ชันของจำนวนคำสั่ง CLI ที่ต้องใช้ แค่ความคิดเห็นของคนที่ไม่ค่อยมีความเชี่ยวชาญในทั้ง SVN และ Perforce
Martin Ba

6

อีกเหตุผลหนึ่งที่ บริษัท ใหญ่ ๆ มักจะซื้อระบบควบคุมรุ่นใหญ่ "klunky" องค์กร ":

การจัดการระดับกลางถึงระดับสูงในแผนกไอทีเห็น VCS เป็นสิ่งที่ทุกโครงการใช้หรือคุณสามารถบังคับใช้ เมื่อคุณบังคับใช้ VCS แล้วทำไมไม่ลองใส่ "กระบวนการ" เล็ก ๆ น้อย ๆ ในนั้นล่ะ? ฉันหมายความว่าคุณมีโอกาสที่จะระบุระบบ "ระดับองค์กร" ทำไมไม่ลองใช้ภายใต้การควบคุมส่วนกลางและเพิ่ม "การกู้คืนความเสียหาย" และ "คุณสมบัติเวิร์กโฟลว์" เพื่อให้คุณสามารถพูดว่า "เราเป็น CMM Level StraightJacket สอดคล้อง!" VCS นั้นง่ายเกินไปสำหรับเป้าหมายที่จะนำคุณสมบัติการบังคับใช้เวิร์กโฟลว์มาใช้

เท่าที่ทางเลือกของซอฟต์แวร์ ickky-poo, cruddy (Serena Dimensions) ได้มีการกล่าวว่า Bikini Golf สองสามรอบในบาฮามาสด้วยพนักงานขายหญิง 20 คนสองสามคนสามารถโน้มน้าวผู้อำนวยการหรือรองประธานของทุกเรื่อง


ไม่มีความเห็น แต่ฉันต้องการรู้ว่าผู้รับเหมาหรือผู้จัดการของเราคนไหนที่เล่นบิกินี่กอล์ฟ!
gbjbaanb

5
ฉันจะยอมรับมันบิกินี่กอล์ฟก็อาจจะใช้ได้กับฉันเช่นกัน
jhocking

5

บริษัท ขนาดใหญ่ต้องการแบบรวมศูนย์บางชนิด เมื่อนักพัฒนาเสร็จสิ้นการพัฒนาแล้วมันก็จะถูกส่งไปยังฝ่ายสนับสนุนลูกค้า คุณต้องการมีส่วนร่วมในรองเท้าเมื่อพวกเขาต้องต่อสู้ผ่าน repos พัฒนา 50-200 กระจาย? และการสร้างจะทำตาม repo ส่วนกลางสร้างต้องเสมอเสมอเสมอตรวจสอบย้อนกลับและทำซ้ำ คุณเรียนรู้สิ่งนี้เป็นครั้งแรกที่คุณถูกนำตัวขึ้นศาลเพื่อรับการละเมิดสิทธิบัตรโง่ ๆ

Git ใช้งานไม่ได้ในรุ่นนี้ หากคุณมี บริษัท ขนาดเล็กหรือ บริษัท ที่มีการเข้าถึง VPN ไม่ดีนั่นเป็นสิ่งที่ บริษัท ของคุณเปล่งประกาย


2
ทุกอย่างเกี่ยวกับการกำหนดเวิร์กโฟลว์การรวมศูนย์หรือการกระจายอำนาจไม่สำคัญ งานของฝ่ายสนับสนุนนั้นไม่ใช่เรื่องง่ายเมื่อพยายามรวมสาขากว่า 200 สาขาใน repo ส่วนกลาง โดยทั่วไป บริษัท ต่างๆเลือกใช้โซลูชั่นรวมศูนย์เพราะนั่นคือสิ่งที่พวกเขาพอใจ ไม่มีข้อได้เปรียบที่เห็นคุณค่าได้มากกว่า DVCS ที่ใช้กับที่เก็บส่วนกลางที่ใช้ร่วมกัน
wadesworld

4

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

ฉันรู้สึกว่าในอนาคต บริษัท อาจเริ่มย้ายจาก Perforce และไปสู่ ​​GIT ... นักพัฒนาส่วนใหญ่ฉันรู้ว่าดูเหมือนจะชอบมัน !! ตรวจสอบhttp://whygitisbetterthanx.com/#git-is-fastเพื่อหาหลักฐานเพิ่มเติมว่าทำไม Perforce อาจไม่โดดเด่นในปีต่อ ๆ ไป !!


4

บางครั้งที่ผ่านมาเราเปลี่ยนจากชุดของ VCS (ฉันรู้ว่า RCS, CVS, ClearCase, Perforce ถูกนำมาใช้ก่อนหน้านี้อาจมีคนอื่นเช่นกัน) เป็นระบบที่ใช้งานเฉพาะ นั่นไม่ใช่โครงการขนาดเล็ก: การย้ายถิ่นฐานใช้เวลามากกว่าหนึ่งปี ทีม (ฉันไม่ได้เป็นส่วนหนึ่งของมัน) เป็นผู้ประเมิน VCS หลายแห่งและอย่างน้อย git และ svn ก็ถูกพิจารณาเช่นเดียวกับที่ใช้อยู่แล้ว เมื่อฉันจำรายงานของพวกเขาพวกเขากรองเครื่องมือโดยไม่ต้องใช้คุณสมบัติที่จำเป็นแล้วพิจารณา:

  • ประสิทธิภาพในการใช้งานทั่วไปโดยเฉพาะอย่างยิ่งสำหรับไซต์ระยะไกล

  • ข้อกำหนดด้านทรัพยากร

  • ความสำคัญของการเปลี่ยนแปลงที่จำเป็นในนิสัยการทำงาน

  • สนับสนุนความพร้อมใช้งานและค่าใช้จ่าย

และเพอร์ฟอร์ดค่อนข้างชัดเจนโดยรวม คอมไพล์ดีกว่าเล็กน้อยสำหรับจุดแรก แต่เสียเปรียบสำหรับคนอื่น ๆ


3

กาลครั้งหนึ่งนานมาแล้ว (เมื่อ IDE ถูกเรียกว่า VI) ระบบฟรี (โอเพ่นซอร์ส) เพียงระบบเดียวคือ CVS, RCS และ SCCS

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

มีระบบควบคุมซอร์สโค้ดเชิงพาณิชย์จำนวนมากอยู่ที่นั่นส่วนใหญ่จัดทำโดยผู้จำหน่ายเครื่องจักรรายเดียว (IBM, DEC, HP, etc) และทำงานบนฮาร์ดแวร์ของพวกเขาเท่านั้น

จากนั้นมีเพียงไม่กี่ บริษัท ที่ระบุว่าจะขายการควบคุมซอร์สโค้ดเชิงพาณิชย์ข้ามแพลตฟอร์มรวมถึง Perforce และ ClearCase

ClearCase สร้างขึ้นบน RPC ที่ทำงานได้ไม่ดีกับเครือข่ายบริเวณกว้าง (แต่เพียงอย่างเดียวอินเทอร์เน็ต) เนื่องจากแพ็คเก็ตเครือข่ายขนาดเล็กจำนวนมากถูก "ปัดเศษ" IBM และเหตุผลเห็น ClearCase เป็น "วัวเงินสด" และไม่เคยแสดงให้เห็นว่ามันมาก รัก.

ดังนั้นระบบควบคุมซอร์สโค้ดเชิงพาณิชย์“ เก่า” เพียงระบบเดียวที่ยังคงใช้งานทั่วไปคือ Perforce เมื่อมีการใช้งานอย่างบังคับและรวมเข้ากับระบบการสร้างและระบบติดตามบั๊กมีประโยชน์ระยะสั้นเพียงเล็กน้อยสำหรับ บริษัท ที่จะย้ายไปทำสิ่งอื่น

เพื่อที่จะสรุปผลได้อย่างเลี่ยงไม่พ้น“เท้าในประตู” เมื่อไม่มีตัวเลือกอื่น ๆ อีกมากมายและพวกเขาไม่ได้เลอะยังพอที่จะรับคนที่จะย้ายออกไปจากมัน

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