2016-05-02 7 views
0

Ich kenne this post. Ich habe versucht, es auf diese Weise zu tun, um ein Mercurial-Projekt (nämlich die eigen project) in ein gegebenes Git-Projekt einzufügen.Wie fügt man ein HG-Projekt in ein Git-Projekt ein?

Wenn ich versuche, es zu klonen, bekomme ich so etwas wie

Initialized empty Git repository in /tmp/.../.git/ 
Fordere alle ?nderungen an 
F?ge ?nderungss?tze hinzu 
F?ge Manifeste hinzu 
F?ge Datei?nderungen hinzu 
F?gte 8820 ?nderungss?tze mit 28623 ?nderungen an 2757 Dateien hinzu (+4 K?pfe) 
Initialized empty Git repository in /tmp/multikopter/foo/.git/hgremote/ 
Error: repository has at least one unnamed head: hg r8485 
git-fast-import statistics: 
--------------------------------------------------------------------- 
Alloc'd objects:  5000 
Total objects:   0 (  0 duplicates     ) 
    blobs :   0 (  0 duplicates   0 deltas of   0 attempts) 
    trees :   0 (  0 duplicates   0 deltas of   0 attempts) 
    commits:   0 (  0 duplicates   0 deltas of   0 attempts) 
    tags :   0 (  0 duplicates   0 deltas of   0 attempts) 
Total branches:   0 (  0 loads ) 
    marks:   1024 (  0 unique ) 
    atoms:    0 
Memory total:   2282 KiB 
    pools:   2048 KiB 
objects:   234 KiB 
--------------------------------------------------------------------- 
pack_report: getpagesize()   =  4096 
pack_report: core.packedGitWindowSize = 1073741824 
pack_report: core.packedGitLimit  = 8589934592 
pack_report: pack_used_ctr   =   0 
pack_report: pack_mmap_calls   =   0 
pack_report: pack_open_windows  =   0/  0 
pack_report: pack_mapped    =   0/  0 
--------------------------------------------------------------------- 

fatal: Couldn't find remote ref HEAD 
fatal: The remote end hung up unexpectedly 

Wenn die Flagge mit --force dies zu einem großen Ausgang führt und zumindest einige Commits in git erstellt bekommen, wie gewünscht. Jedoch das Verfahren mit dem Ausgang endet

Traceback (most recent call last): 
    File "/usr/share/hg-fast-export/hg-fast-export.py", line 387, in <module> 
    options.statusfile,authors=a,sob=options.sob,force=options.force)) 
    File "/usr/share/hg-fast-export/hg-fast-export.py", line 298, in hg2git 
    ui,repo=setup_repo(repourl) 
    File "/usr/share/hg-fast-export/hg2git.py", line 34, in setup_repo 
return myui,hg.repository(myui,url) 
    File "/usr/lib/python2.7/dist-packages/mercurial/hg.py", line 112, in repository 
    peer = _peerorrepo(ui, path, create) 
    File "/usr/lib/python2.7/dist-packages/mercurial/hg.py", line 102, in _peerorrepo 
    obj = _peerlookup(path).instance(ui, path, create) 
    File "/usr/lib/python2.7/dist-packages/mercurial/localrepo.py", line 2478, in instance 
    return localrepository(ui, util.urllocalpath(path), create) 
    File "/usr/lib/python2.7/dist-packages/mercurial/localrepo.py", line 217, in __init__ 
    raise error.RepoError(_("repository %s not found") % path) 
mercurial.error.RepoError: Projektarchiv nicht gefunden 

Der letzte Text bedeutet repository not found in deutscher Sprache.

Wenn ich versuche, git hg fetch oder git hg pull Ich bekomme die genaue Traceback. Weiter scheint es, dass nicht alle Commits von eigen library Teil des gerade erstellten Git-Repositories sind. Beim Vergleich der letzten Commits von master in git mit den letzten Commits in mercurial sieht man eine Dikrepanz von mehr als einem Jahr Arbeit (zumindest für mich).

Kann jemand das verifizieren?

Wie kann ich das Problem lösen? (GIT für das Hauptprojekt ist eingestellt. Die Frage ist, wie die Bibliothek in einer passenden Version zu integrieren.)

Kann jemand mir eine gute Alternative zu git-hg sagen, wenn das helfen könnte?

Antwort

0

Main (jetzt) ​​Problem

Error: repository has at least one unnamed head: hg r8485

Mercurial kann in dem Namen Zweig mehr als einen Kopf hat, Git-Verzweigung ist hässlich und schwächer und Git diesen Fall nicht verarbeiten kann. Nämlich r8485 ist geschlossener Kopf von default Zweig (aber Schließ hat Sinn nur in einigen Bereichen und nur für Mercurial)

>hg log -r "heads(branch(default))" 
changeset: 8485:59a7e404a93c 
parent:  8483:df620f192518 
user:  Christoph Hertzberg <[email protected]> 
date:  Thu Mar 17 19:38:45 2016 +0100 
summary:  closing wrong default 

changeset: 8820:1249b66e1544 
tag:   tip 
user:  Benoit Steiner <[email protected]> 
date:  Mon May 02 19:50:22 2016 -0700 
summary:  Made a cast explicit 

Mögliche Lösungen (ggf. auf der Verwendung Mercurial)

  • Dummy-merge 8485 in aktueller Tipp
  • Teilklon des ursprünglichen Repos, der (alle) Blattknoten ausschließt