มีทางเลือกโอเพนซอร์ซสำหรับ Bitbucket, Github, Kiln และเครื่องมือเรียกดูและจัดการ DVCS ที่คล้ายกันหรือไม่ [ปิด]


68

ฉันรู้เครื่องมือต่างๆ / บริการที่ให้การท่องเว็บและการจัดการ DVCS เช่นBitbucket , Github , เตาเผา , SCM-ManagerและRhodecode

อย่างไรก็ตามกรณีการใช้งานที่ฉันกำลังพิจารณานั้นเป็นสิ่งหนึ่งที่:

  1. ซอร์สโค้ดใด ๆ จะต้องอยู่ในเซิร์ฟเวอร์ภายในของนายจ้าง
  2. การแก้ปัญหาจะต้องเป็นโอเพนซอร์ส
  3. ควรให้ประสบการณ์เช่น Bitbucket หรือ Github รวมถึงวิกิโครงการการเรียกดูและการจัดการพื้นที่เก็บข้อมูลและการเข้ารหัสทางสังคมเช่นการตรวจสอบรหัส
  4. วิธีแก้ปัญหาควรมีการสนับสนุนแบบ Mercurial (หากไม่รองรับ DVCS อื่น ๆ )

ในจำนวนนี้มีเพียง SCM-Manager และ RhodeCode เท่านั้นที่เข้ามาใกล้เพราะสามารถติดตั้งบนเซิร์ฟเวอร์ของคุณเองและเป็นโอเพ่นซอร์ส อย่างไรก็ตามพวกเขาไม่มีประสบการณ์ Bitbucket หรือ Github ไม่มีตัวติดตามปัญหาหรือ wiki และ UI ในขณะที่ใช้งานได้ไม่สามารถเทียบเท่ากับ Github หรือ Bitbucket ได้

ฉันสามารถเข้าใกล้กับ Trac หรือ Redmine ด้วยเบราว์เซอร์ที่เก็บของพวกเขา แต่น่าเสียดายที่พวกเขาไม่มีความสามารถในการจัดการพื้นที่เก็บข้อมูล

มีเครื่องมือโอเพนซอร์สอื่น ๆ ที่จะให้ประสบการณ์คล้ายกับ Bitbucket, Github หรือ Kiln หรือไม่?


4
GitHub Enterprise ทำงานบนเครือข่ายภายใน enterprise.github.com


4
@sylvanaar สำหรับความรู้ของฉัน redmine ไม่ได้ให้ความสามารถในการจัดการพื้นที่เก็บข้อมูลเพียงการเรียกดูพื้นที่เก็บข้อมูล
Ryan Taylor

3
gitlabhq.comนั้นใกล้เคียงที่สุดที่ฉันเคยเห็น GitHub
Andrew T Finnell

8
ฉันลงคะแนนเพื่อเปิดใหม่ นี่เป็นคำถามที่ได้รับความนิยมอย่างมาก ทำไมต้องปิดมัน อย่างน้อยเราก็สามารถย้ายมันไปยังที่อื่นได้หรือไม่?
William Leara

คำตอบ:


31

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

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

พวกเขาพูดถึงมัน - แต่มันก็คุ้มค่าที่จะทำซ้ำว่ามันมี 0 การพึ่งพา ไม่มี php, ไม่มี mySQL, ไม่มี python Nada มันเป็นระบบปฏิบัติการไบนารีของตัวเอง - และมันทำงานได้บนหลายแพลตฟอร์ม ฉันต้องการโครงการเพิ่มเติม "คิด" ในลักษณะเดียวกัน

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

การติดตามบั๊กและวิกิ - นอกเหนือจากการทำการควบคุมเวอร์ชันแบบกระจายเช่น Git และ Mercurial แล้ว Fossil ยังรองรับการติดตามบั๊กแบบกระจายวิกิแบบกระจายและกลไกบล็อกแบบกระจายทั้งหมดในแพ็คเกจเดียว

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

Autosync - Fossil รองรับโหมด "autosync" ซึ่งจะช่วยให้โครงการเดินหน้าต่อไปโดยลดจำนวนการฟอร์กและการรวมที่ไม่จำเป็นซึ่งมักเกี่ยวข้องกับโปรเจ็กต์แบบกระจาย

