2012-06-27 17 views
26

Tôi đang cố gắng thực hiện thay đổi trong lật đổ tệp. Tệp này thuộc về một thư mục được liên kết với dự án của tôi qua một bên ngoài và được gắn vào một bản sửa đổi nhất định.Subversion: tổng kiểm tra cơ sở không khớp

Khi tôi làm một cam kết, tôi nhận được lỗi:

Commit failed 
Base checksum mismatch on.... 

Tôi cố gắng để kiểm tra thư mục một lần nữa để đảm bảo rằng nó là sạch và thực hiện các cam kết một lần nữa, nhưng tôi vẫn nhận được lỗi tương tự.

Có thể liên quan đến việc cam kết với tệp được cố định không? Tôi nghĩ rằng cam kết vào một tập tin đó là pegged nên có thể và về cơ bản chi nhánh tắt mã này?

+0

Wh tại khách hàng bạn sử dụng? –

+0

Tôi sử dụng TortoiseSVN –

Trả lời

0

Bản sao làm việc của bạn có thể bị hỏng. Bạn có thể sửa chữa nó bằng SmartSVN (chọn Modify | Validate Admin Area). Nếu điều này sẽ không giúp chỉ thanh toán mới sẽ giúp ích.

9

Sao chép tất cả các tệp trong dự án của bạn vào thư mục sao lưu tạm thời. Nhấp vào "Hoàn nguyên" trên thư mục dự án ban đầu của bạn. Diff thay đổi tập tin với thư mục sao lưu, sao chép các tập tin đã thay đổi của bạn vào thư mục dự án ban đầu. Cam kết và thư mục gốc của bạn trở lại bình thường.

Chỉ có cùng một vấn đề này đối với hai dự án và phương pháp đó hoạt động.

+0

Hoàn nguyên không hoạt động đối với tôi, nhưng di chuyển toàn bộ thư mục sau đó cập nhật (khôi phục thư mục), sau đó di chuyển các tệp đã sửa đổi trở lại thư mục đã thực hiện thủ thuật cho tôi. –

+0

Revert không làm việc cho tôi, nhưng xóa toàn bộ thư mục, sau đó cập nhật, sau đó di chuyển các tập tin sửa đổi trở lại (nhưng không phải tất nhiên thư mục .svn) đã làm các trick cho tôi quá. –

5

Cách mà làm việc tốt nhất cho tôi, là:

  1. Làm một xuất khẩu của toàn bộ thư mục đó sẽ không cam kết (sử dụng Rùa ví dụ)
  2. Xóa thư mục hiện tại SVN (cũng sử dụng khách hàng SVN của bạn)
  3. Đặt thư mục mà bạn đã xuất khẩu tất cả mọi thứ để, tại cùng một vị trí như thư mục đã xóa trước đó, tốt nhất là có cùng tên
  4. Thêm và Commit thư mục
  5. bạn đang trở lại nơi bạn đã mà không làm mất các thay đổi của bạn và không có kiểm tra sai!
0

Tôi gặp sự cố này nhưng việc xóa các thư mục dường như không làm gì cả.

Tôi đã cố gắng khắc phục điều này bằng cách kiểm tra cùng một tệp nguồn với một địa điểm khác và sao chép chúng qua các tệp có vấn đề này.

Làm sạch/hoàn nguyên/cập nhật (sau khi xóa tệp) không làm gì cả.

Tôi đang chạy các cửa sổ 7 với phiên bản Tortoisesvn 1.7.11 64 bit.

39

Cách làm việc cho tôi:

  1. Make bản sao của tập tin có vấn đề.
  2. Hoàn nguyên.
  3. Bỏ đảo và thêm vào mục bỏ qua.
  4. Cam kết.
  5. Owerwrite tệp bị bỏ qua từ bản sao.
  6. Thêm tệp trở lại SVN.
  7. Cam kết.
+1

Nếu không có quyền truy cập vào kho SVN, đây là giải pháp sạch nhất cho tôi. Cảm ơn! – sws

+1

Unversion-ing là những gì đã giải quyết nó cho tôi. Trong nhật thực, tôi đã tạo một bản sao của tệp với tên khác, đã xóa tệp bị hỏng, SVN đã thêm tệp mới và sau đó đổi tên tệp mới thành tên tệp gốc. Cảm ơn – gnB

+2

Tôi đã thử giải pháp này và trong khi nó hoạt động, nó cũng loại bỏ các svn-lịch sử của tập tin đó, vì vậy bạn nên cẩn thận đánh giá nếu đó là một cái gì đó bạn có thể sống với. – Thomas

0

gì làm việc cho tôi:

  1. Make bản sao của phiên bản hiện tại của tập tin.
  2. svn rm 'filename'
  3. svn ci
  4. thay đổi tên tập tin trở lại với bản gốc
  5. svn add 'filename'
  6. svn ci

Sau đó, các cam kết và cập nhật dường như hoạt động chính xác.

0

Kiểm tra phiên bản SVN của máy chủ có thể không khớp với phiên bản svn địa phương của bạn.

1. Kiểm tra phiên bản SVN bằng cách làm theo lệnh và nâng cấp nó, nếu nó không khớp với phiên bản máy chủ của bạn.

svn --version 

2. Thanh toán dự án bằng phiên bản SVN mới nhất (ví dụ: phiên bản svn của máy chủ).

3. Cam kết tệp.

Lưu ý: Nó sẽ chỉ hoạt động đối với trường hợp không phù hợp với phiên bản SVN.

-1

Chỉ cần có cùng một vấn đề và tôi đã sử dụng giao diện điều khiển khách hàng để đối phó với nó:

  1. Backup files
  2. file Xóa từ repo bởi svn rm filename
  3. Commit nó
  4. Sao chép tập tin trở lại từ sử dụng dự phòng svn add filename
  5. Cam kết nó
2

gì làm việc cho tôi là:

svn up --set-depth=empty 

sau đó

svn up --set-depth=infinity 

lỗi đã biến mất!

+0

Để hoàn tất, hãy giả sử tệp vấn đề là foo.cpp. Chạy: 'cp tên tệp filename.save' ' svn up --set-depth = tên tệp trống ' 'svn up --set-depth = infinity filename' ' meld filename filename.save' – Mac

0

Chỉ cần có cùng một vấn đề và tôi đã sử dụng giao diện điều khiển khách hàng để đối phó với nó:

  1. Backup files
  2. file Xóa từ repo bởi svn rm filename
  3. Commit nó
  4. Sao chép tập tin trở lại từ việc sử dụng dự phòng svn add filename
  5. Cam kết số
Các vấn đề liên quan