複数のリポジトリのホスティング(svn、hg、git)


8

私は最近専用サーバーを取得しました。ソース管理ホスティングサービスからいくつかのリポジトリをそのサーバーに移動する必要があります。サーバー管理の経験はあまりありませんが、サーバーを効果的に構成する方法はわかりません。私が求めるもの-

  1. svn.host.com、hg.host.com、git.host.comサブドメインは、SSHキーを介して、異なるリポジトリのルートになります
  2. 新しいリポジトリの簡単な作成
  3. サーバーのUNIXユーザーリストを使用した認証。ただし、プロジェクトごとの権限があり、一部のリポジトリに対するオプションの読み取り専用パブリックアクセスも可能です。

残念ながら、私がGoogleで試す検索用語は、商用ホスティングソリューションに誘導するものであり、独自のソリューションをロールアップする方法のガイドではありません。シンプルなホストソリューションのようなものが必要ですが、ユーザーが自分のリポジトリを作成できるようにする必要はありません。

研究を開始する場所についての提案、チュートリアル、スクリプトによる解決策はありますか?それを処理するための管理インターフェイスのオープンソースソリューション(または、少なくともいくつかは完璧でしょう...)

回答:


6

私はGitのみを使用しているので、少なくともそれを支援するように努めます。

コマンドラインからリポジトリを管理する際に問題が発生しない場合は、gitosisがうまく機能します。

本当にWebインターフェイスが必要な場合は、repo.or.cz(http://repo.or.cz/w/girocco.git)またはgitorious(http://gitorious.org/gitorious)を参照してください。。Repo.or.czは醜いですが、インストールは簡単です(gitoriousはオープンソースですが、gitorious.orgを動かすソフトウェアでもあります-彼らは素晴らしい指示を書くインセンティブがあまりありません)。

オプションのより包括的なリストは次のとおりです。https//git.wiki.kernel.org/index.php/GitHosting

これらのオプションのいずれかを使用すると、新しいリポジトリを簡単に作成できます。

さて、注意が必要です。リポジトリのアクセス許可には、決してUNIXサーバーのユーザーリストを使用しないでください。いじくるのは簡単で、結果は簡単に壊滅的です(gitosisは単純なファイル構成とSSHキーを使用しています。これでうまくいくはずです)。

もう1つ、subversion、HG、Gitリポジトリが必要な理由がわかりません。ほとんどのプロジェクトは、これらのオプションの1つのみを使用します。なぜ詳しく説明するのですか?


私はいくつかのプロジェクトをいくつかのリポジトリで開催しています。多くのコミッターは特に技術に精通しているわけではないため、hgとgitが問題になるので、よりオープンなプロジェクトのためにsvnを使い続けます。個人的には、選択したSCMとしてHGを使用しています。私はまた、私の友人のためにいくつかのプロジェクトをゲストでホストしており、そのうちのいくつかは選択したSCMとしてgitを使用しています。思われるように皆を喜ばせる方法はありません:)
Kornel Kisielewicz

1
また、リポジトリのアクセス許可にUNIXユーザーリストを使用することの危険性について詳しく説明してもらえますか?
Kornel Kisielewicz

3
リポジトリにUNIXユーザーリストを使用することが悪いことである理由:粒度の低下、移植性の低下。リポジトリを別のサーバーに変更する必要がある場合は、UNIXユーザーリスト全体を移動する必要があります。管理者権限を委任する場合は、ルート権限を付与する必要があります。gitosisでサーバーを変更したい場合は、リポジトリを複製するだけです。管理者権限を委任する場合は、ユーザーをgitosis-adminグループに追加するだけです。
Tiago Fassoni、

just_testing、同意、有効なポイント:)
Kornel Kisielewicz

2

SVNは、Unix認証とSubversion独自のユーザーレベルACLを使用して、vhostのApache WebDAVで実行できます。mercurialやgitについては何も知りませんが、DAVにも夢中になればいいと思います。


1

SSHを使用する場合、基本的authorized_keysにはサーバー上のファイルを編集してキーを制限する必要があります。Mercurialの場合、これを行う主な方法は次のとおりです。

  • contrib/hg-sshスクリプトを使用して、SSHでログインしたときに実行できるコマンドを制限できます。ファイルには、使用方法を説明するヘッダーが含まれていますが、基本的には

    $ command="hg-ssh path/to/repo"
    

    authorized_keysファイルのキーの前。これにより、指定されたリポジトリーへのプッシュおよびプルにのみ使用できるようにキーが制限されます。

  • gitoisなどが必要な場合は、サードパーティのmercurial-serverツールを使用することもできます。これにより、特別な管理リポジトリのファイルを編集して、ユーザーとそのアクセス権を管理できます。

SSH用の他の類似ツールについては、Mercurial wikiを参照してください。

以下のためにHTTPがあります

  • hgwebMercurialに付属する組み込み(高速)CGIまたはWSGIスクリプト。これはプッシュとプルを処理しますが、新しいリポジトリの作成を許可しません—そのためにサーバーにログインします。

  • サードパーティのRhodeCodeプロジェクト。これにより、ユーザーとそのアクセス権を設定できる、MercurialのBitbucketのようなWebフロントエンドが提供されます。LDAP認証をサポートしているため、既存のUnixユーザーデータベースにフックできます。

詳細については、リポジトリの公開に関するページをご覧ください。


1

SCM-Managerはあなたのニーズに最適かもしれません:

Git、Mercurial、Subversionリポジトリをhttp経由で共有および管理する最も簡単な方法。

  • 非常に簡単なインストール
  • 構成ファイルをハックする必要はありません。SCM-Managerは、Webインターフェースから完全に構成可能です。
  • Apacheやデータベースのインストールは必要ありません
  • 中央ユーザー、グループ、および権限管理
  • Git、Mercurial、Subversionをそのままサポート
  • 完全なRESTFul WebサービスAPI(JSONおよびXML)
  • 豊富なユーザーインターフェース
  • シンプルなプラグインAPI
  • 利用可能な便利なプラグイン(fe Ldap-、ActiveDirectory-、PAM-Authentication)

0

RhodeCodeは、プッシュ/プルサーバー、LDAP / AD、権限システム、全文検索が組み込まれたオープンソースのリポジトリブラウザー/管理ツールです。

あなたはここでそれをライブで見ることができます:http : //demo.rhodecode.org/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.