2009-12-22 36 views
43

Vì vậy, tôi đã tạo một repo từ xa là không phải trần (vì tôi cần redmine để có thể đọc nó), và thiết lập được chia sẻ với nhóm (do đó git init --shared = group). Tôi đã có thể đẩy đến repo từ xa và bây giờ tôi đang cố gắng sao chép nó.git clone thất bại với "index-pack" không thành công?

Nếu tôi sao chép nó trên net tôi có được điều này:

remote: Counting objects: 4648, done. 
remote: Compressing objects: 100% (2837/2837), done. 
error: git-upload-pack: git-pack-objects died with error.B/s 
fatal: git-upload-pack: aborting due to possible repository corruption on the remote side. 
remote: aborting due to possible repository corruption on the remote side. 
fatal: early EOF 
fatal: index-pack failed 

tôi có thể sao chép nó tại địa phương mà không có một vấn đề, và tôi chạy "git fsck", mà chỉ báo cáo một số lủng lẳng cây/blobs mà tôi hiểu không phải là vấn đề. Điều gì có thể gây ra điều này? Tôi vẫn có thể rút ra khỏi nó, chỉ cần không sao chép. Tôi nên lưu ý phiên bản git từ xa là 1.5.6.5 trong khi địa phương là 1.6.0.4

Tôi đã thử nhân bản bản sao cục bộ của mình, xóa thư mục .git và đẩy tới repo mới, sau đó nhân bản repo mới và Tôi nhận được lỗi tương tự, dẫn tôi tin rằng đó có thể là một tệp trong repo khiến git-upload-pack bị lỗi ...

Chỉnh sửa: Tôi có một số cửa sổ nhị phân trong repo, bởi vì Tôi chỉ xây dựng các mô-đun python và sau đó bị mắc kẹt trong đó để mọi người khác cũng không phải xây dựng chúng. Nếu tôi loại bỏ các cửa sổ nhị phân và đẩy đến một repo mới, tôi có thể sao chép một lần nữa, có lẽ đó là một đầu mối. Cố gắng thu hẹp chính xác tệp nào đang gây ra sự cố ngay bây giờ.

+0

chỉ FYI, nhân bản tại địa phương chỉ làm hardlinks, vì vậy nó có thể không làm 'index-pack' hoặc kiểm tra lỗi. –

+0

Tôi có ** thông báo lỗi chính xác giống nhau **. Ngoại trừ nó cũng mang lại hàng chục sau đây, tất cả lặp đi lặp lại, 'lỗi: packfile .git/objects/pack/pack-5f2b4b46e2dba195a0fa5d29dfd3cef88067f8ed.pack không phù hợp với chỉ số' và' cảnh báo: '+ cùng 'gói' msg +' không thể được truy cập' . Nó chỉ xảy ra khi cố gắng sao chép từ một máy tính cụ thể này. Hoặc, sau khi nó thất bại, khi cố gắng kéo nó cũng xảy ra. Sau đó có vẻ như chúng ta có thể tiếp tục cố gắng cho đến khi nó kết thúc. Bất kỳ máy nhân bản nào khác từ repo đó không có vấn đề gì cả. Máy chủ win là trống và tất cả các máy đều có cửa sổ với Cygwin. – cregox

+0

nó có vẻ là một lỗi với Cygwin, nếu bạn thử lại nó có thể làm việc. –

Trả lời

11

"git gc" có khiếu nại không?

+0

Không, dường như chỉ hoạt động tốt. –

+4

Tôi không biết làm thế nào, nhưng chạy lệnh đó đầu tiên cố định nó cho tôi. –

+1

tương tự ở đây, chạy 'git gc' trước khi' git pull' sửa vấn đề –

3

Tôi cũng đã có vấn đề với git Cygwin, lỗi: fatal: index-pack failed,

tôi đã có thể giải quyết nó bằng cách tạo ra một gắn kết cho các dự án của tôi và đặt nó sang chế độ nhị phân. kể từ khi /c của tôi được đặt thành chế độ văn bản.

Thêm của Cygwin để /etc/fstab:

c:/work/Projects /projects some_fs binary 0 0 

chạy mount -a để gắn kết tất cả các ổ đĩa.

Bạn cần phải ở trong /projects để làm việc với cygwin git, /c/work/Projects sẽ không thành công.

Không chắc chắn điều này có hiệu quả với bạn hay không.

14

Tôi có cùng vấn đề với bạn; thông báo lỗi khi tôi sao chép i:

