SVN - Checksum không khớp khi cập nhật


122

Khi tôi cố gắng cập nhật một số tệp từ Subversion, tôi gặp lỗi:

org.tigris.subversion.javahl.ClientException: 
Checksum mismatch while updating 'D:\WWW\Project\\.svn\text-base\import.php.svn-base'; expected: '3f9fd4dd7d1a0304d8020f73300a3e07', actual: 'cd669dce5300d7035eccb543461a961e'

Tại sao tôi nhận được điều này? Làm thế nào tôi có thể sửa chữa nó?

Câu trả lời:


70

Cách dễ nhất để khắc phục nó (nếu bạn không có nhiều thay đổi) là sao chép các thay đổi của bạn sang một thư mục khác, xóa thư mục nơi dự án của bạn được kiểm tra và kiểm tra lại dự án.

Sau đó sao chép lại các thay đổi của bạn vào (không sao chép bất kỳ thư mục .svn nào) và cam kết, và tiếp tục.


9
Tôi vừa xóa thư mục chứa tệp có vấn đề và tôi đã cập nhật toàn bộ dự án. Bây giờ nó có vẻ là ok.
Koralek M.

1 I thay thế khác được tìm thấy để lại cho tôi hack cơ sở dữ liệu svn, dễ dàng hơn nhiều
SeanDowney

@SeanDowney làm thế nào để làm điều đó?
arvindwill

@arvindwill Xin lỗi, tôi không rõ ràng trong nhận xét của mình, phương pháp này dễ hơn nhiều. Đây là giải pháp thay thế đáng sợ: maymay.net/blog/2008/06/17/...
SeanDowney

2
Đây không phải là một bản sửa lỗi cụ thể nào cả. Bạn luôn có thể xóa tất cả dữ liệu cục bộ của mình và bắt đầu với một bản sao mới từ kho lưu trữ.
tim

197

Trong trường hợp bạn đang sử dụng SVN 1.7+, có một cách giải quyết được mô tả ở đây .

Chỉ để tóm tắt lại:

  1. Đi tới thư mục có tệp gây ra sự cố
  2. Thực thi lệnh svn update --set-depth empty (lưu ý: điều này sẽ xóa các tệp của bạn, vì vậy hãy tạo một bản sao trước!)
  3. Thực thi lệnh svn update --set-depth infinity

17
Trong khi điều này làm việc cho tôi, lưu ý "cập nhật svn --set sâu trống rỗng" sẽ xóa tất cả mọi thứ từ con đường đó, vì vậy tạo ra một bản sao đầu tiên
tristanbailey

3
Điều này hoạt động hiệu quả để sửa một kho lưu trữ khổng lồ ở một vị trí xa. Trong khi thực hiện một thanh toán mới có hiệu quả, nó sẽ mất hơn một giờ; điều này mất vài phút.
Brian Gillespie

hi tôi đã sử dụng cửa sổ và TortoiseSVN là khách hàng svn .. Tôi đã cố gắng giải pháp của bạn .Nhưng nó vẫn hiển thị Isse
Amit Bera

Chỉ cần thay thế thư mục svn từ kho lưu trữ mới cho người già, nó làm việc :)
harishkumar329

Điều này làm việc tuyệt vời cho tôi, cảm ơn! Cần lưu ý rằng điểm # 1 là đi sâu vào thư mục (hoặc tệp) thực sự đang gây ra sự cố. Sau đó, bạn không phải cập nhật nhiều. Tôi có một thư mục với vài chục tệp trong đó, tôi đã sử dụng Tortoise "Update To-> only this item" trên thư mục và sau đó "Update To-> hoàn toàn đệ quy" để lấy lại tất cả. Mọi người vẫn cẩn thận rằng điều này sẽ xóa các tệp trong thư mục đó! Trên một liên kết VPN chậm với repo nhiều gigabyte và độ sâu - set được tinh chỉnh xuyên suốt, giải pháp "tiêu chuẩn" chỉ đơn giản là vô dụng.
dash-tom-bang

6

Tôi đã có một vấn đề simllar. Nhà cung cấp chính là phần mềm chống vi-rút "FortiClient" (antivirus + VPN CLient). Khi tôi tắt nó - tất cả cập nhật / kiểm tra đã được thực hiện chính xác


1
Đây là câu trả lời duy nhất giải quyết được vấn đề của tôi. Tôi không bao giờ có thể nghĩ về điều này. Cảm ơn!
timeon

5

Tôi đã tìm thấy một cách dễ dàng hơn để khắc phục sự cố này. Bạn không thể làm điều này trực tiếp từ nhật thực. Các bước:

  1. Điều hướng đến cấu trúc thư mục không gian làm việc trong windows
  2. đổi tên thư mục
  3. làm mới trong nhật thực
  4. Bây giờ thư mục và tệp sẽ bị xóa khỏi dự án trong eclipse và sẽ xuất hiện trong thư mục được đổi tên mới
  5. Bây giờ hãy thử tùy chọn "Đồng bộ hóa với Hệ thống đáp ứng".

