SVN: Thư mục đã được kiểm soát phiên bản nhưng không vào?


111
mark@mark-ubuntu:~/myproject$ svn stat
?       runserver.sh
?       media/images/icons
?       apps/autocomplete
mark@mark-ubuntu:~/myproject$ svn add apps/autocomplete
svn: warning: 'apps/autocomplete' is already under version control

svn statcho biết nó không được kiểm soát phiên bản, vì vậy tôi cố gắng thêm nó vào, và sau đó nó cho tôi biết nó là như vậy. Khi tôi thực hiện svn ci, nó không được trang bị và không hiển thị khi tôi cố gắng duyệt qua kho lưu trữ trực tuyến.

Làm cách nào để tôi cam kết?


3
Thư mục "autocomplete" có chứa thư mục con ".svn" bị hỏng không? Ngoài ra, bạn đã dọn dẹp? :)
bzlm

1
Bạn đã thử một: svn dọn dẹp, chỉ là một cú đâm trong bóng tối?
shaunhusain

Tôi gặp sự cố này khi sao chép một thư mục đã đăng ký sang một thư mục khác trong dự án của mình. Xóa các tác phẩm .svn cũ!
paulrehkugler

Tôi mạnh mẽ thêm các tập tin: svn add --force /path/to/file, hoặc nếu bạn muốn thêm thư mục đệ quy: svn add --depth infinity --force /path/to/directory.
joker

Câu trả lời:


162

Sao chép thư mục có vấn đề vào một số thư mục sao lưu và xóa nó khỏi thư mục làm việc SVN của bạn. Hãy nhớ xóa tất cả .svncác thư mục ẩn khỏi thư mục đã sao chép.

Bây giờ hãy cập nhật dự án của bạn, dọn dẹp và cam kết những gì còn lại. Bây giờ di chuyển thư mục của bạn trở lại thư mục làm việc, thêm nó và cam kết. Hầu hết thời gian cách giải quyết này hoạt động, có vẻ như về cơ bản SVN đã nhầm lẫn ...

Cập nhật: trích dẫn bình luận của @Mark :

Không cần phải di chuyển thư mục xung quanh, chỉ cần xóa .svnthư mục và sau đó thêm svn-nó hoạt động.


52
Không cần phải di chuyển thư mục xung quanh, chỉ cần xóa .svnthư mục và sau đó thêm svn-nó hoạt động.
mpen

6
+1 cho ngày của tôi ;-) Như Mark đã nói, đối với tôi, chỉ cần xóa các thư mục .svn trong thư mục có vấn đề là đủ.
rturrado

23
Cảm ơn đã xác định SVN là BS hoàn toàn.
Steve K

1
bây giờ mà bạn chỉ có svn trong thư mục hàng đầu, bạn không thể làm BS này, nếu siêu dữ liệu bị hỏng, bạn có bánh mì nướng
Kalpesh Soni

bỏ chọn thư mục mẹ (apps / autocomplete) khỏi danh sách nếu đã cam kết
khaled_webdev

20

Tôi đã gặp sự cố tương tự sau khi thêm cây thư mục chứa các thư mục .svn (vì nó là svn: bên ngoài trong môi trường nguồn của nó): trạng thái svn cho tôi biết "?", Nhưng khi cố gắng thêm nó, nó là "rồi dưới sự kiểm soát của phiên bản ”.

Vì không có thư mục được phiên bản nào khác, tôi đã

find . -mindepth 2 -name '.svn' -exec rm -rf '{}' \;

để loại bỏ các thư mục .svn sai; sau khi làm điều này, tôi đã có thể thêm thư mục mới.

Ghi chú :

  • Nếu chứa các thư mục được phiên bản khác, biểu thức find phải được thay đổi để cụ thể hơn
  • Nếu không chắc chắn, trước tiên hãy bỏ qua phần "-exec ..." để xem phần nào sẽ bị xóa

Mặc dù câu trả lời này hiệu quả với tôi, nhưng lần đầu tiên tôi sử dụng nó, tôi đã ở nhầm thư mục và khiến mọi thứ trở nên khá lộn xộn. Có vẻ như một nơi tốt để nhắc nhở mọi người "đo hai lần, cắt một lần" tức là kiểm tra kỹ các chi tiết trước khi chạy cái này.
BishopZ

Tôi khuyên bạn nên chọn 'nếu không chắc chắn' để ... -exec echo {} \;bạn có thể làm cho công tắc -exec của mình hoạt động tốt.
FlipMcF

cũng khuyên bạn nên thêm a -type dvào tìm kiếm. Hãy gọi tôi là kén chọn cho đến khi bạn rm -rfđi quá xa. Khác với nitpicks của tôi - tôi nghĩ đây là câu trả lời chính xác.
FlipMcF


14

(1) Điều này vừa xảy ra với tôi, và tôi nghĩ thật thú vị khi nó xảy ra như thế nào . Về cơ bản, tôi đã sao chép thư mục vào một vị trí mới và sửa đổi nó, quên rằng nó sẽ mang theo tất cả các thư mục .svn ẩn. Một khi bạn nhận ra nó xảy ra như thế nào, bạn sẽ dễ dàng tránh được trong tương lai.

(2) Xóa các thư mục .svn là giải pháp, nhưng bạn phải thực hiện một cách đệ quy tất cả các cách trên cây thư mục. Cách dễ nhất để làm điều đó là:

find troublesome_folder -name .svn -exec rm -rf {} \;

3

Bạn đã thử thực hiện dọn dẹp svn chưa?


2
Ive cũng gặp phải vấn đề này. Sau đó đã thử svn cleanupvà nó không giúp được gì.
imacake

3

Kiểm tra thư mục 'apps / autocomplete / .svn'. Di chuyển nó đến một nơi an toàn (trong trường hợp bạn cần khôi phục nó vì cách này không hoạt động) và xem liệu cách đó có khắc phục được sự cố không.


0

Tôi đã tìm thấy giải pháp trong trường hợp bạn đã cài đặt Eclipse (Luna) với SVN Client JavaHL (JNI) 1.8.13 và Tortoise :

Mở Eclipse: Trước tiên hãy thử thêm mô-đun dự án / maven vào Kiểm soát phiên bản (Dự án -> Trình đơn ngữ cảnh -> Nhóm -> Thêm vào Kiểm soát phiên bản)

Bạn sẽ thấy thông báo lỗi Eclipse sau:

org.apache.subversion.javahl.ClientException: Mục đã tồn tại svn: 'PathToYouProject' đã được kiểm soát phiên bản

Sau đó, bạn phải mở thư mục không gian làm việc của mình trong trình thám hiểm, chọn dự án của bạn và giải quyết nó qua Tortoise (Dự án -> Trình đơn ngữ cảnh -> TortoiseSVN -> Giải quyết)

Bạn sẽ thấy hộp thoại thông báo sau: " Danh sách tệp trống "

Nhấn hủy và làm mới dự án trong Eclipse. Dự án của bạn sẽ được kiểm soát phiên bản một lần nữa.

Thật không may, không thể giải quyết nhiều dự án cùng một lúc ... bạn không cần phải xóa bất cứ thứ gì nhưng tùy thuộc vào quy mô dự án của bạn, nó có thể hơi tốn công.


0

Đối với tôi thực hiện cập nhật svn, tiếp theo là cam kết svn đã hoạt động. Không có thư mục .svn nào hiện diện trong thư mục không thêm được.

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.