Cloning into test... 
remote: Counting objects: 6503, done. 
remote: Compressing objects: 100% (4519/4519), done. 
Connection to git.myhost.im closed by remote host.| 350 KiB/s 
fatal: The remote end hung up unexpectedly 
fatal: early EOF 
fatal: index-pack failed 

Trong trường hợp của tôi, lý do là kích thước kho của tôi (200M) lớn hơn bộ nhớ git máy chủ của tôi (128M). Khi tôi sao chép từ máy chủ git, tôi sử dụng lệnh top trên máy chủ của tôi, cho thấy rằng việc sử dụng bộ nhớ sớm hơn 128M.

Khi tôi sử dụng một máy chủ khác có bộ nhớ 4G, git clone là tất cả. Bạn cũng có thể thử thêm không gian hoán đổi cho máy chủ của bạn.

+7

Thêm số này vào '.gitconfig' sửa chữa: '[lõi] packedGitLimit = 512M packedGitWindowSize = 512M [gói] deltaCacheSize = 2047m packSizeLimit = 2047m windowMemory = 2047m' - rõ ràng là ngắt dòng. –

3

Sử dụng biến môi trường GIT_TRACE để nhận đầu ra gỡ lỗi. Đặt nó thành "1" để theo dõi để stderr hoặc một đường dẫn tuyệt đối để theo dõi vào tập tin.

4

Tôi đã gặp vấn đề tương tự. Tôi cũng đoán rằng điều này liên quan đến thực tế là tôi sử dụng chế độ văn bản/CRLF cho các tệp đã tạo. Và thực sự, sau khi chuyển đổi CygWin sang chế độ UNIX/nhị phân newline, mọi thứ đều hoạt động tốt.

Xem:

BTW, cách dễ nhất cho tôi để chuyển sang chế độ tập tin đã chỉnh sửa/etc/fstab chuyển từ

none /cygdrive cygdrive text,posix=0,user 0 0

to

none /cygdrive cygdrive binary,posix=0,user 0 0

0

Tôi đã nâng cấp nguồn git của máy tính khách của mình lên cùng một phiên bản mà máy chủ đang chạy và đã sửa lỗi này cho tôi.

19

Cách tôi giải quyết vấn đề này là: My git daemon đang chạy trên các cửa sổ và máy khách đang ở trên các máy tính khác.

Tôi tìm thấy giải pháp thay thế (nhưng nó sẽ chỉ hoạt động trên cửa sổ).

Bắt đầu daemon git với verbose từ cmd.exe:

"C:\Program Files\Git\bin\sh.exe" --login -i -c 'git.exe daemon --verbose ' 

Không kiểm tra, nếu nó hoạt động trực tiếp trong git bash. Có lẽ nó sẽ.

Sau đó (trước khi bắt đầu bất kỳ bản sao, kéo, tìm nạp, ...), hãy chọn một số văn bản trong cửa sổ (lưu ý: "Chế độ chỉnh sửa nhanh") (có thể tìm thấy tại: cmd.exe -> Properties (nhấp vào góc trên cùng bên trái của cửa sổ cmd của bạn) -> Edit Options) trong đó git daemon chạy. Điều đó sẽ ngăn không cho nó in thêm bất kỳ tin nhắn nào trong cửa sổ đó.

Khi sợi đầu ra của git daemon bị chặn theo cách đó, thì lỗi không xảy ra

+3

Kỳ lạ nhưng điều này cũng làm việc cho tôi. 1. chạy git bash trên windows 2. bắt đầu một daemon (git daemon --verbose --export-all --reuseaddr --base-path =.) 3. đánh dấu một số văn bản (menu hệ thống-> chỉnh sửa-> đánh dấu trong bash shell) 4. để lại văn bản được đánh dấu (không nhấn enter) và daemon hoạt động tốt (!), nếu không lỗi EOF sớm trên máy khách mỗi lần. – codeSF

+1

Làm việc cho tôi quá ... –

+1

Thay thế cho phiên bản mới nhất của git tham gia 1. nhấp chuột phải 2. tùy chọn cửa sổ (để nó mở trong khi kéo ..... :() – goofballLogic

0

Tôi đã cùng một vấn đề và tôi sẽ thay đổi configs git của tôi đến và được làm việc tốt:

git config --global pack.packSizeLimit 50m
git config --global pack.windowMemory 50m
git config --global core.compression 9

0

tôi giải quyết vấn đề này bằng cách sửa chữa sự cho phép thư mục:

sudo chmod 777 -R Your_folder 
Các vấn đề liên quan