Thao tác này sẽ khôi phục thư mục cơ sở văn bản trong .svnfolder. Lỗi kiểm tra không khớp trong khi cập nhật sẽ không xuất hiện thêm.


1

Điều này đã xảy ra với tôi khi sử dụng trình cắm thêm Eclipse và đồng bộ hóa. Tệp gây ra sự cố không có thay đổi cục bộ (và thực tế là không có thay đổi từ xa nào kể từ lần cập nhật cuối cùng của tôi). Tôi đã chọn "hoàn nguyên" cho tệp, không có sửa đổi nào khác đối với tệp và mọi thứ trở lại bình thường.


1

Tôi đã gặp lỗi tương tự nhưng đối với một tệp. Trong IntelliJ IDEA, tôi có thể tạo bản sao của tệp, sau đó vào dự án và xóa tệp được đề cập, sau đó cam kết thành công. Sau đó, tôi tạo một tệp mới có cùng tên và sao chép lại nội dung vào đó. Tôi đoán bạn sẽ mất lịch sử sửa đổi nhưng nó vẫn hoạt động.


1

Nếu bạn có một đồng nghiệp làm việc với bạn:

1) yêu cầu anh ta đổi tên tệp gây ra sự cố và commit

2) bạn update(bây giờ bạn thấy tệp có tổng kiểm tra không hợp lệ với tên khác)

3) đổi tên nó trở lại tên ban đầu

4) commit(và yêu cầu đồng nghiệp của bạn updatelấy lại tên tệp ở trạng thái ban đầu)

Điều này giải quyết các vấn đề đối với tôi.



1

Tôi đang sử dụng Tortoise SVN, sau khi tìm tất cả các giải pháp trong trang này và không hoạt động,

Cuối cùng tôi đã sao lưu tệp vấn đề. và sử dụng Repo Browserxóa tệp sự cố trong đó, sau đó cập nhật thư mục cục bộ để tệp trong thư mục cục bộ bị xóa. Sau đó sao chép lại tệp sao lưu vàAdd > Commit sau đó tôi có thể cập nhật thành công.

Nhược điểm duy nhất của phương pháp này là lịch sử của tệp này sẽ bị xóa.


0

Để giải quyết vấn đề này, hãy làm theo các bước sau:

  1. Mở tệp mục nhập nằm trong thư mục .svn mà bạn đang gặp lỗi.
  2. Tìm mục nhập cho lỗi tệp và thay thế giá trị mong đợi bằng giá trị thực bị lỗi.
  3. Bây giờ đồng bộ hóa và cố gắng cập nhật.

Nếu nó vẫn không hoạt động. Thử những thứ này xem. Tuy nhiên, nó chỉ là một giải pháp thay thế:

  1. Xóa tệp khỏi hệ thống của bạn.
  2. Xóa mục nhập của tệp khỏi tệp mục. (Bắt đầu từ tên của tệp cho đến các ký tự đặc biệt).
  3. Bây giờ Đồng bộ hóa và cập nhật tệp.

Thao tác này sẽ nhận được phiên bản mới nhất của tệp từ kho lưu trữ và mọi xung đột sẽ được giải quyết.


0

đã gặp sự cố tương tự trên một máy chủ nhưng thư mục SVN rất lớn, không muốn xóa và đồng bộ hóa lại vì vậy tôi chỉ tạo một bản sao của các tệp cục bộ và sau đó xóa chúng. Khi cập nhật thành công và thêm lại tệp vào.


0

cố gắng xóa tệp và xóa tham chiếu tệp khỏi các mục nhập tệp trong thư mục .svn


0

Tôi đã gặp lỗi tương tự và đã khắc phục như sau:

('Bản sửa lỗi' của tôi dựa trên một giả định có thể đúng hoặc có thể không đúng vì tôi không biết nhiều về cách hoạt động nội bộ của lật đổ, nhưng nó chắc chắn đã hiệu quả với tôi)

Tôi giả định rằng .svn \ text-base \ import.php.svn-base được mong đợi khớp với cam kết mới nhất.

Khi tôi kiểm tra tệp mà tôi gặp lỗi, tệp cơ sở KHÔNG khớp với cam kết mới nhất trong kho lưu trữ.

Tôi đã sao chép văn bản từ cam kết mới nhất và lưu văn bản đó trong thư mục .svn, thay thế tệp không chính xác (tạo một bản sao lưu trong trường hợp các giả định của tôi là sai). (tệp được đánh dấu là chỉ đọc, tôi đã xóa cờ đó, ghi đè và đặt nó trở lại chỉ đọc)

Sau đó tôi đã có thể cam kết thành công.


0

Giải pháp của tôi là:

  1. Thực hiện dọn dẹp svn từ hệ thống tệp
  2. Chuyển sang chi nhánh khác
  3. Giải quyết xung đột
  4. Chuyển sang nhánh "có vấn đề"
  5. Thực hiện dọn dẹp từ Spring Tool Suite
  6. Thực hiện cập nhật dự án

0

1. cập nhật để đảo ngược 'kiểm tra' chỉ mục này 'trong thư mục 2. cập nhật lại kiểm tra' Hoàn toàn đệ quy '

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.