2009-07-02 20 views
21

Ich habe ein sehr altes Projekt, das die Quelle aus einem anderen Projekt direkt enthält, anstatt es als eine Bibliothek zu verknüpfen. In den schlechten Zeiten, als ich alles in CVS aufbewahrte, hatte ich den externen Code in einem Lieferantenzweig und führte regelmäßig Importe durch. Jetzt, wo mein Projekt in git ist, wäre es sinnvoller, das externe Projekt als Submodul einzubinden. Aber es gibt ein Problem: Das externe Projekt ist nach Mercurial migriert. Ich habe die Projekte git-hg und hg-git gefunden, aber ich bin mir nicht sicher, ob einer Submodule richtig behandelt.git submodul von Hg Repo?

Gibt es eine Möglichkeit, ein Git-Submodul zu erstellen, das auf einen HG-Repo statt auf einen Git-Repo zeigt?

Antwort

12

Da die hg-git nicht erwähnt, dass Submodule noch nicht unterstützt werden, dass nur eine manuelle Option lässt:

  • Setup ein Git-Repository irgendwo, dass Sie Push-Zugriff haben,
  • es als Git remote und dann
  • run hg gpush von innerhalb Ihres Projekts.

Zum Beispiel:

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

Der Git-Repo Ihrer Submodul darstellen, aber wenn Sie das Modul ändern und drücken Sie, Sie werden immer noch von dem Git-Repo zum eigentlichen Hg Repo ziehen müssen.

Andere großartige git-hg Befehle sind in dieser "rosetta stone" aufgeführt.

+1

In diesem Beispiel gibt es einen Tippfehler. "$ hg push" sollte "$ hg gpush" sein, wie in der obigen Beschreibung erwähnt. Außer, @ VonCs Antwort war sehr hilfreich für mich. Vielen Dank! :-) –

+1

Dieses Beispiel ist verwirrend mit seiner Benennung. Was ist das Hauptrepository-Verzeichnis und was ist das Submodul/Subrepo-Verzeichnis? – einpoklum

+0

@einpoklum von dem, was ich aus dieser 7 Jahre alten Frage lesen kann, ist das Submodul das externe Repo, das nach mercurial migriert ist. Das Ziel besteht darin, von Ihrem lokalen Merkur-Klon zum Remote-Git-Repo zu wechseln, der dann von jedem Git-Eltern-Repo als Submodul referenziert werden kann. – VonC

Verwandte Themen