Apakah ada alternatif sumber terbuka untuk Bitbucket, Github, Kiln, dan alat manajemen dan penelusuran DVCS serupa? [Tutup]

68

Saya mengetahui beberapa alat / layanan yang menyediakan penjelajahan dan manajemen DVCS seperti Bitbucket , Github , Kiln , SCM-Manager dan Rhodecode .

Namun, use case yang saya pertimbangkan adalah salah satunya sehingga:

  1. Kode sumber apa pun harus berada di server internal perusahaan.
  2. Solusinya harus open source.
  3. Ini harus memberikan pengalaman seperti Bitbucket atau Github, termasuk wiki proyek, penelusuran dan pengelolaan repositori, dan aspek pengkodean sosial seperti tinjauan kode.
  4. Solusinya harus memiliki dukungan lincah (jika tidak mendukung untuk DVCS lainnya).

Dari jumlah tersebut, hanya SCM-Manager dan RhodeCode yang hampir dapat diinstal pada server Anda sendiri dan bersifat open source. Namun mereka tidak memiliki pengalaman Bitbucket atau Github. Tidak ada pelacak masalah atau wiki dan UI, sementara fungsional, tidak sebanding dengan Github atau Bitbucket.

Saya bisa mendekati Trac atau Redmine dengan browser repositori mereka, tetapi sayangnya mereka tidak memiliki kemampuan manajemen repositori.

Apakah ada alat open source lain di luar sana yang akan memberikan pengalaman serupa dengan Bitbucket, Github atau Kiln?

Ryan Taylor
sumber
4
GitHub Enterprise berjalan di jaringan internal. enterprise.github.com
5
redmine.org
sylvanaar
4
@sylvanaar Setahu saya redmine tidak menyediakan kemampuan manajemen repositori, hanya penelusuran repositori.
Ryan Taylor
3
gitlabhq.com adalah yang terdekat yang pernah saya lihat dengan GitHub
Andrew T Finnell
8
Saya memilih untuk membuka kembali. Ini adalah pertanyaan yang sangat populer. Kenapa tutup itu? Bisakah kita setidaknya memindahkannya ke tempat lain?
William Leara

Jawaban:

31

Saya akan melihat fosil. Ini adalah sistem yang digunakan oleh pengembang sqlite, secara internal, tampaknya. Ini juga menggunakan sqlite, yang merupakan teknologi solid yang bagus ... yang bagus dan portabel - serta sederhana dan dapat diandalkan.

Ini memiliki antarmuka pengguna yang baik, jika sederhana (yang saya pikir sifat-sifat tujuan berorientasi produktivitas seperti yang Anda jelaskan). ((Pastikan untuk memeriksa tema "abu-abu". Ini jauh lebih sedikit "router-admin" daripada "tema" default, jika Anda bisa menyebutnya begitu.)) Saya tertarik padanya karena akarnya sebagai CGI sistem berbasis, karena saya pengisap untuk CGI. Hasil dari warisan itu sebenarnya sangat menarik, karena sistem ini memiliki mode JSON-ONLY yang sangat unik yang memiliki segala macam kemungkinan implementasi yang menarik ..

Mereka menyebutkannya - tetapi perlu diulangi bahwa ia memiliki 0 dependensi. Tanpa php, tanpa mySQL, tanpa python. Nada. Ini biner yang dapat dieksekusi - dan berfungsi pada banyak platform. Saya berharap lebih banyak proyek "berpikir" dengan cara yang sama.

Saya tidak berafiliasi dengan mereka, sehingga hanya akan mengutip halaman pembuka mereka extolations , yang umumnya, saya setuju dengan .. juga kita lihat pertanyaan & kritik ..

Bug Tracking And Wiki - Selain melakukan kontrol versi terdistribusi seperti Git dan Mercurial, Fossil juga mendukung pelacakan bug terdistribusi, wiki terdistribusi, dan mekanisme blog terdistribusi, semuanya dalam satu paket terintegrasi.

Antarmuka Web - Fossil memiliki antarmuka web built-in dan mudah digunakan yang menyederhanakan pelacakan proyek dan meningkatkan kesadaran situasional. Cukup ketik "fossil ui" dari dalam setiap check-out dan Fossil secara otomatis membuka browser web Anda di halaman yang memberikan sejarah grafis rinci dan informasi status pada proyek itu.

