2012-01-20 10 views
4

Mercurialリポジトリの下にサードパーティのサブレポジトリを設定しています。 1つのサブペーポは、Bitbucketでホストされている別のMercurialレポです。bitbucketサブリポジトリを使用したMercurialリポジトリ - プッシュを防止する方法

パブリックリポジトリで、寄稿者ではないので、私はそれに戻ってはいけません。しかし、親リポジトリをクローンするときに、リポジトリを自動的にクローンしたいと思っています。 1つは、サブリポジトリの集合的な履歴にアクセスして、時間の経過と共に変化する可能性があるかどうかを確認することです。

だから、私は次のように親レポの.hgsubファイルにエントリーをした:私はsubrepo状態を記録するためにコミット作ら

thesubrepo = https://bitbucket.org/user/repo 

$ hg clone https://bitbucket.org/user/repo thesubrepo 

を使用してレポをクローニングしました。私はそれから、私の親リポジトリをサーバ(Kiln)に戻して、サブペコをBitbucketサーバにプッシュしようとしていることを発見しました。しかしBitbucketサブリポジトリへのプッシュは何もしないようだ。私はちょうどこれを行うためにするために、私はこの

abc = [git]git://github.com/xyz/abc 

よう.hgsubにエントリを使用して(Gitのハブ上でホストされている)と同じ方法で、Gitのsubrepoを作ったとき、私はこの動作を観察しなかった

は最高のそれですサブリポジトリを設定せずにMercurialにファイルをファイルとして保存させるだけですか?または、(好ましくは)Mercurialに実際にこのサブポールの内容を元の場所にプッシュしないように指示するために使用できる設定がありますか?

私はむしろ手動でそれらのサブレポジトリをプッシュするように構成することができますので、誰かがこれにいくつかの光を当てることができれば、私はそれを感謝します。

私はcommitsubrepos = noへの参照を別のスタックオーバーフローの回答で見つけました。私が知る限り、コミットについては、サブリポジトリをプッシュしません。私はそれからon the mercurial websiteを探しましたが、サブレポジションの設定に関する参考文献があるかもしれませんが...いいえ

+0

質問を編集して少し短くしました。あなたが気にしないことを願っています。これは、人々が簡単に答えることができるようにします。そうしないと、複雑すぎると見えてしまうことがあります。 –

+0

@Martin Geisler:いいですね。 – unsynchronized

答えて

4

Mercurialにサブリポジトリをプッシュしないように依頼することはできません(現在はバージョン2.0現在)。

基本的な問題は、Mercurialがプッシュするときにリモートリポジトリに一貫性のある状態があることを保証する必要があるということです。あなたがKilnにプッシュバックしてそこに存在しないBitbucketのリビジョンを参照するチェンジセットをそこに持つことができるなら、それは不安定でしょう。 Mercurialは、あなたがローカルに持っているチェンジセットが公開されているのか、それを作成したのか分からないので、プッシュしようとしています。

私たちは現在concept called phasesに取り組んでいます。これで、Mercurialはチェンジセットがローカルで作成されたか、すでに公開されているかどうかを追跡し始めます。これはサブリポジトリにも使用できます。サブペーポの「パブリック」フェーズにチェンジセットしかない場合、プッシュする必要はありません!

関連する問題