2009-07-02 9 views
21

私は、ライブラリとしてリンクするのではなく、別のプロジェクトのソースを直接含む非常に古いプロジェクトを持っています。 CVSにすべてを残していた悪い時代に、私はベンダーブランチに外部コードを持ち、定期的に輸入しました。私のプロジェクトがgitになったので、外部プロジェクトをサブモジュールとして組み込む方が合理的です。しかし、問題があります:外部プロジェクトがMercurialに移行しました。私はgit-hgとhg-gitプロジェクトを見つけましたが、いずれかが適切にサブモジュールを処理するかどうかはわかりません。gg submodule from Hg repo?

git repoの代わりにHg repoを指すgitサブモジュールを作成する方法はありますか?

答えて

12

hg-gitは、手動のオプションを残している、サブモジュールはまだサポートされていないことを言及しているので:あなたはへのプッシュのアクセス権を持っていることを

  • セットアップどこかのGitリポジトリ、
  • Gitのリモートとして追加プロジェクト内から
  • run hg gpushを入力します。たとえば、

:Gitのリポジトリは、あなたのサブモジュールを表しますが、あなたがそのサブモジュールを変更し、プッシュするならば、あなたはまだ、実際の水銀レポにそのGitのレポからプルする必要があります

$ cd hg-git # (an Hg repository) 
$ hg gremote add origin [email protected]/schacon/hg-git.git 
$ hg gpush 

他の素晴らしいgit-hgコマンドがこの "rosetta stone"にリストされています。

+1

例には、タイプミスがあります。上記の説明で述べたように、 "$ hg push"は "$ hg gpush"にする必要があります。それを除いて、@ VonCの答えは私にとって非常に役に立ちました。ありがとう! :-) –

+1

この例では、その名前付けと混同しています。メインのリポジトリディレクトリとサブモジュール/サブrepoディレクトリとはなんですか? – einpoklum

+0

@einpoklum私がこの7歳の質問から読むことができるものから、サブモジュールは水銀に移行した外部レポです。目標は、あなたの地元の水銀のクローンからリモートのGitリポジトリにプッシュすることです。このGitリポジトリは、Git親リポジトリによってサブモジュールとして参照できます。 – VonC