web-dev-qa-db-ja.com

Bitbucket、Github、Kiln、および同様のDVCSブラウジングおよび管理ツールに代わるオープンソースの代替品はありますか?

BitbucketGithubKilnSCM-Manager)などのDVCSの参照と管理を提供するいくつかのツール/サービスを知っています および Rhodecode

ただし、私が検討しているユースケースは次のようなものです。

  1. すべてのソースコードは、雇用者の内部サーバーに存在する必要があります。
  2. ソリューションはオープンソースである必要があります。
  3. プロジェクトWiki、リポジトリの参照と管理、コードレビューなどのソーシャルコーディングの側面など、BitbucketまたはGithubのようなエクスペリエンスを提供する必要があります。
  4. ソリューションにはMercurialサポートが必要です(他のDVCSがサポートされていない場合)。

これらのうち、SCM-ManagerとRhodeCodeのみが独自のサーバーにインストールでき、オープンソースであるため、近づきます。ただし、BitbucketやGithubの経験はありません。 Issue TrackerやWikiはなく、UIは機能しますが、GithubやBitbucketと同等ではありません。

TracやRedmineのリポジトリブラウザーを使用することはできますが、残念ながらリポジトリ管理機能はありません。

Bitbucket、Github、Kilnと同様のエクスペリエンスを提供する他のオープンソースツールはありますか?

68
Ryan Taylor

Fossilを 見てみましょう。 sqliteの開発者が内部的に使用しているシステムのようです。また、sqliteはsqliteを使用します。これは、優れた確かなテクノロジーです。つまり、シンプルで信頼性が高いだけでなく、移植性も優れています。

それは良いif austereユーザーインターフェース(私はあなたが説明するような生産性志向の目標の性質にふさわしいと思います)を持っています。 (「「灰色」のテーマを確認してください。それを呼び出すことができる場合、デフォルトの「テーマ」よりも「ルーター管理者」の方がはるかに少ないです。)CGIとしてのルーツがあるため、私はそれに惹かれました。ベースのシステム、私はCGIの吸盤だ。 このシステムには非常にユニークなJSON-ONLYモード があり、あらゆる種類の興味深い実装の可能性があるため、その遺産の結果は実際には非常に興味深いものです。

彼らはそれについて言及していますが、依存関係がないことは繰り返す価値があります。 PHP、MySQL、Pythonはありません。なだ。これは独自のバイナリ実行可能ファイルであり、多くのプラットフォームで動作します。もっと多くのプロジェクトが同じように「考えられる」ことを望みます。

私は彼らと提携していませんので、彼らの最初のページextolationsを引用します。これは一般的に同意します。 質問と批評 ..

バグ追跡とWiki-GitやMercurialなどの分散バージョン管理に加えて、Fossilは分散バグ追跡、分散Wiki、および分散ブログメカニズムもすべて1つの統合パッケージでサポートしています。

Webインターフェース-Fossilには、プロジェクトの追跡を簡素化し、状況認識を促進する組み込みの使いやすいWebインターフェースがあります。チェックアウト内から「Fossil ui」と入力するだけで、Fossilが自動的にWebブラウザーを開き、そのプロジェクトの詳細なグラフィカルな履歴とステータス情報を提供するページが表示されます。

自動同期-Fossilは「自動同期」モードをサポートしており、分散プロジェクトに関連する不必要なフォークやマージの量を減らすことにより、プロジェクトを前進させ続けます。

自己完結型-Fossilは、構成管理に必要なすべてを含む単一のスタンドアロン実行可能ファイルです。インストールは簡単です。Linux、Mac、またはWindows用のプリコンパイルされたバイナリをダウンロードして、$ PATHに配置するだけです。他のプラットフォームのユーザーは、コンパイルしやすいソースコードを利用できます。 Fossilソースも大部分が自己完結型であり、「zlib」ライブラリと標準Cライブラリのみをビルドする必要があります。

シンプルなネットワーク-Fossilは、すべてのネットワーク通信にプレーンな古いHTTP(プロキシサポート付き)を使用しています。このプロトコルは帯域幅効率が高く、Fossilはダイヤルアップインターネット接続で快適に使用できます。

