Подтвердить что ты не робот

Git svn rebase привел к тому, что ошибка "порядок байтов несовместима"

Ниже приведена ошибка, которую я получаю, когда пытаюсь "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 для истинное значение для чтения этого Storable и записывать файлы со старым заголовком. Вы также должны перенести свои данные или любой более старый perl, с которым вы общаетесь с этой текущей версией Storable.

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

4b9b3361

Ответ 1

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

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

Ответ 2

Это случилось со мной недавно на моем 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
...

Ответ 3

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

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