以下是我在尝试'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上 然后是Unix或Linux上的64位整数 默认情况下这个Storable会拒绝 阅读它,给出错误字节 订单不兼容。如果你有 这样的数据然后你应该设置 $ Storable :: interwork_56_64bit到a 真正的价值使这个可存储的阅读 并使用旧标头写入文件。 您还应该迁移数据,或 你正在沟通的任何旧的perl 与,到目前的版本 可储存的。
我不知道的是,如何将此“$Storable::interwork_56_64bit
”设置为true。你能告诉我怎么做吗?
答案 0 :(得分:48)
我开始收到此错误消息。我正在使用一个存在于Max OS X分区中的git存储库。我有时从OS X(64位)访问它,有时从运行32位版本Linux的VM访问它。看起来有一个缓存文件以机器相关的格式存储。
在做了一些挖掘之后,我相信你可以通过吹掉存储在.git / svn / .caches中的所有.db文件来解决这个错误。这应该是一个比吹掉整个svn目录更多的手术方法。
答案 1 :(得分:17)
最近我的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 :(得分:2)
我怀疑一个可能的原因是使用带有svn数据的git存储库,这些数据已经在一台机器上获取,然后存档并下载以便在另一台机器上使用。
在我的情况下,它是在CentOS上获取然后移植到Ubuntu机器 - 两个64位安装,但可能他们的Perl配置的一些细节是不同的。或者包更新可能会改变一些东西。