SVN (Subversion) Sự cố “Tệp được lập lịch để bổ sung, nhưng bị thiếu” - Sử dụng Phiên bản


94

Tôi đang sử dụng Phiên bản cho SVN.

Tôi cố gắng cam kết và nhận được thông báo này:

Cam kết không thành công (chi tiết sau): '/Users/mike/Sites/mysite.com/astss-cvsdude/Trunk/cart/flashfile.swf' được lên lịch để bổ sung, nhưng bị thiếu

Tôi cho rằng điều này là do tôi đã thêm tệp vào repo, và sau đó xóa chúng qua hệ thống tệp.

Tôi muốn nó chỉ cần ghi lại thay đổi của tôi và áp dụng thay đổi đó vào repo.

Làm sao để tôi có được xung quanh này?

Câu trả lời:


120

Tôi không chắc bạn đang cố gắng làm gì: Nếu bạn đã thêm tệp qua

svn add myfile

bạn chỉ yêu cầu svn đưa tệp này vào kho lưu trữ của bạn khi bạn thực hiện lần cam kết tiếp theo . Không có thay đổi nào đối với kho lưu trữ trước khi bạn nhập

svn commit

Nếu bạn xóa tệp trước khi cam kết, svncó tệp trong hồ sơ của nó (vì bạn đã thêm nó) nhưng không thể gửi nó đến kho lưu trữ vì tệp không còn tồn tại.

Vì vậy, hoặc bạn muốn lưu tệp trong kho lưu trữ và sau đó xóa nó khỏi bản sao đang làm việc của bạn: Trong trường hợp này, hãy cố gắng lấy lại tệp của bạn (từ thùng rác?), Thực hiện cam kết và xóa tệp sau đó thông qua

svn delete myfile
svn commit

Nếu bạn muốn hoàn tác addvà chỉ cần ném tệp đi, bạn có thể

svn revert myfile

yêu cầu svn(trong trường hợp này) hoàn tác Thao tác bổ sung.

BIÊN TẬP

Xin lỗi, tôi không biết rằng bạn đang sử dụng ứng dụng khách GUI "Phiên bản" cho Max OSX. Vì vậy, hãy thử hoàn nguyên thư mục chứa bằng GUI hoặc nhảy xuống nước lạnh và kích hoạt trình bao lệnh Mac ẩn của bạn :-) (nó được gọi là "Terminal" trong OSX tiếng Đức, không biết làm thế nào để đưa nó lên trong tiếng Anh phiên bản...)


2
Vấn đề ở đây là anh ta sử dụng GUI. Nếu anh ta vẫn có thể sử dụng dòng lệnh, anh ta có thể chỉ svn rmtệp ngay cả khi nó không tồn tại trong thư mục.
Pikrass

Được rồi, tôi không biết về ứng dụng khách "Phiên bản" cho OSX. Dù sao thì anh ta cũng có thể sử dụng "hoàn nguyên", phải không? Điều đó sẽ hoạt động với TortoiseSVN trên Windows.
MartinStettner

svn dọn dẹp và svn rms sau ... Cảm ơn sự giúp đỡ của bạn guys. Có cách nào để nói với svn, "nhìn này, tôi đã thêm một số tệp thông qua trình quản lý tệp mặc định của hệ điều hành của tôi, và ngay bây giờ, những thứ trong thư mục này, là những gì tôi muốn trạng thái hiện tại của kho này là ... bây giờ hãy để nó xảy ra ... đừng cho tôi biết tôi có thể và không thể làm gì với những tệp này, nhưng vâng, hãy theo dõi tất cả cho tôi. "?
Mike

1
An svn add *tự động thêm tất cả các tệp mới, chưa được phiên bản, svn commitngay lập tức lưu những thay đổi này vào kho lưu trữ. Afaik không có hoạt động phổ biến nào để xóa, vì vậy nếu xóa tệp, bạn phải gọi svn rmthủ công.
MartinStettner

Chỉ FYI, tôi cũng gặp vấn đề này và svn rm, ngay cả với --forcenó không hoạt động - nó nói does not exist. Vì vậy, svn revertlà điều chính xác cần làm ở đây.
Michel Müller

24

Tôi đã gặp vấn đề tương tự với các Phiên bản hiển thị cùng một thông báo. Tôi chỉ cần nhấp chuột phải vào các tệp vi phạm và chọn 'Hoàn nguyên ...' từ menu chuột phải và tất cả đều tốt.

Về cơ bản Phiên bản (thực ra là Subversion) nghĩ rằng bạn vẫn muốn thêm tệp, nhưng nó không thể tìm thấy nó vì bạn đã xóa nó trong hệ thống tệp. Tùy chọn Hoàn nguyên yêu cầu Subversion quên việc thêm nó.


Tôi gặp phải lỗi này vì tôi đã xóa một thư mục khỏi hệ thống phân cấp ứng dụng. Tôi vừa thêm thư mục trống có cùng tên và nó đã hoạt động.
Yogi

10

Thêm một tệp, rồi xóa nó là một loại thao tác được coi là một lỗi - và vì vậy SVN đang cho bạn biết. Bạn đã yêu cầu nó mong đợi một số dữ liệu tệp và sau đó không cung cấp nó khi bạn cam kết, đèn đỏ nhấp nháy và còi báo động tắt!

Câu trả lời là hoàn tác việc thêm của bạn, hoặc cam kết tệp và sau đó sử dụng 'svn rm' để xóa nó khỏi hệ thống tệp và kho lưu trữ.


Tôi nhận được điều này từ Xcode nơi tôi thêm tệp và đã làm sai hoặc điều gì đó và yêu cầu Xcode xóa (chuyển vào thùng rác). Thật không may Xcode lá nó trong trạng thái này và không làm rm từ svn cho tôi mặc dù nó không xóa các tập tin ...
chadbag

3

Điều này đã giải quyết vấn đề tương tự của tôi. Tôi đã sử dụng nó để hoàn nguyên các thay đổi, sau đó tôi thêm mọi thứ và cam kết các thay đổi trong thiết bị đầu cuối với

svn add folder_path/*
svn commit -m "message"

2

Tránh sử dụng Xcode để đổi tên tệp trong tham chiếu thư mục. Nếu bạn đổi tên tệp bằng Xcode, tệp đó sẽ được đánh dấu để cam kết. Nếu sau đó bạn xóa nó trước khi cam kết, bạn sẽ gặp phải lỗi này.


0

Tôi vừa xóa tệp từ bên trong VS, sau đó từ 'Repository Explorer', tôi đã sao chép tệp vào bản sao đang hoạt động.


0

Nếu bạn đang sử dụng TortoiseSVN…

Từ cửa sổ cam kết của bạn trong phần "Thay đổi được thực hiện", bạn có thể chọn tất cả các tệp vi phạm, sau đó nhấp chuột phải và chọn xóa. Hoàn thành cam kết và các tệp sẽ bị xóa khỏi các bổ sung đã lên lịch.

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.