web-dev-qa-db-ja.com

複数のリポジトリ(svn、hg、git)をホストする

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

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

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

調査を開始する場所に関する提案、チュートリアル、またはスクリプトによる解決策はありますか?それを処理するための管理インターフェース用のオープンソースソリューション(または少なくとも一部の人にとっては完璧です...

8

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

コマンドラインからリポジトリを管理するのに問題がない場合は、gitosisでうまくいくはずです。

Webインターフェースが本当に必要な場合は、repo.or.cz( http://repo.or.cz/w/girocco.git )またはgitorious( http://gitorious.org/gitorious )。 Repo.or.czは醜いですが、インストールははるかに簡単です(gitoriousはオープンソースですが、gitorious.orgを強化するソフトウェアでもあります-Nice命令を書くインセンティブはあまりありません)

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

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

ここで、注意点が1つあります。リポジトリのアクセス許可にUNIXサーバーのユーザーリストを使用しないでください。混乱するのは簡単で、結果は簡単に壊滅的です(gitosisは単純なファイル構成とsshキーを使用します。あなたのためにトリックを行う必要があります)。

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

6
Tiago Fassoni

SVNは、UNIX認証とSubversion独自のユーザーレベルACLを使用して、vhost内のApacheWebDAVで実行できます。 Mercurialやgitについては何も知りませんが、DAVにも接続できるといいのですが。

2
draeath

SCM-Manager あなたのニーズにぴったりかもしれません:

Httpを介してGit、Mercurial、Subversionリポジトリを共有および管理する最も簡単な方法。

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

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

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

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

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

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

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

[〜#〜] http [〜#〜]の場合、

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

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

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

1
Martin Geisler

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

ここでライブで見ることができます: http://demo.rhodecode.org/

0
alexandrul