CGI有効-Fossilを使用するためにサーバーは必要ありません。しかし、サーバーはコラボレーションを容易にします。 Fossilは、3つの異なるシンプルなサーバー構成をサポートしています。最も一般的なのは、2行のCGIスクリプトです。これは、セルフホスティングFossilリポジトリで使用されるアプローチです。

堅牢で信頼性の高い-Fossilは、永続的なファイル形式を使用してコンテンツをSQLiteデータベースに保存するため、停電やシステムクラッシュによって中断された場合でもトランザクションはアトミックになります。さらに、自動セルフチェックにより、各コミットの前にリポジトリのすべての側面が一貫していることが確認されます。 3年以上の運用において、Fossilリポジトリへのコミット後、作業が失われたことはありません。

更新:インターフェースをほのめかす代わりに、ここに簡単なショットがあります…ご覧のとおり、それは間違いなくシンプルです。カスタマイズ用のスレート。単一のスタイルシートとヘッダー/フッター/ボディタイプのテンプレートシステム。他の誰かの本、IMOを書き直すよりも、短編小説を書く方が良いです。

Fossil ui

31
alex gray

Gitorious はオープンソースであり、Gitoriousコミュニティエディションで提供されるスクリプトを使用して独自のサーバーにインストールできます( http://www.getgitorious.com/installer を参照)。 Gitoriousはwikiと課題追跡をサポートしています。 Docker image もあり、すばやく実行できます。

別のオプションは Gitlab です。これは基本的にGitHubクローンであり、成熟したものではありませんが、毎月のリリースで開発が進んでいます。

他のオプションもチェックしたいかもしれません ここ

16
tbg

あなたの制約はかなり具体的ですが、私は ChiliProject +プラグインで求める結果を得ることができると思います。

ChiliProjectは、Ruby/Railsの更新バージョンを使用するRedmineのフォークです。 gitとMercurialを非常によくサポートし、コミットメッセージを解析することで求めているように見えるGithubの問題機能を複製します(つまり、refs 291コミットの場合、コミットを問題#291にリンクします。

Redmine/ChiliProject plugins には、コードのレビュー、構文の強調表示、およびGithubなどが提供するその他の優れた機能があり、オープンソースの競合他社では明らかにまたは容易に利用できない場合があります。

JIRAなどの他のオプションもありますが、それら(IMHO)は、RedmineのChiliProjectフォーク+利用可能な多数のプラグインが提供する柔軟性や豊富な機能を提供しません。 GithubやBitBucketがあなたのためにできることは、ChiliProject(おそらく自由に利用できるプラグイン)ができないことはほとんどありません。そして、その美しさは、もしそれがまだ存在していなければ、それを自分で実装することは通常かなり簡単です。

これが必要以上にmoreのように聞こえる場合...私はまだ試していませんが、 GitLab も興味深いようです。 .. Redmine/Chiliの拡張性やプラグインアーキテクチャはないようですが、コア機能セットのほとんどを備えたGithubのオープンソースクローンを探している場合(複数をサポートする必要はありません) DVCSs)、それはかなりよさそうです。

8
Jason Lewis

Allura http://sf.net/p/allura は法案に合うはずです。 SourceForgeのすべての新しい(またはアップグレードされた)プロジェクトのプラットフォームであり、オープンソースです。 Mercurialやwiki、さらに多くのツール(Git、SVN、チケットトラッカー、フォーラムなど)をサポートしています。 「コードレビュー」は完全にはありませんが、MercurialおよびGitリポジトリのフォークおよびマージリクエストをサポートします。

これはPython=で記述されており、データストレージにMongoDBとSolrを使用しています。

Alluraは現在、Apache Incubatorにも含まれています。 http://incubator.Apache.org/projects/allura.html

私はSourceForgeで働いており、Alluraの開発を支援しています。

7
Dave Brondsema

職場でのまったく同じ問題に対して、私たちは以下で構成されるエコシステムを使用します

  • 問題追跡のためのRedmine
  • リポジトリ管理用のRhodeCode
  • 継続的な統合と展開のためのJenkins(詳細な方法でアクセス許可を割り当てることができる展開およびアップグレードタスクのジョブがあり、無料で監査証跡を取得できます)
  • 認証用のActive Directory(上記のすべてをシームレスに統合できます)

RedmineのDVCS統合は、後のリリースで飛躍的に向上しました。数週間前にアップグレードしましたが、ほとんどの「問題」がなくなったことに非常に満足しています。

RedmineはまだリモートHGリポジトリをサポートしていないため、RedmineとRhodeCodeサーバーを同じホストで実行しています。 Jenkinsは他のいくつかのホストで実行されます。

RhodeCodeフックを使用して、RedmineでMercurialのプルをトリガーします。 JENKINS-13717 のため、Jenkinsのプルにフックを使用できませんが、すでにこのパッチを提出しており、かなり速く受け入れられると思います。その間、数分ごとにHGリポジトリをポーリングします。

すべてがNginxリバースプロキシを介してDebian 6.0で実行され、SSL終了を取得します(これはすべてSSLでのみ使用されます)。最近、パッケージ全体が ProxMoxクラスター に移動され、これまでにすべてを仮想化して素晴らしい結果が得られました。製品がわからない場合は、ぜひご覧ください。それは「これが存在するなんて信じられず、私もそれについて知らなかったし、OMGもオープンソースだ!」のような製品の1つです。これらのサービスは、ハードウェアの修理/アップグレードのためにホスト間で簡単に移行できるOpenVZコンテナーで実行されます。同じクラスターで、KVM仮想マシンの束も実行し、Windowsプラットフォームでの自動テストも行います。

私はこのエコシステムに非常に満足しています。これにより、開発/ QAチームの問題を再現し、変更を大幅に追跡できるようになりました。いくつかの警告:

  • Rhodecodeを使用する場合は、SQLiteでセットアップしないでください。 MySQLまたは別の実際のDBMSを使用します。実際には移行できません。SQLiteは一度に1つの接続しかとらないため、おかしなロックとタイムアウトが発生します( RhodeCodeの#439 を参照)。時々エラーメッセージが表示されるときにJenkinsがリポジトリを継続的にポーリングしている場合、これは痛みを伴います(Jenkinsの問題に関する上記のコメントを参照)。
  • Mercurialではコミット番号「132」はネットワーク上の他のすべての人には何も意味しない これらの番号はローカルのみです なので、開発者に十分にストレスをかけることはできません。 Redmineチケット内のチェンジセットについて話すときは、リポジトリブラウザから取得できるローカルリビジョン番号を使用するか(同じマシン上で実行されるため、RhodeCodeとRedmineの両方で同じです)、またはcommit:abcd1234を使用します。

私はそれに非常に満足しているので、このセットアップを推奨することを躊躇しません。特定のサービスの構成についてヘルプが必要な場合、または私の構成ファイルを確認したい場合は、お気軽に質問してください。

6
GomoX

ほとんどの要件を満たしているため、GitLab https://about.gitlab.com/ の使用を検討してください。

  1. オンプレミスでインストールできます
  2. MIT expat licensed
  3. Wiki(gitによるサポート)、リポジトリの参照、詳細なアクセス管理(複数のアクセスレベル、保護されたブランチ、LDAP統合など)があり、コードのレビューとディスカッション(行コメントを含む)のマージ要求があります。
  4. Mercurialはサポートされていませんが、gitのみがサポートされています

また、優れた課題追跡があり、外部の課題追跡にリンクすることもできます。必要に応じて、GitLab CIでマージリクエストをテストできます。 GitLabは急速に成長しており、25,000以上の組織で使用されています。

開示:私はGitLab B.V.のCEO兼共同創設者です。

2

Cydraを見てください: https://github.com/mensi/cydra それはサポートしています

  • Subversion(HTTP)
  • Git(HTTPとSSHを別々のポートで)
  • Mercurial(HTTP)
  • トラック

プロジェクトベースのアプローチで機能し、プロジェクトを作成して複数のリポジトリを割り当てることができます(多くても1つのSVNリポジトリ)。認証は個々のプラグインに基づいています(LDAPに統合しました)。

https://code.vis.ethz.ch コーディングプラットフォームに使用します。現時点ではコードレビューのサポートはありませんが、プラグインとして簡単に追加できます。

評判が悪いのでスクリーンショットを投稿できません。

2
Pascal