2

を使用して Subversion から変換された Mercurial リポジトリがありますhgsubversion。これは、cronジョブごとに発生する継続的なプロセスです。

Subversion リポジトリはまだ信頼できるため、すべての Mercurial クローンは読み取り専用と見なされます (これはフックによっても強制されます)。

この変換されたリポジトリから問題なくクローン/プルできます。ただし、帯域幅に一定の制約があるため、最初の変換 (最初はバンドルを介して作成されたもの) のクローンもリモート サイトに配置しました。

さらに、変換されたリポジトリのローカル クローンがあり、そこから元のリモート クローンにプッシュしようとしています。

だいたい:

["Original"] --------> [My local clone] --------> [Remote clone from bundle]
  ^
  |
  |
[SVN]

にプッシュしようとするとRemote clone from bundle、次のようになります (プライバシー上の理由から編集されています)。

$ hg push --new-branch shortname
pushing to ssh://user@server//hg/repo
searching for changes
searching for changes
abort: push creates multiple headed new branch 'branch_name'
(merge or see "hg help push" for details about pushing new heads)

リモート エンドに存在する変更を従来のバンドルにパッケージ化し、それらを使用hg bundlescpてリモート サイトに適用し、そこに適用すると、これも問題なく機能します。

質問

  • なぜこれが失敗するのですか?
  • プッシュを成功させるには、どうすれば問題を解決できますか?

私が得ると--force、ところで:

$ hg push --force --new-branch shortname
pushing to ssh://user@server//hg/repo
searching for changes
searching for changes
abort: Invalid argument
Exception IOError: (22, 'Invalid argument') in <bound method lfileswirerepository.cleanup of <hgext.largefiles.proto.lfileswirerepository object at 0x00000000025BE5C0>> ignored
4

0 に答える 0