2016-08-04 15 views
0

Mein Problem: Migration von einer Ubunut VM in Windows; Windows hatte einen blauen Bildschirm des Todes; Windows neu gestartet; Die Migration wurde beschädigt!SVN2Git Objekt Referenz Fehler

~/folder$ svn2git --rebase 
error: refs/remotes/svn/some_branch does not point to a valid object! 
fatal: git cat-file 81974ef70e6b9dba85295bf7341dd6808c03250d: bad file 
cat-file commit 81974ef70e6b9dba85295bf7341dd6808c03250d: command returned error: 128 

command failed: 
git svn fetch 

Ich habe bereits versucht, mein Problem zu beheben, wie in diesen Antworten erwähnt:

Leider bisher keiner hat mir geholfen.

Jeder hat eine Ahnung, wie man das beheben kann? Diese Migration dauerte schon +2 Wochen und ich möchte nicht noch einmal anfangen.

Antwort

1

Es gibt pleny Werkzeuge genannt svn2git, die wahrscheinlich beste ist die KDE eine von https://github.com/svn-all-fast-export/svn2git. Aus Ihrer Frage komme ich zu dem Schluss, dass Sie diese nicht verwenden, sondern diejenige, die auf git-svn basiert. Ich empfehle dringend, das Werkzeug svn2git zu verwenden. Es ist das Beste, was ich kenne, und es ist sehr flexibel in was man mit seinen Regeldateien machen kann.

Auch die gesamte Migration, die Sie mehr als 2 Wochen dauerte, wird wahrscheinlich in ein paar Stunden fertig sein, da es blitzschnell ist.

Wenn Sie nicht 100% über die Geschichte Ihres Repository sind, svneverever von http://blog.hartwork.org/?p=763 ist ein großartiges Werkzeug, um den Verlauf eines SVN-Repository bei der Migration zu Git zu untersuchen.

+0

Versuchen wir es dann ... –

+0

Mit diesem Fehler konfrontiert: 'svn-all-schnell-Export: /build/subversion-yttRtj/subversion-1.9.3/subversion/libsvn_subr/dirent_uri.c:972: svn_dirent_join: Assertion svn_dirent_is_canonical (Basis, Pool) ist fehlgeschlagen. Abgebrochen (Core Dumped) ' –

+0

Ich habe diesen Fehler nie gesehen. Was ist der Befehl, den Sie ausgeben? – Vampire

0

Das erste Problem zu lösen ist sicherzustellen, git-fsck läuft in Ordnung. Danach besteht das zweite Problem darin, die Migration fortsetzen zu können.

Es ist wahrscheinlich, dass die ersten Commits der Verzweigung korrekt auf die Festplatte geschrieben wurden, aber die letzten fehlgeschlagen sind. Versuchen Sie, git reflog show refs/remotes/svn/some_branch auszuführen. Wenn es Commits zeigt, versuchen Sie, das letzte Commit zu finden, das vorhanden ist: git show <hash>. Dann setzen Sie den Zweig zurück: git update-ref -m 'last commit found' refs/remotes/svn/some_branch <hash>.

Dann git fsck ausführen und den nächsten Zweig reparieren.

git-svn hat einen Befehl git svn reset -r <n>. svn2git wird wahrscheinlich eine ähnliche haben. Dies ermöglicht es, den Abruf vom letzten korrekten Status aus neu zu starten.