4

Mercurialサブリポジトリに関するすべての質問を読みましたが、それがどのように機能するかはまだわかりません。IISでhgweb.cgiを使用しているため、すべてのリポジトリへのhttp://パスがあります。

基本的なレイアウトは次のとおりです。

/Libraries - http://server/Libraries
/Project1 - http://server/Project1
/Project1/LibrariesSubrepo - http://server/Project1/LibrariesSubrepo (clone of libraries)
/Project2 - http://server/Project1
/Project2/LibrariesSubrepo - http://server/Project2/LibrariesSubrepo (clone of libraries)

.hgsubファイルでは、パスを次のように設定しています。

LibrariesSubrepo = LibrariesSubrepo

プロジェクトで作業したい場合は、サーバーからワークステーションにクローンを作成して、Project1とProject2のクローンを作成すると、サブリポジトリも自動的にプルされます。

ローカルワークステーションのproject1で、/ Project1/LibrariesSubrepo内のファイルにいくつかの変更を加えます。これらの変更がサーバー上のライブラリのソースリポジトリに戻るようにするにはどうすればよいですか?サブリポジトリからサブリポジトリのソースリポジトリに変更を手動でプッシュする必要がありますか?

Project1リポジトリでローカルに変更を加え、それらの変更をコミット/プッシュできるようにしたいのですが、Project2では、サーバーから変更をプルして、Project2/LibrariesSubrepoを最新バージョンに更新できるようにする必要があります。

4

1 に答える 1

3

間違いなく、手動でサーバー上のリポジトリにプッシュしてから、Project2クローンで手動でプルLibrariesSubrepoすることができます。Project1LibrariesLibrariesLibrariesSubrepo

ただし、サーバー上のサブリポジトリをリンクすることもできます。

  1. 共有拡張機能を使用すると、.hgフォルダーを共有する2つ以上のリポジトリーを作成できます。サーバー上でこれを実行して、サーバー上のサブリポジトリの3つのインスタンスが.hgフォルダーを共有するようにします。

  2. フォルダをシンボリックリンクします-より古いschol.hgであり、シンボリックリンクを作成できるサーバー(UnixサーバーまたはWindows Vista以降の適切な特権)を使用している場合にのみ機能します。

  3. サーバー上にサブリポジトリを1つだけ保持しますが、構成で3回公開しhgwebます。このような:

    [paths]
    Project1                  = /repos/Project1
    Project1/LibrariesSubrepo = /repos/Libraries
    Project2                  = /repos/Project2
    Project2/LibrariesSubrepo = /repos/Libraries
    

すべての場合において、サーバー上には実際には3つのリポジトリー、、、Project1およびProject2がありLibrariesます。

于 2011-09-06T10:16:29.167 に答える