Self-Contained - ฟอสซิลเป็นไฟล์เรียกทำงานแบบสแตนด์อะโลนเดี่ยวที่มีทุกสิ่งที่จำเป็นในการจัดการการกำหนดค่า การติดตั้งไม่สำคัญ: เพียงดาวน์โหลดไบนารีที่คอมไพล์แล้วสำหรับ Linux, Mac หรือ Windows และวางไว้บน $ PATH ของคุณ ซอร์สโค้ดที่ง่ายต่อการคอมไพล์มีให้สำหรับผู้ใช้บนแพลตฟอร์มอื่น แหล่งซากดึกดำบรรพ์ส่วนใหญ่อยู่ในตัวเองต้องการเพียงแค่ไลบรารี "zlib" และไลบรารี C มาตรฐานในการสร้าง

Simple Networking - Fossil ใช้ HTTP แบบเก่าธรรมดา (พร้อมการสนับสนุนพร็อกซี) สำหรับการสื่อสารเครือข่ายทั้งหมดซึ่งหมายความว่าทำงานได้ดีจากไฟร์วอลล์ที่ จำกัด โปรโตคอลมีแบนด์วิดท์ที่มีประสิทธิภาพจนถึงจุดที่ฟอสซิลสามารถใช้งานได้อย่างสะดวกสบายผ่านการเชื่อมต่ออินเทอร์เน็ตผ่านสายโทรศัพท์

CGI Enabled - ไม่ต้องใช้เซิร์ฟเวอร์ในการใช้ฟอสซิล แต่เซิร์ฟเวอร์ช่วยให้การทำงานร่วมกันง่ายขึ้น ฟอสซิลสนับสนุนการกำหนดค่าเซิร์ฟเวอร์ที่เรียบง่าย แต่แตกต่างกันสามแบบ ความนิยมมากที่สุดคือสคริปต์ CGI 2 บรรทัด นี่เป็นวิธีการที่ใช้โดยที่เก็บฟอสซิลที่โฮสต์ด้วยตนเอง

Robust & Reliable - Fossil จัดเก็บเนื้อหาโดยใช้รูปแบบไฟล์ที่ยั่งยืนในฐานข้อมูล SQLite เพื่อให้การทำธุรกรรมเป็นแบบ atomic แม้ว่าจะถูกขัดจังหวะด้วยการสูญเสียพลังงานหรือระบบล่ม นอกจากนี้การตรวจสอบตนเองโดยอัตโนมัติตรวจสอบว่าทุกแง่มุมของที่เก็บมีความสอดคล้องก่อนที่จะกระทำแต่ละ ในช่วงสามปีของการทำงานไม่เคยมีงานใดสูญหายหลังจากที่ได้ทุ่มเทให้กับที่เก็บฟอสซิล

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

ฟอสซิล UI


3
+1 สำหรับฟอสซิล ฉันเคยใช้ที่นี่อย่างกว้างขวางในที่ทำงานและ "ข้อเสีย" เดียวที่ฉันเคยเห็นคือโซนที่เต่า (git / hg / svn) เข้ากันได้พอดี อย่างไรก็ตามมีโครงการwinfossil มันถูกโฮสต์ในฟอสซิลถ้าคุณต้องการดูเว็บอินเตอร์เฟสในโครงการนอกเหนือจากฟอสซิล
Spencer Rathbun

1
ฟอสซิลนั้นยอดเยี่ยมมาก มันไม่ค่อยใช้แล้ว แต่เป็นความจริง
haylem

16

