0

現在、私たちの既存のプロジェクトをsvnからmercurialに移行する作業を行っています。
次のユース ケースの解決策を見つける必要があります。
現在、ビルド サーバーが存在し、"svn export" 経由で http (LAN 上でローカル) を介して svn リポジトリを取得します。これは明らかに、ユーザー/パスワードを提供する必要はありません。
次に、プロジェクトがビルドされ、パッケージ化され、バイナリとして指定されたストレージにコピーされますが、バージョン管理されていないコピーは破棄されます。

Mercurial で同等のものとして見つけられるのは「hg アーカイブ」だけです。これには、最初にリポジトリを複製して資格情報を提供する必要があります。

資格情報を提供せずにリポジトリのバージョン管理されていないコピーを取得する方法はありますか?

ご協力いただきありがとうございます。

編集:言及するのを忘れましたが、サーバーは残念ながらWindowsマシンを実行しています。

4

3 に答える 3

0

Mercurial サーバー タイプのターミナルでは、hg serveこれにより Mercurial サーバーが起動し、提供元の URL が通知されます。

次に、現在のリポジトリにあるファイルの zip をフェッチして、the_url/archive/tip.zipそれに応じて続行できます。

ビルド サーバーにリポジトリへの読み取りアクセスを許可し、リポジトリのクローンを作成してからプルを実行することも真剣に検討できます。ポスト コミット フックを使用してメッセージをビルド サーバーに送信し、ビルドを開始することもできます。

ビルドを実行するプロセスの BUILD_SERVER というユーザー名を持っていると仮定すると、リポジトリ構成 ( .hg/hgrc) で、そのユーザーには書き込み権限がないことを簡単に設定できます。

[acl.deny]
# This list is checked first. If a match is found, acl.allow is not
# checked. All users are granted access if acl.deny is not present.
# Format for both lists: glob pattern = user, ..., @group, ...
** = BUILD_SERVER

その後、ビルド サーバーで および を使用hg pullhg up -Cて、特定のリビジョンを含むコードを取得できますhg up -r。ビルド マシンがコミットを行うリスクはありません。acl の詳細については、こちらを参照してください。

于 2014-05-05T19:17:03.357 に答える