Bitbucket, Github, Kiln 및 유사한 DVCS 탐색 및 관리 도구에 대한 오픈 소스 대안이 있습니까? [닫은]


68

Bitbucket , Github , Kiln , SCM-ManagerRhodecode 와 같은 DVCS 탐색 및 관리를 제공하는 여러 도구 / 서비스에 대해 알고 있습니다.

그러나 내가 고려하는 유스 케이스는 다음과 같습니다.

  1. 모든 소스 코드는 고용주 내부 서버에 상주해야합니다.
  2. 솔루션은 오픈 소스 여야합니다.
  3. 프로젝트 위키, 리포지토리 탐색 및 관리, 코드 검토와 같은 소셜 코딩 측면을 포함한 Bitbucket 또는 Github와 같은 경험을 제공해야합니다.
  4. 솔루션은 수은 지원을 가져야합니다 (다른 DVCS를 지원하지 않는 경우).

이 중 SCM-Manager와 RhodeCode만이 자체 서버에 설치 될 수 있고 오픈 소스이므로 친밀합니다. 그러나 Bitbucket 또는 Github 경험이 없습니다. 이슈 트래커 또는 위키는 없으며 UI는 기능적이지만 Github 또는 Bitbucket과 동등하지 않습니다.

저장소 브라우저를 사용하여 Trac 또는 Redmine과 친해질 수는 있지만 불행히도 저장소 관리 기능이 없습니다.

Bitbucket, Github 또는 Kiln과 비슷한 경험을 제공하는 다른 오픈 소스 도구가 있습니까?


4
GitHub Enterprise는 내부 네트워크에서 실행됩니다. enterprise.github.com


4
@sylvanaar 내 지식으로 redmine은 저장소 관리 기능을 제공하지 않으며 저장소 탐색 만 제공합니다.
Ryan Taylor

3
gitlabhq.com은 내가 GitHub의에 본 것 중 가장 가까운
앤드류 T Finnell

8
다시 열기 위해 투표합니다. 이것은 매우 인기있는 질문입니다. 왜 닫아? 최소한 다른 곳으로 마이그레이션 할 수 있습니까?
William Leara 2016 년

답변:


31

나는 것 화석를보십시오. sqlite 개발자가 내부적으로 사용하는 시스템입니다. 또한 우수한 견고한 기술인 sqlite 를 사용합니다. 그것은 훌륭하고 휴대 가능하며 간단하고 신뢰할 수 있습니다.

그것은 사용자 인터페이스 가 적절 하다면 좋을 것입니다 (당신이 묘사하는 것과 같은 생산성 지향 목표의 본질을 넘어서는 것 같습니다). (( "회색"테마를 확인하십시오. 기본 "테마"보다 덜 "라우터 관리자"라고 할 수 있습니다.)) CGI의 근본으로 인해 그려졌습니다. 기반 시스템, 내가 CGI를 빠는 원인이됩니다. 이 시스템 의 결과는 실제로 매우 흥미 롭습니다. 이 시스템 에는 모든 종류의 흥미로운 구현 가능성 이있는 매우 고유 한 JSON 전용 모드 가 있습니다.

그들은 그것을 언급하지만 의존성이 0이라는 것을 반복 할 가치가 있습니다. PHP, mySQL, Python도 없습니다. 나다. 자체 바이너리 실행 파일이며 많은 플랫폼에서 작동합니다. 더 많은 프로젝트가 같은 방식으로 "생각"되기를 바랍니다.

나는 그들과 제휴하지 않기 때문에 단순히 그들의 첫 페이지 칭찬을 인용 할 것 입니다. 일반적으로, 나는 동의합니다. 또한 질문과 비판을 봅니다 .

버그 추적 및 위키-Git 및 Mercurial과 같은 분산 버전 제어 외에도 Fossil은 분산 버그 추적, 분산 위키 및 분산 블로그 메커니즘을 모두 단일 통합 패키지로 지원합니다.

웹 인터페이스-Fossil에는 내장되어 있고 사용하기 쉬운 웹 인터페이스가있어 프로젝트 추적을 단순화하고 상황 인식을 촉진합니다. 모든 체크 아웃에서 "fossil ui"를 입력하면 Fossil에서 해당 프로젝트에 대한 자세한 그래픽 기록 및 상태 정보를 제공하는 페이지에서 웹 브라우저를 자동으로 엽니 다.

