2010-06-28 17 views
22

In seguito è l'errore che sto ottenendo quando ho provato 'git svn rebase':git svn rebase ha provocato "l'ordine dei byte non è compatibile" Errore

Byte order is not compatible at ../../lib/Storable.pm (autosplit into ../../lib/auto/Storable/_retrieve.al) line 380, at /usr/lib/perl5/5.10/Memoize/Storable.pm line 21 

La versione di Perl Sono in esecuzione è:

$ perl --version 

This is perl, v5.10.1 (*) built for i686-cygwin-thread-multi-64int 
(with 12 registered patches, see perl -V for more detail) 

Quando ho cercato nel web per "comando Byte non è compatibile" e ottengo numerosi successi che mostra il dottore Perl che dice:

Ciò significa che se si dispone di i dati scritti da 1.x riponibile in esecuzione su Perl 5.6.0 o 5.6.1 configurato con 64 bit interi su Unix o Linux, allora di default questo riponibile rifiuterà a leggere esso, dando l'errore byte ordine non è compatibile. Se si dispone di dati , è necessario impostare $ Storable :: interwork_56_64bit su un valore reale per rendere questo Storable letto e scrivere file con l'intestazione precedente. Dovresti anche migrare i tuoi dati, o qualsiasi altro perl che stai comunicando con con questa versione attuale di Storable.

Quello che non so è, come impostare questo '$Storable::interwork_56_64bit' su true. Per favore fammi sapere come si fa?

+0

Entrambe le risposte di @ Dave-Goodell e @Jacques funzionano bene. Ma il metodo suggerito da @ Dave-Goodell richiede molto tempo soprattutto se il repository svn è enorme. In questi casi, la rimozione della cartella '.git/svn/.caches' aiuta. Recentemente ho riscontrato il problema. Ho provato la risposta di @ Dave-Goodell, ma ci è voluto un tempo così l'ho ucciso. Ripristinato il backup della cartella '.git/svn' e poi provato la risposta da @Jacques. Ha risolto il problema in tempi molto più brevi. – yasouser

risposta

48

Ho iniziato a ricevere questo messaggio di errore. Sto usando un repository git che vive in una partizione Max OS X. A volte lo accedo da OS X (64 bit), e talvolta lo accedo da una VM che esegue una versione a 32 bit di Linux. Sembra che ci sia un file di cache che è memorizzato in un formato dipendente dalla macchina.

Dopo aver eseguito alcuni scavi, credo che si possa aggirare l'errore eliminando tutti i file .db memorizzati in .git/svn/.caches. Questo dovrebbe essere un approccio un po 'più chirurgico che spazzare via l'intera directory svn.

+5

Ha funzionato come un fascino! +1 –

+1

bug di tracciamento root http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=587650 –

+0

Questo ha risolto anche il mio repository git trapiantato Windows-> Ubuntu, ma il mio errore era "La dimensione intera lunga non è compatibile su /usr/lib/perl/5.14/Storable.pm line 379, in /usr/share/perl/5.14.2/Memoize/Storable.pm line 21 Impossibile smembrare la funzione 'lookup_svn_merge ', perché non era memoized per cominciare con/usr/lib/git-core/git-svn line 3588 END fallito - coda di chiamata interrotta su/usr/lib/git-core/git-svn riga 39. ' Questo è perl 5, versione 14, subversion 2 (v5.14.2) creato per x86_64-linux-gnu-thread-multi Ci sono voluti circa 10 minuti, ma questo potrebbe essere stato il download eccezionale da svn. –

17

Questo mi è successo di recente sul mio Mac. Non sono sicuro di cosa è causato, ma lo standard git-svn "fix" di soffiare via i metadati e l'aggiornamento funzionato per me:

% mv .git/svn .git/svn.bak 
% git svn fetch 
Migrating from a git-svn v1 layout... 
Data from a previous version of git-svn exists, but 
     .git/svn 
     (required for this version (1.7.1) of git-svn) does not exist. 
Done migrating from a git-svn v1 layout 
Rebuilding .git/svn/refs/remotes/bg-threads-1.1/.rev_map.a5d90c62-d51d-0410-9f91-bf5351168976 ... 
r5758 = 545e176a13e87d44a2750ff5f06959088efc9e5b 
... 
2

ho il sospetto una potenziale causa di questo sta usando un repository git con svn dati che sono stati recuperati su una macchina e successivamente archiviati e scaricati per l'uso su un'altra macchina.

Nel mio caso è stato prelevato su CentOS e quindi trasferito su una macchina Ubuntu - sia a 64 bit che a installazione, ma forse qualche piccolo dettaglio della loro configurazione Perl è diverso. O forse un aggiornamento del pacchetto ha cambiato qualcosa.