2010-06-28 30 views
22

Sau đây là lỗi tôi nhận được khi tôi đã cố gắng 'git svn rebase':git svn rebase dẫn đến "thứ tự byte không tương thích" lỗi

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 

Phiên bản perl Tôi đang chạy là:

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

Khi tôi đã tìm kiếm trên web cho "trật tự Byte là không tương thích" và tôi nhận được rất nhiều hit cho thấy doc Perl nói rằng:

Điều này có nghĩa là nếu bạn có dữ liệu được viết bởi Storable 1.x chạy trên perl 5.6.0 hoặc 5.6.1 được định cấu hình với số nguyên 64 bit trên Unix hoặc Linux thì theo mặc định này Storable sẽ từ chối để đọc nó, đưa ra lỗi Byte đơn đặt hàng không tương thích. Nếu bạn có dữ liệu như vậy thì bạn nên đặt $ Storable :: interwork_56_64bit thành giá trị thực để làm cho số này đọc và ghi tệp với tiêu đề cũ. Bạn cũng nên di chuyển dữ liệu của mình hoặc bất kỳ perl cũ nào bạn đang liên lạc với, với phiên bản hiện tại Đáng yêu này.

Điều tôi không biết là cách đặt '$Storable::interwork_56_64bit' này thành true. Bạn có thể vui lòng cho tôi biết làm thế nào để làm điều đó?

+0

Cả hai câu trả lời từ @ Dave-Goodell và @Jacques hoạt động tốt. Nhưng phương pháp được đề xuất bởi @ Dave-Goodell mất khá nhiều thời gian đặc biệt là nếu repo svn là rất lớn. Trong những trường hợp như vậy, hãy xóa thư mục '.git/svn/.caches'. Gần đây tôi đã gặp sự cố. Đã thử câu trả lời từ @ Dave-Goodell nhưng phải mất mãi mãi vì vậy tôi đã giết nó. Đã khôi phục thư mục '.git/svn' đã sao lưu và sau đó thử câu trả lời bằng @Jacques. Nó giải quyết vấn đề trong khung thời gian ít hơn rất nhiều. – yasouser

Trả lời

48

Tôi bắt đầu nhận được thông báo lỗi này. Tôi đang sử dụng một kho git sống trong một phân vùng Max OS X. Đôi khi tôi truy cập nó từ OS X (64 bit), và đôi khi truy cập nó từ một máy ảo đang chạy một phiên bản 32 bit của Linux. Dường như có một tệp bộ nhớ cache được lưu trữ ở định dạng phụ thuộc vào máy.

Sau khi thực hiện một số thao tác, tôi tin rằng bạn có thể khắc phục lỗi bằng cách thổi đi tất cả các tệp .db được lưu trữ trong .git/svn/.caches. Điều này sẽ là một cách tiếp cận phẫu thuật hơn một chút so với thổi đi toàn bộ thư mục svn.

+5

Làm việc như một sự quyến rũ! +1 –

+1

lỗi theo dõi gốc http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=587650 –

+0

Điều này cũng đã giải quyết kho lưu trữ git Windows-> Ubuntu được cấy ghép của tôi, nhưng lỗi của tôi là 'Kích thước nguyên dài không phải là tương thích tại /usr/lib/perl/5.14/Storable.dòng pm 379, tại /usr/share/perl/5.14.2/Memoize/Storable.pm dòng 21 Không thể bỏ kích hoạt chức năng 'lookup_svn_merge ', vì nó không được ghi nhớ để bắt đầu bằng/usr/lib/git-core/git-svn line 3588 END không thành công - hàng đợi cuộc gọi bị hủy tại/usr/lib/git-core/git-svn dòng 39. ' Đây là perl 5, phiên bản 14, subversion 2 (v5.14.2) được xây dựng cho x86_64-linux-gnu-thread-multi Mất khoảng 10 phút, nhưng đó có thể chỉ là tải xuống nổi bật từ svn. –

17

Điều này đã xảy ra với tôi gần đây trên máy Mac của tôi. Tôi không chắc chắn những gì gây ra nó, nhưng git-svn tiêu chuẩn "sửa chữa" của thổi đi những siêu dữ liệu và cập nhật từng làm việc cho tôi:

% 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

tôi nghi ngờ một nguyên nhân tiềm năng của việc này là sử dụng một kho git với svn dữ liệu đã được tìm nạp trên một máy và sau đó được lưu trữ và tải xuống để sử dụng trên một máy khác.

Trong trường hợp của tôi, nó được tìm nạp trên CentOS và sau đó được cấy vào máy Ubuntu - cả bản cài đặt 64 bit nhưng có lẽ một số chi tiết nhỏ về cấu hình Perl của chúng khác nhau. Hoặc có lẽ một bản cập nhật gói đã thay đổi một cái gì đó.

Các vấn đề liên quan