자동 동기화-Fossil은 "자동 동기화"모드를 지원하여 분산 프로젝트와 관련된 불필요한 포크 및 병합 양을 줄여 프로젝트를 계속 진행할 수 있습니다.

자체 포함-화석은 구성 관리에 필요한 모든 것을 포함하는 단일 독립 실행 형 실행 파일입니다. 설치는 간단합니다. Linux, Mac 또는 Windows 용 사전 컴파일 된 바이너리를 다운로드하여 $ PATH에 넣으십시오. 컴파일하기 쉬운 소스 코드는 다른 플랫폼의 사용자가 사용할 수 있습니다. 화석 소스는 대부분 자체 포함되어 있으므로 "zlib"라이브러리와 표준 C 라이브러리 만 있으면됩니다.

간단한 네트워킹-Fossil은 모든 네트워크 통신에 대해 기존의 HTTP (프록시 지원)를 사용하므로 제한적인 방화벽 뒤에서 제대로 작동합니다. 이 프로토콜은 전화 접속 인터넷 연결을 통해 Fossil을 편안하게 사용할 수있을 정도로 대역폭이 효율적입니다.

CGI 사용-화석을 사용하기 위해 서버가 필요하지 않습니다. 그러나 서버는 협업을 더 쉽게 만듭니다. 화석은 세 가지 다른 간단한 서버 구성을 지원합니다. 가장 인기있는 것은 2 줄 CGI 스크립트입니다. 이것은 자체 호스팅 화석 저장소에서 사용되는 방식입니다.

견고하고 신뢰할 수 있음-화석은 지속적인 파일 형식을 사용하여 콘텐츠를 SQLite 데이터베이스에 저장하므로 전원 손실이나 시스템 충돌로 인해 트랜잭션이 중단 될 수 있습니다. 또한 자동 자체 확인 기능은 저장소의 모든 측면이 각 커밋 전에 일관성이 있는지 확인합니다. 3 년이 넘는 운영 기간 동안 화석 저장소에 투입된 후에도 어떤 작업도 손실되지 않았습니다.

업데이트 : 인터페이스를 암시하는 대신 여기에 간단한 설명이 있습니다 ... 알다시피, 간단합니다. 그러나 그것은 또한 사용자 정의를위한 깔끔한 슬레이트를 의미합니다. 단일 스타일 시트와 머리글 / 바닥 글 / 본문 유형 템플릿 시스템. 다른 사람의 책인 IMO를 다시 쓰는 것보다 짧은 이야기를 쓰는 것이 좋습니다.

화석 UI


3
화석의 경우 +1 나는 직장에서 여기에서 광범위하게 사용했으며, 내가 본 유일한 단점은 거북이 (git / hg / svn)가 맞는 영역입니다. 그러나 winfossil 프로젝트가 있습니다. 화석 자체 이외의 프로젝트에서 웹 인터페이스를보고 싶다면 화석에서 호스팅됩니다.
스펜서 Rathbun

1
화석은 정말 대단합니다. 내가 사용하는 경우는 드물지만 사실입니다.
haylem

16

