Có các lựa chọn thay thế nguồn mở cho Bitbucket, Github, Kiln và các công cụ quản lý và duyệt DVCS tương tự không? [đóng cửa]


68

Tôi biết một số công cụ / dịch vụ cung cấp trình duyệt và quản lý DVCS như Bitbucket , Github , Kiln , SCM-ManagerRhodecode .

Tuy nhiên, trường hợp sử dụng tôi đang xem xét là một trường hợp như sau:

  1. Bất kỳ mã nguồn nào cũng phải nằm trên máy chủ nội bộ của chủ nhân.
  2. Giải pháp phải là nguồn mở.
  3. Nó nên cung cấp trải nghiệm như Bitbucket hoặc Github, bao gồm wiki dự án, duyệt và quản lý kho lưu trữ và các khía cạnh mã hóa xã hội như xem xét mã.
  4. Giải pháp nên có hỗ trợ đồng bóng (nếu không hỗ trợ cho các DVCS khác).

Trong số này, chỉ SCM-Manager và RhodeCode đến gần vì chúng có thể được cài đặt trên các máy chủ của riêng bạn và là nguồn mở. Tuy nhiên, họ không có trải nghiệm Bitbucket hoặc Github. Không có trình theo dõi vấn đề hoặc wiki và giao diện người dùng, trong khi chức năng, không ngang bằng với Github hoặc Bitbucket.

Tôi có thể gần gũi với Trac hoặc Redmine với các trình duyệt kho lưu trữ của họ nhưng tiếc là họ không có bất kỳ khả năng quản lý kho lưu trữ nào.

Có các công cụ nguồn mở nào khác ngoài đó sẽ cung cấp trải nghiệm tương tự như Bitbucket, Github hoặc Kiln không?


4
GitHub Enterprise chạy trên mạng nội bộ. Enterprise.github.com


4
@sylvanaar Theo hiểu biết của tôi, redmine không cung cấp khả năng quản lý kho lưu trữ, chỉ duyệt qua kho lưu trữ.
Ryan Taylor

3
gitlabhq.com là trang web gần nhất tôi từng thấy với GitHub
Andrew T Finnell

8
Tôi bỏ phiếu để mở lại. Đây là một câu hỏi cực kỳ phổ biến. Tại sao lại đóng nó? Ít nhất chúng ta có thể di chuyển nó đến một nơi khác không?
William Leara

Câu trả lời:


31

Tôi sẽ xem Fossil. Đây là hệ thống các nhà phát triển sử dụng sqlite, trong nội bộ, rõ ràng. Nó cũng sử dụng sqlite, một công nghệ vững chắc tốt ... rất đẹp và di động - cũng như đơn giản và đáng tin cậy.

