git svn rebase привел к ошибке «Порядок байтов не совместим» - PullRequest
22 голосов
/ 28 июня 2010

Ниже приведена ошибка, которую я получаю при попытке выполнить 'git svn rebase':

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

Версия Perl, которую я использую:

$ 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)

Когда я искал в Интернете « Порядок байтов не совместим », и я получал множество обращений, которые показывают документацию Perl, которая говорит:

Что это значит, что если у вас есть данные, записанные с помощью Storable 1.x на Perl 5.6.0 или 5.6.1, настроенный с 64-битные целые числа в Unix или Linux тогда по умолчанию этот Storable откажется читать его, выдавая ошибку Byte заказ не совместим. Если у вас есть такие данные, то вы должны установить $ Storable :: interwork_56_64bit в истинное значение, чтобы сделать это Хранимое чтение и пишите файлы со старым заголовком. Вы также должны перенести ваши данные, или любой старый Perl, с которым вы общаетесь с, к этой текущей версии Storable.

Чего я не знаю, так это как установить '$Storable::interwork_56_64bit' в значение true. Не могли бы вы дать мне знать, как это сделать?

Ответы [ 3 ]

48 голосов
/ 11 октября 2010

Я начал получать это сообщение об ошибке. Я использую репозиторий git, который находится в разделе Max OS X. Иногда я получаю к нему доступ из OS X (64-разрядная версия), а иногда - к виртуальной машине с 32-разрядной версией Linux. Похоже, что есть файл кэша, который хранится в машинно-зависимом формате.

После некоторых копаний, я считаю, что вы можете обойти эту ошибку, удалив все файлы .db, хранящиеся в .git / svn / .caches. Это должен быть немного более хирургический подход, чем уничтожение всего каталога svn.

17 голосов
/ 22 июля 2010

Это недавно случилось со мной на моем Mac.Я не уверен, что вызвало это, но стандартное git-svn "исправление" удаления метаданных и обновления работало для меня:

% 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 голосов
/ 25 августа 2010

Я подозреваю, что одной из возможных причин этого является использование репозитория git с svn-данными, которые были извлечены на одном компьютере, а затем архивированы и загружены для использования на другом компьютере.

В моем случае он был извлечен на CentOS, а затем перенесен на машину с Ubuntu - обе 64-битные установки, но, возможно, некоторые мелкие детали их конфигурации Perl отличаются. Или, возможно, обновление пакета изменило что-то.

...