2008-09-19 41 views
50

Khi tôi cam kết tôi nhận được lỗi này từ Subversion:Làm cách nào để khắc phục lỗi MKCOL Subversion này?

bash-2.05b$ svn commit -m "testing subversion, still" 
Adding   baz 
svn: Commit failed (details follow): 
svn: MKCOL of '/viper/!svn/wrk/6b9bcd38-b2fe-0310-95ff-9d1a44098866/sandboxes/ohammersmith/trunk/baz': 405 Method Not Allowed (http://svn.example.com) 
+0

Khi nó xảy ra với tôi đó là vì thay vì làm một baz mkdir, tôi đã làm một cp -pr ./foo/ ./baz --thereby nhận ./baz/.svn/ dir chứa thông tin SVN cho thư mục foo. Để sửa chữa nó, tôi chỉ cần rm-rf baz/.svn và sau đó đã có thể svn thêm, svn ci ... – MarkHu

Trả lời

79

này xảy ra khi bạn đã thêm một thư mục mà người khác cũng đã được thêm vào và đã cam kết. Các thông báo lỗi trên một cam kết thực sự là khó hiểu, nhưng nếu bạn làm một svn up thay vào đó bạn sẽ thấy thông báo này:

bash-2.05b$ svn up 
svn: Failed to add directory 'baz': object of the same name already exists 

Để giải quyết vấn đề này, loại bỏ thư mục của bạn (hoặc di chuyển nó sang một bên) và làm một svn update để lấy phiên bản trên máy chủ và thực hiện lại các thay đổi của bạn.

Theo nguyên tắc chung, hãy đảm bảo thực hiện svn update vì các thông báo lỗi có xu hướng hữu ích hơn.

+8

Đôi khi vấn đề phát sinh nhưng một bản cập nhật là vô ích vì Subversion đủ kỳ quặc không cố gắng lấy thư mục từ kho; điều này thường xảy ra khi sử dụng Tortoise SVN. Sau đó, giải pháp là để truy cập vào kho lưu trữ, ví dụ: bằng cách sử dụng Tortoise SVN "Repo-browser", và để xóa thư mục. Sau đó, bạn sẽ có thể thêm và cam kết dữ liệu cục bộ của bạn vào kho lưu trữ. – Pragmateek

+1

Pragmateek - có thể nguy hiểm nếu bạn không phải là người duy nhất làm việc trên các tệp trong thư mục đó. Cách an toàn nhất là như Otto đề xuất. Di chuyển thư mục cục bộ sang một bên, cập nhật bản sao cục bộ của bạn (hoặc thanh toán bản sao hoàn toàn mới nếu bản cập nhật không hoạt động), sau đó sao chép thư mục của bạn lên trên đầu (để nhận bất kỳ thay đổi nào). SVN sau đó sẽ nhận các thay đổi và bạn sẽ không mất tất cả công việc mà mọi người khác đã thực hiện đối với thư mục đó kể từ lần cập nhật cuối cùng của bạn. –

+0

Cách sửa lỗi trong MS Windows? –

9

Điều này xảy ra khi bạn đã thêm thư mục mà người khác cũng đã thêm và đã cam kết.

Đây là điều để chỉ ra xung đột nhưng ở cấp Thư mục (chỉ để hiểu).

Để giải quyết này, chỉ cần làm svn update trước khi cam kết thay đổi của bạn

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