Gitorious 는 오픈 소스이며 Gitorious Community Edition ( http://www.getgitorious.com/installer 참조 )에서 제공하는 스크립트를 사용하여 자신의 서버에 설치할 수 있습니다 . Gitorious는 이제 위키와 이슈 트래킹을 지원합니다. 신속하게 실행할 수 있는 Docker 이미지도 있습니다.

또 다른 옵션은 것 Gitlab 기본적으로 gitorious로하지 성숙한 GitHub의 클론이지만 매달 출시 무거운 개발 중입니다.

더 많은 옵션을 확인하고 싶을 수도 있습니다 .


Gitorious의 설치 과정이 단순화되었습니다. 설치 스크립트 ( getgitorious.com/installer )를 사용하거나 virtualbox 이미지를 실행할 준비가되어 있습니다 ( getgitorious.co/install-gitorious )
Peter Butkovic


8

제약 조건은 매우 구체적이지만 ChiliProject + 플러그인으로 원하는 결과를 얻을 수 있다고 생각합니다 .

ChiliProject는 업데이트 된 Ruby / Rails 버전을 사용하는 Redmine 포크입니다. 그것은 git과 mercurial을 매우 잘 지원하며 커밋 메시지를 파싱하여 찾고있는 Github Issues 기능을 복제합니다 (즉, refs 291커밋에서 커밋을 이슈 # 291에 연결합니다).

코드 검토, 구문 강조 표시 및 Github 등 기타 기능을 제공하는 Redmine / ChiliProject 플러그인 도 있습니다. 오픈 소스 경쟁 업체에서는 분명히 또는 쉽게 사용할 수 없습니다.

JIRA 등의 다른 옵션이 있지만, (IMHO)는 Redmine의 ChiliProject 포크 + 사용 가능한 많은 플러그인이 제공하는 기능성 또는 풍부한 기능을 제공하지 않습니다. ChiitProject (자유롭게 사용 가능한 플러그인 포함)로는 할 수없는 Github 및 / 또는 BitBucket이 당신을 위해하는 일이 그리 많지 않습니다. 아름다움은, 그것이 존재하지 않는다면, 그것을 직접 구현하는 것은 보통 사소한 것입니다.

이 같은 소리가 나는 경우에 당신이 필요로하는 것보다 ... 난 아직 그것을 시도하지 않은,하지만 GitLab는 또한 레드 마인 / 칠리의 확장 또는 플러그인 아키텍처를 가지고하지 않는 것 ... 흥미 보이지만, 당신이 찾고 있다면 핵심 기능 세트가 대부분인 Github의 오픈 소스 복제본 (여러 DVCS를 지원할 필요가 없음)의 경우 꽤 좋아 보입니다.


또한 웹 기반 소스 제어 관리 도구가 필요한 경우 Redmine / ChiliProject와 함께 Gitosis를 성공적으로 사용했습니다 ... Mercurial과 동등한 것은 확실하지 않지만 추가하는 것은 매우 사소한 것입니다.
Jason Lewis

업데이트 : Redmine은 Redmine 2부터 최신 Rails 버전 (Rails 3을 의미하는 경우)을 사용합니다.
대안

7

Allura http://sf.net/p/allura 가 청구서에 맞아야합니다. SourceForge의 모든 새로운 (또는 업그레이드 된) 프로젝트를위한 플랫폼이며 오픈 소스입니다. Mercurial 및 Wiki와 더 많은 도구 (Git, SVN, 티켓 추적기, 포럼 등)를 지원합니다. "코드 검토"는 없지만 Mercurial 및 Git 리포지토리에 대한 분기 및 병합 요청을 지원합니다.

파이썬으로 작성되었으며 데이터 저장을 위해 MongoDB와 Solr을 사용합니다.

Allura는 현재 Apache Incubator에도 있습니다. http://incubator.apache.org/projects/allura.html

나는 SourceForge에서 일하고 Allura 개발을 돕습니다.


6

직장에서 똑같은 문제를 위해 다음으로 구성된 생태계를 사용합니다.

  • 문제 추적을위한 레드 마인
  • 저장소 관리를위한 RhodeCode
  • 지속적인 통합 및 배포를위한 Jenkins (자세한 방식으로 권한을 할당 할 수있는 배포 및 업그레이드 작업을위한 작업이 있으며 무료로 감사 내역을받습니다)
  • 인증을위한 Active Directory (위의 모든 항목이 완벽하게 통합 될 수 있음)

Redmine의 DVCS 통합은 이후 릴리스의 도약과 한계에 의해 향상되었으며 몇 주 전에 업그레이드했으며 대부분의 "gotchas"가 사라진 것을 매우 기쁘게 생각합니다.

Redmine은 아직 원격 HG 저장소를 지원하지 않기 때문에 동일한 호스트에서 Redmine 및 RhodeCode 서버를 실행합니다. Jenkins는 다른 여러 호스트에서 실행됩니다.

Redmine에서 RhodeCode 후크를 사용하여 수은 풀을 트리거합니다. JENKINS-13717 때문에 Jenkins pulls에 후크를 사용할 수는 없지만 이미 패치를 제출했으며 꽤 빨리 받아 들일 것입니다. 그 동안 몇 분마다 HG 저장소를 폴링합니다.

모든 것은 SSL 종료를 얻기 위해 Nginx 역방향 프록시를 통해 Debian 6.0에서 실행됩니다 (이 모든 것은 SSL을 통해서만 사용됩니다). 최근에는 전체 패키지가 ProxMox 클러스터옮겨져 지금까지 훌륭한 결과를 보여주었습니다. 제품을 모르는 경우 살펴보십시오. " 저는 이것이 존재한다고 믿을 수 없으며 OMG도 오픈 소스입니다! "라는 제품 중 하나입니다. 하드웨어 수리 / 업그레이드를 위해 한 호스트에서 다른 호스트로 쉽게 마이그레이션되는 OpenVZ 컨테이너에서 이러한 서비스를 실행합니다. 동일한 클러스터에서 Windows 플랫폼에서의 자동화 된 테스트를 위해 많은 KVM 가상 머신을 실행합니다.

나는이 생태계에 매우 만족합니다. 개발자 / QA 팀의 문제를 재현하고 변경을 추적하는 능력이 크게 향상되었습니다. 몇 가지 경고 만 :

  • Rhodecode를 사용하는 경우 SQLite에서 설정하지 마십시오. MySQL 또는 다른 실제 DBMS를 사용하십시오. 사실 이후에는 실제로 마이그레이션 할 수 없으며 SQLite는 한 번에 하나의 연결 만 취하면 재미있는 잠금 및 시간 초과가 발생합니다 ( RhodeCode의 # 439 참조 ). Jenkins가 오류 메시지를 가끔씩 받으면서 계속해서 repo를 폴링하면 고통스러워집니다 (Jenkins 문제에 대한 위의 주석 참조).
  • Mercurial에서 커밋 번호 "132"는 해당 숫자가 로컬 이기 때문에 네트워크의 다른 모든 사람에게 아무것도 의미하지 않는다는 사실을 개발자에게 충분히 강조 할 수 없습니다 . Redmine 티켓 내부의 변경 세트에 대해 이야기 할 때 repo 브라우저에서 얻을 수있는 로컬 개정 번호를 사용하거나 RhodeCode 및 Redmine에서 동일한 컴퓨터에서 실행되므로 동일합니다 commit:abcd1234.

이 설정에 매우 만족하므로이 설정을 권장하는 데 주저하지 않습니다. 특정 서비스를 구성하는 데 도움이 필요하거나 구성 파일을 보려면 언제든지 문의하십시오.


2

cydra를 살펴보십시오 : https://github.com/mensi/cydra 지원

  • 서브 버전 (HTTP)
  • 힘내 (별도의 포트에 HTTP와 SSH)
  • 머큐리얼 (HTTP)
  • 트랙

프로젝트 기반 접근 방식으로 작동하여 프로젝트를 작성하고 여러 저장소 (최대 하나의 SVN 저장소)를 지정할 수 있습니다. 인증은 개별 플러그인을 기반으로합니다 (LDAP에 통합).

https://code.vis.ethz.ch 코딩 플랫폼에 사용합니다 . 현재 코드 검토는 지원되지 않지만 플러그인으로 쉽게 추가 할 수 있습니다.

평판이 충분하지 않아 스크린 샷을 게시 할 수 없습니다.


1
Cydra 프로젝트는 몇 개월 전에 거의 시작되지 않은 것으로 보이며 매우 적극적으로 개발되지 않은 것으로 보입니다. 언급하기에는 약간 미숙 할 수 있습니다.
R0MANARMY

네, 맞아요. 그러나 코드 호스팅 플랫폼과 같은 것을 설정하려면 많은 것을 직접 사용자 정의하고 싶을 수 있으므로 언급 할 가치가 있다고 생각했습니다.
파스칼

2

GitLab https://about.gitlab.com/ 은 대부분의 요구 사항을 충족하므로 다음과 같이 사용하십시오.

  1. 온 프레미스에 설치할 수 있습니다
  2. 라이센스가있는 MIT 국외 거주자
  3. 위키 (git가 지원), 리포지토리 브라우징, 상세 액세스 관리 (다중 액세스 레벨, 보호 브랜치, LDAP 통합 등)가 있으며 코드 검토 및 토론 (라인 주석 포함)에 대한 병합 요청이 있습니다.
  4. 수은을 지원하지 않지만 자식 만 지원합니다.

또한 좋은 이슈 트래커가 있거나 외부 이슈 트래커에 연결할 수 있습니다. 원하는 경우 GitLab CI로 병합 요청을 테스트 할 수 있습니다. GitLab은 빠르게 성장하고 있으며 25.000 개 이상의 조직에서 사용되고 있습니다.

공개 : 저는 GitLab BV의 CEO이자 공동 설립자입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.