を使用して 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 bundle
しscp
てリモート サイトに適用し、そこに適用すると、これも問題なく機能します。
質問
- なぜこれが失敗するのですか?
- プッシュを成功させるには、どうすれば問題を解決できますか?
私が得ると--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