Autosync - Fossil mendukung mode "autosync" yang membantu menjaga proyek bergerak maju dengan mengurangi jumlah percabangan dan penggabungan yang tidak perlu yang sering dikaitkan dengan proyek terdistribusi.

Self-Contained - Fossil adalah satu-satunya yang dapat dieksekusi yang berisi semua yang diperlukan untuk melakukan manajemen konfigurasi. Instalasi sepele: cukup unduh biner yang telah dikompilasi untuk Linux, Mac, atau Windows dan letakkan di $ PATH Anda. Kode sumber yang mudah dikompilasi tersedia untuk pengguna di platform lain. Sumber-sumber fosil juga kebanyakan mandiri, hanya membutuhkan pustaka "zlib" dan pustaka C standar untuk dibangun.

Simple Networking - Fossil menggunakan HTTP tua biasa (dengan dukungan proxy) untuk semua komunikasi jaringan, yang berarti ia berfungsi dengan baik dari belakang firewall yang membatasi. Protokol ini efisien bandwidth hingga Fossil dapat digunakan dengan nyaman melalui koneksi internet dial-up.

CGI Diaktifkan - Tidak diperlukan server untuk menggunakan fosil. Tetapi server memang membuat kolaborasi lebih mudah. Fosil mendukung tiga konfigurasi server yang berbeda namun sederhana. Yang paling populer adalah skrip CGI 2-baris. Ini adalah pendekatan yang digunakan oleh repositori fosil self-hosting.

Kuat & Terpercaya - Fosil menyimpan konten menggunakan format file yang bertahan lama dalam database SQLite sehingga transaksi bersifat atomik bahkan jika terganggu oleh kehilangan daya atau kerusakan sistem. Selain itu, pemeriksaan mandiri otomatis memverifikasi bahwa semua aspek repositori konsisten sebelum setiap komitmen. Dalam lebih dari tiga tahun beroperasi, tidak ada pekerjaan yang pernah hilang setelah berkomitmen pada repositori fosil.

Pembaruan: Alih-alih menyinggung antarmuka, inilah contoh singkatnya ... Seperti yang Anda lihat, ini jelas sederhana .. Tapi itu juga berarti batu tulis bersih untuk penyesuaian .. Hanya satu stylesheet dan jenis header / footer / body-type sistem templating. Lebih baik menulis cerita pendek daripada menulis ulang buku orang lain, IMO.

fosil ui

alex grey
sumber
3
+1 untuk fosil. Saya sudah menggunakannya secara luas di sini di tempat kerja, dan satu-satunya "downside" yang saya lihat adalah zona yang cocok dengan kura-kura (git / hg / svn). Namun, ada proyek winfossil . Ini dihosting dalam fosil, jika Anda ingin melihat antarmuka web pada proyek selain fosil itu sendiri.
Spencer Rathbun
1
Fosil benar-benar luar biasa. Jarang apa yang saya gunakan, tapi itu kebenaran.
haylem
16