Gitoriousเป็นโอเพ่นซอร์สและคุณสามารถติดตั้งลงบนเซิร์ฟเวอร์ของคุณเองโดยใช้สคริปต์ที่จัดทำโดย Gitorious community edition (ดูที่http://www.getgitorious.com/installer ) Gitorious ในขณะนี้มีการสนับสนุนสำหรับวิกิและการติดตามปัญหา นอกจากนี้ยังมีอิมเมจ Dockerสำหรับการเรียกใช้อย่างรวดเร็ว

อีกทางเลือกหนึ่งคือGitlabซึ่งโดยทั่วไปเป็นโคลน GitHub ซึ่งไม่โตเต็มที่เท่าที่เป็นเรื่องอื้อฉาว แต่อยู่ภายใต้การพัฒนาอย่างหนักพร้อมการเปิดตัวรายเดือน

คุณอาจต้องการตรวจสอบตัวเลือกเพิ่มเติมที่นี่


กระบวนการติดตั้งของ Gitorious นั้นง่ายขึ้น คุณสามารถใช้สคริปต์การติดตั้ง ( getgitorious.com/installer ) หรือไปที่อิมเมจ Virtualboxที่พร้อมใช้งาน ( getgitorious.co/install-gitorious )
Peter Butkovic

รหัสสามารถพบได้ที่gitorious.org/gitorious/mainline
The Demz

8

ข้อ จำกัด ของคุณค่อนข้างเฉพาะเจาะจง แต่ฉันคิดว่าคุณสามารถรับผลลัพธ์ที่คุณค้นหาด้วยปลั๊กอินChiliProject +

ChiliProject เป็นทางแยกของ Redmine ที่ใช้ Ruby / Rails รุ่นปรับปรุง สนับสนุน git และ mercurial ได้ดีมากและจำลองการทำงานของ Github Issues ที่ดูเหมือนว่าคุณกำลังค้นหาด้วยการแจงข้อความ commit (เช่นrefs 291ในคอมมิชชันจะทำการลิงค์ไปยังคอมมิชชัน to # 291)

นอกจากนี้ยังมีปลั๊กอิน Redmine / ChiliProject ที่ให้บริการสิ่งอำนวยความสะดวกเช่นการตรวจสอบโค้ดการเน้นไวยากรณ์และสิ่งอื่น ๆ ที่ Github ฯลฯ มอบให้ซึ่งอาจไม่ชัดเจนหรือหาได้ง่ายในคู่แข่งโอเพ่นซอร์ส

มีตัวเลือกอื่น ๆ JIRA เป็นต้น แต่พวกเขา (IMHO) ไม่ได้จัดเตรียมความสามารถในการใช้งานที่หลากหลายซึ่ง ChiliProject fork of Redmine + มีปลั๊กอินให้เลือกมากมาย มีไม่มากที่ Github และ / หรือ BitBucket ทำเพื่อคุณที่ ChiliProject (อาจมีปลั๊กอินที่พร้อมใช้งานฟรี) ไม่สามารถทำได้ และความงามคือถ้ามันไม่ได้มีอยู่แล้วก็มักจะเล็กน้อยที่จะใช้มันเอง

ถ้าเสียงเหมือนมากขึ้นกว่าที่คุณต้อง ... ฉันไม่ได้พยายามมัน แต่GitLabยังมีลักษณะที่น่าสนใจ ... มันไม่ได้ดูเหมือนจะมีการขยายหรือปลั๊กอินสถาปัตยกรรมของ Redmine / พริก แต่ถ้าคุณกำลังมองหา สำหรับโคลนโอเพนซอร์ซของ Github ที่มีชุดฟีเจอร์หลักส่วนใหญ่ (และคุณไม่จำเป็นต้องรองรับ DVCS หลายตัว) มันดูดีทีเดียว


นอกจากนี้หากคุณต้องการเครื่องมือการจัดการการควบคุมแหล่งข้อมูลบนเว็บ ... ฉันใช้ Gitosis กับ Redmine / ChiliProject สำเร็จแล้ว ... ไม่แน่ใจว่าเทียบเท่ากับ Mercurial แต่ควรเพิ่มเข้ามาเล็กน้อย
Jason Lewis

ปรับปรุง: Redmine ยังใช้เวอร์ชั่น Rails ที่ทันสมัย ​​(หากคุณหมายถึง Rails 3) ตั้งแต่ Redmine 2
ทางเลือก

7

Allura http://sf.net/p/alluraควรพอดีกับใบเสร็จ เป็นแพลตฟอร์มสำหรับโครงการใหม่ (หรืออัพเกรด) ทั้งหมดที่ SourceForge และเป็นโอเพ่นซอร์ส รองรับ Mercurial และ wikis รวมถึงเครื่องมืออื่น ๆ อีกมากมาย (Git, SVN, ตัวติดตามตั๋ว, ฟอรัม ฯลฯ ) มันไม่ค่อยมี "การตรวจสอบรหัส" แต่รองรับการฟอร์กและรวมคำขอสำหรับ Mercurial และ Git repos

มันเขียนใน Python และใช้ MongoDB และ Solr สำหรับจัดเก็บข้อมูล

ปัจจุบัน Allura ยังอยู่ใน Apache Incubator: http://incubator.apache.org/projects/allura.html

ฉันทำงานให้กับ SourceForge และช่วยพัฒนา Allura


6

สำหรับปัญหาเดียวกันในที่ทำงานเราใช้ระบบนิเวศที่ประกอบด้วย:

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

การรวม DVCS ใน Redmine ได้รับการปรับปรุงโดย leaps และขอบเขตในรุ่นที่ใหม่กว่าฉันอัพเกรดเมื่อไม่กี่สัปดาห์ที่ผ่านมาและฉันรู้สึกยินดีอย่างยิ่งที่ "gotchas" ส่วนใหญ่หายไป

ฉันเรียกใช้เซิร์ฟเวอร์ Redmine และ RhodeCode บนโฮสต์เดียวกันเพราะ Redmine ยังไม่รองรับ repos HG ระยะไกล เจนกินส์ทำงานกับโฮสต์อื่น ๆ หลายแห่ง

ฉันใช้ตะขอ RhodeCode เพื่อกระตุ้นการดึงของ mercurial ใน Redmine ฉันไม่สามารถใช้เบ็ดสำหรับ Jenkins pulls เนื่องจากJENKINS-13717แต่ฉันได้ส่ง patch สำหรับสิ่งนี้แล้วและฉันเดาว่ามันจะได้รับการยอมรับอย่างรวดเร็ว ในระหว่างนี้ฉันเพิ่งสำรวจโพล HG ทุก ๆ นาที

ทุกอย่างทำงานบน Debian 6.0 ผ่าน Nginx reverse proxying เพื่อรับการเลิกใช้ SSL (ทั้งหมดนี้ใช้ผ่าน SSL เท่านั้น) เมื่อเร็ว ๆ นี้แพคเกจทั้งหมดถูกย้ายไปยังคลัสเตอร์ ProxMoxเพื่อจำลองมันทั้งหมดด้วยผลลัพธ์ที่ยอดเยี่ยม ในกรณีที่คุณไม่รู้จักผลิตภัณฑ์คุณควรดูที่ เป็นหนึ่งในนั้น " ฉันไม่อยากจะเชื่อว่ามีอยู่จริงและฉันก็ไม่รู้เหมือนกันและ OMG ก็เป็นโอเพ่นซอร์สด้วย! " ผลิตภัณฑ์ชนิดหนึ่ง เราเรียกใช้บริการเหล่านี้บนภาชนะ OpenVZ ที่สามารถโยกย้ายจากโฮสต์หนึ่งไปยังอีกโฮสต์หนึ่งได้อย่างง่ายดายสำหรับการซ่อมแซม / อัพเกรดฮาร์ดแวร์ ในคลัสเตอร์เดียวกันนั้นเรายังใช้เครื่องเสมือน KVM จำนวนมากรวมถึงการทดสอบอัตโนมัติบนแพลตฟอร์ม Windows

ฉันมีความสุขมากกับระบบนิเวศนี้ มันได้ปรับปรุงความสามารถของทีม dev / QA ของเราในการทำซ้ำปัญหาและติดตามการเปลี่ยนแปลงโดยกำไรขั้นต้นที่มาก คำเตือนเพียงไม่กี่:

  • ถ้าคุณไปกับ Rhodecode อย่าตั้งค่ามันบน SQLite ใช้ MySQL หรือ DBMS จริงอื่น มันไม่สามารถทำการโยกย้ายได้หลังจากข้อเท็จจริงและ SQLite ใช้การเชื่อมต่อครั้งละ 1 รายการเท่านั้นทำให้เกิดการล็อกและหมดเวลาตลก (ดู# 439 ของ RhodeCode ) มันจะกลายเป็นความเจ็บปวดถ้าเจนกินส์กำลังสำรวจ Repo อย่างต่อเนื่องเนื่องจากคุณได้รับข้อความแสดงข้อผิดพลาดเป็นระยะ ๆ (ดูความคิดเห็นด้านบนในปัญหาของเจนกินส์)
  • จริงๆคุณไม่สามารถความเครียดพอที่จะ devs ของคุณซึ่งใน Mercurial กระทำหมายเลข "132" หมายถึงอะไรเพื่อคนอื่น ๆ ในเครือข่ายเป็นตัวเลขเหล่านั้นเป็นเพียงท้องถิ่น เมื่อพูดถึงการแก้ไขตั๋วภายใน Redmine ทั้งใช้หมายเลขท้องถิ่นแก้ไขที่คุณจะได้รับจากเบราว์เซอร์ repo (ซึ่งจะเหมือนกันทั้งในและ RhodeCode Redmine เนื่องจากที่พวกเขาทำงานในเครื่องเดียวกัน) commit:abcd1234หรือใช้

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


2

ลองดูที่ cydra: https://github.com/mensi/cydra ที่รองรับ

  • การโค่นล้ม (HTTP)
  • Git (HTTP และ SSH บนพอร์ตแยก)
  • Mercurial (HTTP)
  • Trac

มันใช้วิธีการตามโครงการซึ่งช่วยให้คุณสร้างโครงการและกำหนดที่เก็บหลายแห่งให้กับมัน (ที่เก็บ SVN มากที่สุดหนึ่งรายการ) รับรองความถูกต้องจะขึ้นอยู่กับแต่ละปลั๊กอิน (เรารวมเข้ากับ ldap ของเรา)

เราใช้มันสำหรับhttps://code.vis.ethz.chแพลตฟอร์มการเข้ารหัสของเรา ในขณะนี้ยังไม่มีการสนับสนุนการตรวจสอบโค้ด แต่สามารถเพิ่มเป็นปลั๊กอินได้อย่างง่ายดาย

ฉันไม่สามารถโพสต์ภาพหน้าจอได้เนื่องจากฉันไม่มีชื่อเสียงเพียงพอ


1
โครงการ Cydra ดูเหมือนว่าเพิ่งจะเริ่มไม่กี่เดือนที่ผ่านมาและดูเหมือนจะไม่ได้รับการพัฒนาอย่างจริงจัง อาจจะอ่อนไปหน่อยที่จะพูดถึง
R0MANARMY

ใช่คุณถูก. แต่ถ้าคุณต้องการตั้งค่าบางสิ่งเช่นแพลตฟอร์มโฮสติ้งโค้ดคุณอาจต้องการปรับแต่งสิ่งต่าง ๆ มากมายด้วยตัวเองดังนั้นฉันคิดว่ามันควรค่าแก่การกล่าวถึง
ปาสกาล

2

ลองใช้ GitLab https://about.gitlab.com/เนื่องจากตรงตามความต้องการส่วนใหญ่ของคุณ:

  1. คุณสามารถติดตั้งในสถานที่
  2. เป็นใบอนุญาตของชาวต่างชาติ MIT
  3. มีวิกิ (สนับสนุนโดย git), การเรียกดูพื้นที่เก็บข้อมูล, การจัดการการเข้าถึงโดยละเอียด (หลายระดับการเข้าถึง, สาขาที่ได้รับการป้องกัน, การรวม ldap ฯลฯ ) และมีการรวมคำขอสำหรับการตรวจสอบรหัสและการสนทนา (รวมถึงความคิดเห็นของบรรทัด)
  4. มันไม่รองรับ Mercurial แต่เป็นคอมไพล์เท่านั้น

นอกจากนี้ยังมีตัวติดตามปัญหาที่ดีหรือคุณสามารถเชื่อมโยงไปยังตัวติดตามปัญหาภายนอก คุณสามารถทดสอบคำขอรวมของคุณกับ GitLab CI หากคุณต้องการ GitLab เติบโตอย่างรวดเร็วและมีการใช้งานโดยองค์กรมากกว่า 25,000 แห่ง

การเปิดเผยข้อมูล: ฉันเป็น CEO และผู้ร่วมก่อตั้ง GitLab BV

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