Nó có một giao diện người dùng tốt, khắc khổ (mà tôi nghĩ sẽ xử lý đúng bản chất của một mục tiêu định hướng năng suất như bạn mô tả). ((Hãy chắc chắn kiểm tra chủ đề "màu xám". Đó là cách ít "chủ đề bộ định tuyến" hơn "chủ đề" mặc định, nếu bạn có thể gọi nó là chủ đề đó.) dựa trên hệ thống, vì tôi là một kẻ hút CGI. Các kết quả của di sản đó đang thực sự rất thú vị, như hệ thống này có một chế độ JSON-CHỈ rất độc đáo trong đó có tất cả các loại thú vị thi-khả năng ..

Họ đề cập đến nó - nhưng đáng để nhắc lại rằng nó có 0 phụ thuộc. Không có php, không có myQuery, không có python. Nada. Đó là tệp thực thi nhị phân của riêng nó - và nó hoạt động trên nhiều nền tảng. Tôi muốn nhiều dự án "nghĩ" theo cùng một cách.

Tôi không liên kết với họ, vì vậy chỉ đơn giản là sẽ trích dẫn trang mở của họ extolations , mà nói chung, tôi đồng ý với .. cũng hãy nhìn vào câu hỏi & những lời chỉ trích ..

Theo dõi lỗi và Wiki - Ngoài việc thực hiện kiểm soát phiên bản phân tán như Git và Mercurial, Fossil còn hỗ trợ theo dõi lỗi phân tán, wiki phân tán và cơ chế blog phân tán tất cả trong một gói tích hợp.

Giao diện web - Fossil có giao diện web tích hợp và dễ sử dụng, giúp đơn giản hóa việc theo dõi dự án và thúc đẩy nhận thức tình huống. Chỉ cần nhập "hóa thạch ui" từ trong bất kỳ thanh toán nào và Fossil tự động mở trình duyệt web của bạn trong một trang cung cấp lịch sử đồ họa chi tiết và thông tin trạng thái về dự án đó.

Autosync - Fossil hỗ trợ chế độ "autosync" giúp duy trì các dự án tiến về phía trước bằng cách giảm số lượng không cần thiết và hợp nhất thường được liên kết với các dự án phân tán.

Tự chứa - Fossil là một tệp thực thi độc lập duy nhất chứa mọi thứ cần thiết để thực hiện quản lý cấu hình. Cài đặt rất đơn giản: chỉ cần tải xuống tệp nhị phân được biên dịch sẵn cho Linux, Mac hoặc Windows và đặt nó vào $ PATH của bạn. Mã nguồn dễ biên dịch có sẵn cho người dùng trên các nền tảng khác. Các nguồn hóa thạch cũng chủ yếu là khép kín, chỉ cần thư viện "zlib" và thư viện C tiêu chuẩn để xây dựng.

Mạng đơn giản - Fossil sử dụng HTTP cũ đơn giản (có hỗ trợ proxy) cho tất cả các giao tiếp mạng, có nghĩa là nó hoạt động tốt từ phía sau tường lửa hạn chế. Giao thức có hiệu quả băng thông đến mức Fossil có thể được sử dụng thoải mái qua kết nối internet quay số.

Đã bật CGI - Không yêu cầu máy chủ sử dụng hóa thạch. Nhưng một máy chủ không làm cho sự hợp tác dễ dàng hơn. Fossil hỗ trợ ba cấu hình máy chủ đơn giản khác nhau. Phổ biến nhất là một kịch bản CGI 2 dòng. Đây là cách tiếp cận được sử dụng bởi các kho hóa thạch tự lưu trữ.

Mạnh mẽ & đáng tin cậy - Hóa thạch lưu trữ nội dung bằng cách sử dụng định dạng tệp bền vững trong cơ sở dữ liệu SQLite để các giao dịch là nguyên tử ngay cả khi bị gián đoạn do mất điện hoặc sự cố hệ thống. Hơn nữa, tự kiểm tra tự động xác minh rằng tất cả các khía cạnh của kho lưu trữ là nhất quán trước mỗi cam kết. Trong hơn ba năm hoạt động, không có công việc nào bị mất sau khi đã cam kết với kho lưu trữ Fossil.

Cập nhật: Thay vì ám chỉ giao diện, đây là một cách nhanh chóng về nó Như bạn có thể thấy, nó rất đơn giản .. Nhưng điều đó cũng có nghĩa là một bảng xếp hạng rõ ràng để tùy chỉnh .. Chỉ cần một biểu định kiểu duy nhất và kiểu đầu trang / chân trang / kiểu cơ thể hệ thống khuôn mẫu. Tốt hơn là viết một câu chuyện ngắn hơn là viết lại cuốn sách của người khác, IMO.

hóa thạch ui


3
+1 cho hóa thạch. Tôi đã sử dụng nó rộng rãi ở đây tại nơi làm việc và "nhược điểm" duy nhất tôi thấy là khu vực mà rùa (git / hg / svn) phù hợp. Tuy nhiên, có dự án winfossil . Nó được lưu trữ trong hóa thạch, nếu bạn muốn xem giao diện web trên một dự án bên cạnh chính hóa thạch.
Spencer Rathbun

1
Hóa thạch là hoàn toàn tuyệt vời. Nó hiếm khi tôi sử dụng, nhưng đó là sự thật.
haylem

16

Gitorious là mã nguồn mở và bạn có thể cài đặt nó trên máy chủ của riêng mình bằng các tập lệnh được cung cấp bởi phiên bản cộng đồng Gitorious (xem http://www.getgitorious.com/installer ). Gitorious hiện có hỗ trợ cho wiki và theo dõi vấn đề. Ngoài ra còn có một hình ảnh Docker có sẵn để nhanh chóng chạy nó.

Một lựa chọn khác sẽ là Gitlab , về cơ bản là một bản sao GitHub, không trưởng thành như gitor nhưng nó đang được phát triển mạnh mẽ với các bản phát hành hàng tháng.

Bạn cũng có thể muốn kiểm tra thêm tùy chọn ở đây


quá trình cài đặt của Gitorious đã được đơn giản hóa. Bạn có thể sử dụng tập lệnh cài đặt ( getgitorious.com/installer ) hoặc sẵn sàng để chạy hình ảnh hộp ảo ( getgitorious.co/install-gitorious )
Peter Butkovic

Mã được tìm thấy tại gitorious.org/gitorious/mainline
Demz

8

Các ràng buộc của bạn khá cụ thể, nhưng tôi nghĩ bạn có thể nhận được kết quả mà bạn tìm kiếm với các plugin ChiliProject +.

ChiliProject là một nhánh của Redmine sử dụng các phiên bản cập nhật của Ruby / Rails. Nó hỗ trợ git và mercurial rất tốt và sao chép chức năng Các vấn đề của Github mà nó trông giống như bạn đang tìm kiếm bằng cách phân tích các thông điệp cam kết (nghĩa là, refs 291trong một cam kết sẽ liên kết một cam kết với vấn đề # 291).

Ngoài ra còn có các plugin Redmine / ChiliProject cung cấp các phương tiện như xem lại mã, tô sáng cú pháp và các tính năng khác mà Github, v.v. cung cấp có thể không rõ ràng hoặc có sẵn trong các đối thủ cạnh tranh nguồn mở.

Có nhiều lựa chọn khác, JIRA, v.v., nhưng chúng (IMHO) không cung cấp tính linh hoạt hoặc sự giàu có của chức năng mà ngã ba ChiliProject của Redmine + vô số các plugin có sẵn cung cấp. Không có nhiều điều mà Github và / hoặc BitBucket làm cho bạn mà ChiliProject (có thể với các plugin có sẵn miễn phí) không thể làm được; và vẻ đẹp là, nếu nó không tồn tại, việc tự mình thực hiện nó khá tầm thường.

Nếu điều này nghe có vẻ nhiều hơn bạn cần ... Tôi chưa thử, nhưng GitLab cũng có vẻ thú vị ... có vẻ như nó không có khả năng mở rộng hoặc kiến ​​trúc plugin của Redmine / Chili, nhưng nếu bạn đang tìm kiếm đối với bản sao Github mã nguồn mở với hầu hết các tính năng cốt lõi (và bạn không cần hỗ trợ nhiều DVCS), nó có vẻ khá tốt.


Ngoài ra, nếu bạn cần các công cụ quản lý kiểm soát nguồn dựa trên web ... Tôi đã sử dụng thành công Gitosis với Redmine / ChiliProject ... không chắc chắn tương đương với Mercurial, nhưng nó khá đơn giản để thêm vào.
Jason Lewis

Cập nhật: Redmine cũng sử dụng các phiên bản Rails cập nhật (nếu bạn muốn nói là Rails 3) kể từ Redmine 2.
thay thế vào

7

Allura http://sf.net/p/allura phải phù hợp với hóa đơn. Nó là nền tảng cho tất cả các dự án mới (hoặc được nâng cấp) tại SourceForge và là nguồn mở. Nó hỗ trợ Mercurial và wiki, cộng với nhiều công cụ khác (Git, SVN, theo dõi vé, diễn đàn, v.v.). Nó không hoàn toàn có "đánh giá mã" nhưng không hỗ trợ các yêu cầu chuyển đổi và hợp nhất cho các repos Mercurial và Git.

Nó được viết bằng Python và sử dụng MongoDB và Solr để lưu trữ dữ liệu.

Allura hiện cũng đang ở trong Vườn ươm Apache: http://incubator.apache.org/projects/allura.html

Tôi làm việc cho SourceForge và giúp phát triển Allura.


6

Đối với cùng một vấn đề tại nơi làm việc, chúng tôi sử dụng một hệ sinh thái bao gồm:

  • Redmine để theo dõi vấn đề
  • RhodeCode để quản lý kho lưu trữ
  • Jenkins để tích hợp và triển khai liên tục (chúng tôi có các công việc để triển khai và nâng cấp các nhiệm vụ có thể được gán quyền theo kiểu chi tiết và bạn có được bản kiểm toán miễn phí)
  • Active Directory để xác thực (tất cả các mục trên có thể tích hợp hoàn toàn với nó)

Việc tích hợp DVCS trong Redmine đã được cải thiện nhờ những bước nhảy vọt trong các phiên bản sau, tôi đã nâng cấp vài tuần trước và tôi vô cùng hài lòng vì hầu hết các "gotchas" đã biến mất.

Tôi chạy các máy chủ Redmine và RhodeCode trên cùng một máy chủ vì Redmine chưa hỗ trợ repos HG từ xa. Jenkins chạy trên một số máy chủ khác.

Tôi sử dụng móc RhodeCode để kích hoạt lực kéo thủy ngân trong Redmine. Tôi không thể sử dụng móc cho Jenkins kéo vì JENKINS-13717 , nhưng tôi đã gửi một bản vá cho việc này rồi và tôi đoán nó sẽ được chấp nhận khá nhanh. Trong khi đó, tôi chỉ thăm dò ý kiến ​​của HG vài phút một lần.

Mọi thứ chạy trên Debian 6.0 qua ủy quyền ngược Nginx để chấm dứt SSL (tất cả điều này chỉ được sử dụng qua SSL). Gần đây, toàn bộ gói đã được chuyển lên một cụm ProxMox để ảo hóa tất cả với kết quả tuyệt vời cho đến nay. Trong trường hợp bạn không biết sản phẩm, bạn nên xem qua nó. Đó là một trong những điều " Tôi không thể tin điều này tồn tại và tôi cũng không biết về nó và OMG cũng là loại sản phẩm nguồn mở! " Chúng tôi chạy các dịch vụ này trên các thùng chứa OpenVZ có thể dễ dàng di chuyển từ máy chủ này sang máy chủ khác để sửa chữa / nâng cấp phần cứng. Trên cùng một cụm, chúng tôi cũng chạy một loạt các máy ảo KVM để thử nghiệm tự động trên nền tảng Windows.

Tôi vô cùng hạnh phúc với hệ sinh thái này. Nó đã cải thiện khả năng của nhóm dev / QA của chúng tôi để tái tạo các vấn đề và theo dõi các thay đổi bằng một biên độ lớn. Chỉ cần một vài cảnh báo:

  • Nếu bạn đi với Rhodecode, đừng thiết lập nó trên SQLite. Sử dụng MySQL hoặc DBMS thực khác. Thực tế nó không thể di chuyển được và SQLite chỉ mất 1 kết nối tại một thời điểm, dẫn đến các khóa và thời gian chờ vui nhộn (xem # 439 của RhodeCode ). Điều này trở nên đau đớn nếu Jenkins đang bỏ phiếu liên tục khi bạn nhận được thông báo lỗi một lần (xem bình luận ở trên về vấn đề Jenkins).
  • Bạn thực sự không thể nhấn mạnh đến các nhà phát triển của mình rằng trong Mercurial, số cam kết "132" không có nghĩa gì với mọi người khác trên mạng vì những số đó chỉ là cục bộ . Khi nói về các thay đổi bên trong vé Redmine, hãy sử dụng số sửa đổi cục bộ mà bạn có thể nhận được từ trình duyệt repo (giống với cả RhodeCode và Redmine, vì chúng chạy trên cùng một máy) hoặc sử dụng commit:abcd1234.

Tôi không ngần ngại giới thiệu thiết lập này vì tôi cực kỳ hài lòng với nó. Nếu bạn cần trợ giúp để định cấu hình một dịch vụ cụ thể hoặc bạn muốn xem các tệp cấu hình của tôi, vui lòng hỏi.


2

Hãy xem cydra: https://github.com/mensi/cydra nó có hỗ trợ cho

  • Lật đổ (HTTP)
  • Git (HTTP và SSH trên cổng riêng)
  • Mercurial (HTTP)
  • Trắc

Nó hoạt động theo cách tiếp cận dựa trên dự án cho phép bạn tạo một dự án và gán nhiều kho lưu trữ cho nó (nhiều nhất là một kho lưu trữ SVN). Auth dựa trên các plugin riêng lẻ (chúng tôi đã tích hợp nó vào ldap của chúng tôi).

Chúng tôi sử dụng nó cho nền tảng mã hóa https://code.vis.ethz.ch của chúng tôi . Hiện tại không có bất kỳ sự hỗ trợ nào cho việc xem xét mã nhưng nó có thể dễ dàng được thêm dưới dạng một plugin.

Tôi không thể đăng ảnh chụp màn hình vì tôi không có đủ danh tiếng.


1
Dự án Cydra có vẻ như mới chỉ bắt đầu vài tháng trước và dường như không được phát triển rất tích cực. Có thể là một chút chưa trưởng thành để đề cập.
R0MANARMY

Vâng, bạn đúng. Nhưng sau đó nếu bạn muốn thiết lập một cái gì đó giống như một nền tảng lưu trữ mã, bạn có thể muốn tự mình tùy chỉnh rất nhiều thứ. Vì vậy, tôi nghĩ rằng nó đáng được đề cập.
Pascal

2

Cân nhắc sử dụng GitLab https://about.gitlab.com/ vì nó đáp ứng hầu hết các yêu cầu của bạn:

  1. Bạn có thể cài đặt tại chỗ
  2. Đó là người nước ngoài MIT được cấp phép
  3. Nó có wiki (được hỗ trợ bởi git), duyệt kho lưu trữ, quản lý truy cập chi tiết (nhiều cấp truy cập, các nhánh được bảo vệ, tích hợp ldap, v.v.) và có các yêu cầu hợp nhất để xem xét và thảo luận mã (bao gồm cả nhận xét dòng)
  4. Nó không hỗ trợ đồng bóng mà chỉ git

Nó cũng có một trình theo dõi vấn đề tốt hoặc bạn có thể liên kết với một trình theo dõi vấn đề bên ngoài. Bạn có thể kiểm tra các yêu cầu hợp nhất của mình với GitLab CI nếu bạn muốn. GitLab đã phát triển nhanh và được sử dụng bởi hơn 25.000 tổ chức.

Tiết lộ: Tôi là CEO & đồng sáng lập của GitLab BV

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.