2009-08-31 14 views
17

Sto cercando di importare un grande repository di subversion in git usando git-svn (in modo che io possa lavorare in git ma continuo a sovversione di volta in volta). Dopo aver importato più di 4000 revisioni ora sto ottenendo il seguente errore ogni volta che corro git svn fetch o git svn rebase, che non riesco a sbarazzarsi di:fatale: git-write-tree: errore nella creazione di alberi

$ git svn fetch 
error: invalid object 100644 1f2....742 for 'src/path/.../file.cs' 
fatal: git-write-tree: error building trees 
write-tree: command returned error: 128 

Quello che ho provato finora:

  • git fsck --full non segnala nulla, né fa git fsck --unreachable o git fsck --no-reflog
  • git gc --aggressive non aiuta
  • spostare il file confezione singola via e reimportarlo con git unpack-objects non aiuta
  • git svn reset -rXY con XY un po 'più basso dell'ultima versione importata non sembra essere di aiuto, né rimuove manualmente le ultime voci dallo reflog fino a XY.
  • riavviare. Sembra sciocco, ma ho osservato alcuni problemi strani mentre importavo la prima ~ 4000 revisione, come se qualcosa stesse perdendo molte risorse del kernel (molto probabilmente nel sottosistema windows), potrebbe essere correlato a msys/mingw (o all'avirus virus scanner, che ho disabilitato per il test).

Inoltre non ho trovato l'errore 128 in realtà. Qualche idea? Grazie in anticipo!

potrebbe essere correlato a this question che riguarda anche l'errore 128 ma con diversi messaggi di errore e senza una soluzione.

msysgit versione 1.6.4.msysgit.0 con bash su XP SP3

+1

Chiedi a git mailing list ([email protected]), non è necessario iscriversi per postare (e ci sono alcune interfacce Web per leggerlo, inclusi Gmane e MARC) –

risposta

34

git svn gc

(possibilmente git gc e git prune prima)

+0

Grazie, ha funzionato! Non so se fossero necessari gc/prune, li faccio naturalmente. – Tobu

+0

Ho provato tutti loro senza risolverlo ... –

+0

Ho avuto questo problema.Eseguendo solo 'git svn gc' senza' git gc' e 'git prune' lo aggiustavo per me. – thakis

4

Risposta breve: Prova risolvere qualsiasi unione conflitti, li impegna, e/fetch tirare di nuovo .

Spiegazione più lunga: Suppongo che abbia risolto questo problema, poiché è stato pubblicato molto tempo fa. Sto scrivendo questo dal momento che la classifica di Google degli articoli StackOverflow è abbastanza alta che altre persone con questo problema sarebbero molto propensi a visitare questa pagina se avessero avuto questo errore.

Ho riscontrato un errore simile durante il tentativo di eseguire un "git stash", quello che si è rivelato essere il problema era che si era verificato un conflitto di merge dopo un pull. Non avevo risolto il conflitto & e questo ha lasciato il repository in uno stato che mi impediva di tirare/fondere/etc ...

Se si è certi di non avere alcun file di blocco, riprovare.

Buona fortuna!

Problemi correlati