0

私は独特の状況のように思われるものを持っています。Subversion サーバーからプルできる中央の Mercurial リポジトリが必要で、そのクローンも同じ Subversion サーバーから更新をプルできます。更新は、Mercurial 経由でコミットされた変更と共に Mercurial リポジトリにコミットされます。

現在、hgsubversionは最初はうまく機能しているように見えます。Subversion リポジトリのクローンを作成し、Mercurial を介して変更をコミットし、Subversion リポジトリから更新を正しくプルできるようにしました。ただし、hgsubversion リポジトリのクローンを作成すると、Subversion リポジトリが既にリポジトリにあるにも関わらず、クローンは Subversion リポジトリ全体を再度プルしようとします。

この問題を解決する方法はありますか? これを設定するより良い方法はありますか?

参考までに、私の現在のセットアップは、Mercurial リポジトリ内に格納された Subversion リポジトリです。Mercurial コミットは .svn フォルダーもコミットするため、リポジトリを複製する人は誰でもフォルダーで SVN クリーンアップを実行してから SVN 更新を実行して、Subversion サーバーから最新のファイルを取得できます。次に、hg Commit を実行し、続いてファイルを中央の Mercurial リポジトリにプッシュします。これは適度にうまく機能しますが、より良い解決策を見つけたいと思います。

注: 変更を Subversion サーバーにプッシュする必要はありません。変更をプルするだけです。

4

2 に答える 2

0

どうやらこれは「hg help subversion」で回答されています。

When interacting with Subversion, hgsubversion relies on information
about the previously converted changesets. This information will not be
updated if pushing or pulling converted changesets to or from any other
source. To regenerate the stored metadata, run "hg svn rebuildmeta
[URI]". This must also be done if any converted changesets are ever
removed from the repository.

「hg svn rebuildmeta [URI]」を使用すると、クローンが新しいリビジョンを適切にプルしないという問題を完全に解決できました。

于 2013-01-08T19:01:24.210 に答える
0

中央サーバー (Mercurial でも) はCENTRAL SERVERです。Subversion リポジトリのクローンを作成し、プル サイクルがある場合、クライアントがこの操作を繰り返すのはなぜですか? 無駄な時間だけど何も壊せないから

私の現在のセットアップは、Mercurial リポジトリ内に格納された Subversion リポジトリです。

ちょうど間違っています。「エレガントではない」、「効果がない」、「エラーが発生しやすい」ではありませんが、間違っています!!!

Subversion リポジトリの Mercurial クローン (hgsubversion を使用) は Mercurial クラシック リポジトリであり、外部 ([paths]ターゲットの 1 つとして) に Subversion といくつかのリンク固有のメタデータがあります。

于 2012-12-13T02:32:58.780 に答える