Gitorious adalah open source dan Anda dapat menginstalnya di server Anda sendiri menggunakan skrip yang disediakan oleh edisi komunitas Gitorious (lihat http://www.getgitorious.com/installer ). Gitorious sekarang memiliki dukungan untuk wiki dan pelacakan masalah. Ada juga gambar Docker yang tersedia untuk menjalankannya dengan cepat.

Pilihan lain adalah Gitlab yang pada dasarnya adalah klon GitHub, tidak seatur gitorious tapi sedang dalam pengembangan berat dengan rilis bulanan.

Anda mungkin juga ingin memeriksa lebih banyak opsi di sini

tbg
sumber
proses instalasi Gitorious telah disederhanakan. Anda dapat menggunakan skrip instal ( getgitorious.com/installer ) atau pergi untuk gambar virtualbox yang siap dijalankan ( getgitorious.co/install-gitorious )
Peter Butkovic
Kode ini ditemukan di gitorious.org/gitorious/mainline
The Demz
8

Batasan Anda cukup spesifik, tetapi saya pikir Anda bisa mendapatkan hasil yang Anda cari dengan plugin ChiliProject +.

ChiliProject adalah garpu Redmine yang menggunakan versi terbaru dari Ruby / Rails. Ini mendukung git dan lincah dengan sangat baik, dan mereplikasi fungsionalitas Masalah Github seperti yang Anda cari dengan mem-parsing pesan komit (yaitu, refs 291dalam komit akan menghubungkan komit dengan masalah # 291).

Ada juga plugin Redmine / ChiliProject yang menyediakan fasilitas seperti tinjauan kode, penyorotan sintaksis, dan keramahan lain yang disediakan oleh Github, dll. Yang mungkin tidak tersedia secara jelas atau tersedia di pesaing open-source.

Ada beberapa opsi lain, JIRA, dll., Tetapi mereka (IMHO) tidak memberikan kenyamanan atau kekayaan fungsionalitas yang disediakan oleh cabangProyek Cabut Redmine + banyaknya plugin yang tersedia. Tidak banyak yang Github dan / atau BitBucket lakukan untuk Anda yang tidak bisa dilakukan oleh ChiliProject (mungkin dengan plugin yang tersedia secara bebas); dan keindahannya, jika belum ada, biasanya cukup sepele untuk menerapkannya sendiri.

Jika ini kedengarannya lebih dari yang Anda butuhkan ... Saya belum mencobanya, tetapi GitLab juga terlihat menarik ... sepertinya tidak memiliki ekstensibilitas atau arsitektur plugin Redmine / Chili, tetapi jika Anda mencari untuk kloning open-source Github dengan sebagian besar set fitur inti (dan Anda tidak perlu mendukung banyak DVCS), tampilannya cukup bagus.

Jason Lewis
sumber
Selain itu, jika Anda memerlukan alat manajemen sumber kontrol berbasis web ... Saya telah berhasil menggunakan Gitosis dengan Redmine / ChiliProject ... tidak yakin dengan yang setara untuk Mercurial, tetapi harus cukup sepele untuk menambahkan.
Jason Lewis
Pembaruan: Redmine juga menggunakan versi Rails terbaru (jika Anda maksud Rails 3) pada Redmine 2.
alternatif
7

Allura http://sf.net/p/allura harus sesuai dengan tagihan. Ini adalah platform untuk semua proyek baru (atau yang ditingkatkan) di SourceForge dan bersifat open source. Ini mendukung Mercurial dan wiki, plus banyak lagi alat (Git, SVN, pelacak tiket, forum, dll). Ini tidak memiliki "review kode" tetapi mendukung forking dan menggabungkan permintaan untuk repositori Mercurial dan Git.

Ini ditulis dalam Python dan menggunakan MongoDB dan Solr untuk penyimpanan data.

Allura juga saat ini berada di Apache Incubator: http://incubator.apache.org/projects/allura.html

Saya bekerja untuk SourceForge dan membantu mengembangkan Allura.

Dave Brondsema
sumber
6

Untuk masalah yang sama persis di tempat kerja, kami menggunakan ekosistem yang terdiri dari:

  • Redmine untuk pelacakan masalah
  • RhodeCode untuk manajemen repositori
  • Jenkins untuk integrasi dan penerapan berkelanjutan (kami memiliki pekerjaan untuk penerapan dan peningkatan tugas yang dapat diberikan izin secara terperinci, dan Anda mendapatkan jejak audit gratis)
  • Direktori Aktif untuk otentikasi (semua hal di atas dapat diintegrasikan dengan mulus)

Integrasi DVCS dalam Redmine telah meningkat dengan pesat dalam rilis-rilis berikutnya, saya memutakhirkan beberapa minggu yang lalu dan saya sangat senang bahwa sebagian besar "gotcha" hilang.

Saya menjalankan server Redmine dan RhodeCode pada host yang sama karena Redmine belum mendukung repo HG jarak jauh dulu. Jenkins berjalan pada beberapa host lainnya.

Saya menggunakan pengait RhodeCode untuk memicu tarikan lincah di Redmine. Saya tidak bisa menggunakan kait untuk tarikan Jenkins karena JENKINS-13717 , tetapi saya sudah mengirimkan tambalan untuk ini dan saya kira itu akan diterima dengan cukup cepat. Sementara itu, saya hanya polling repo HG setiap beberapa menit.

Semuanya berjalan pada Debian 6.0 melalui Nginx reverse proxy untuk mendapatkan terminasi SSL (semua ini hanya digunakan melalui SSL). Baru-baru ini seluruh paket dipindahkan ke cluster ProxMox untuk memvirtualisasikan semuanya dengan hasil yang bagus sejauh ini. Jika Anda tidak tahu produknya, Anda harus melihatnya. Itu salah satu dari mereka " Saya tidak percaya ini ada dan saya tidak tahu tentang itu dan OMG itu open source juga! " Kami menjalankan layanan ini pada wadah OpenVZ yang mudah dimigrasikan dari satu host ke host lain untuk perbaikan / peningkatan perangkat keras. Pada cluster yang sama kami juga menjalankan banyak mesin virtual KVM juga untuk pengujian otomatis pada platform Windows.

Saya sangat senang dengan ekosistem ini. Ini telah meningkatkan kemampuan tim dev / QA kami untuk mereproduksi masalah dan melacak perubahan dengan selisih yang sangat besar. Hanya beberapa peringatan:

  • Jika Anda menggunakan Rhodecode, jangan mengaturnya di SQLite. Gunakan MySQL atau DBMS nyata lainnya. Itu tidak benar-benar dapat dimigrasi setelah fakta, dan SQLite hanya membutuhkan 1 koneksi pada suatu waktu, menghasilkan kunci dan waktu tunggu yang lucu (lihat RhodeCode's # 439 ). Ini menjadi menyakitkan jika Jenkins melakukan polling repo secara terus menerus saat Anda mendapatkan pesan kesalahan sesekali (lihat komentar di atas tentang masalah Jenkins).
  • Anda benar-benar tidak bisa cukup menekankan kepada devs Anda bahwa di Mercurial, komit angka "132" tidak berarti apa-apa bagi semua orang di jaringan karena angka-angka itu hanya lokal . Saat berbicara tentang perubahan di dalam tiket Redmine, gunakan nomor revisi lokal yang bisa Anda dapatkan dari browser repo (yang sama di RhodeCode dan Redmine, karena mereka berjalan di mesin yang sama) atau gunakan commit:abcd1234.

Saya tidak ragu merekomendasikan pengaturan ini karena saya sangat senang dengannya. Jika Anda memerlukan bantuan untuk mengkonfigurasi layanan tertentu atau Anda ingin melihat file konfigurasi saya, jangan ragu untuk bertanya.

GomoX
sumber
2

Lihatlah cydra: https://github.com/mensi/cydra yang didukungnya

  • Subversi (HTTP)
  • Git (HTTP dan SSH pada port terpisah)
  • Mercurial (HTTP)
  • Trac

Ini bekerja pada pendekatan berbasis proyek yang memungkinkan Anda untuk membuat proyek dan menetapkan beberapa repositori untuk itu (paling banyak satu repositori SVN). Auth didasarkan pada masing-masing plugin (kami mengintegrasikannya ke ldap kami).

Kami menggunakannya untuk platform coding https://code.vis.ethz.ch kami . Saat ini tidak ada dukungan untuk tinjauan kode tetapi dapat dengan mudah ditambahkan sebagai plugin.

Saya tidak dapat memposting tangkapan layar karena saya tidak memiliki reputasi yang cukup.

Pascal
sumber
1
Proyek Cydra sepertinya baru saja dimulai beberapa bulan yang lalu dan tampaknya tidak berkembang dengan sangat aktif. Mungkin agak tidak matang untuk disebutkan.
R0MANARMY
Ya kamu benar. Tetapi jika Anda ingin mengatur sesuatu seperti platform kode hosting Anda mungkin ingin menyesuaikan banyak hal sendiri. Jadi saya pikir itu layak disebutkan.
Pascal
2

Pertimbangkan untuk menggunakan GitLab https://about.gitlab.com/ karena memenuhi sebagian besar persyaratan Anda:

  1. Anda dapat menginstalnya di tempat
  2. Ini adalah ekspat MIT berlisensi
  3. Ini memiliki wiki (didukung oleh git), penjelajahan repositori, manajemen akses terperinci (beberapa tingkat akses, cabang terlindungi, integrasi ldap, dll.) Dan memiliki permintaan gabungan untuk tinjauan dan diskusi kode (termasuk komentar baris)
  4. Itu tidak mendukung lincah tetapi hanya git

Ini juga memiliki pelacak masalah yang baik atau Anda dapat menautkan ke pelacak masalah eksternal. Anda bisa menguji permintaan gabungan Anda dengan GitLab CI jika Anda mau. GitLab telah berkembang pesat dan digunakan oleh lebih dari 25.000 organisasi.

Pengungkapan: Saya adalah CEO & salah satu pendiri GitLab BV

Sytse Sijbrandij
sumber