Hoàn tác svn thêm mà không hoàn nguyên các chỉnh sửa cục bộ


157

Tôi vô tình chạy svn add *và thêm một loạt các tập tin không nên có trong kho lưu trữ. Tôi cũng có các chỉnh sửa cục bộ trong một số tệp mà tôi muốn giữ. Có một cách đơn giản để hoàn tác svn addmà không hoàn nguyên các chỉnh sửa cục bộ? Gợi ý chính tôi thấy trên Google là svn revert, được cho là hoàn tác các chỉnh sửa cục bộ.

Câu trả lời:


282

Đó sẽ là:

svn rm --keep-local

Điều tương tự cũng xảy ra với tôi. :-P

Nhiều người đã nhận xét rằng bạn nên sử dụng:

svn rm --keep-local FILENAME

để áp dụng lệnh trên một hoặc nhiều tệp, thay vì tất cả mọi thứ, có thể có tác dụng phụ ngoài ý muốn.


1
Điều này không có tác dụng đối với tôi. Tôi đã chạy mã như trên (bao gồm cả thời gian theo dõi) từ thư mục cơ sở. Không chắc chắn nếu tôi thiếu một cái gì đó.
zzz

8
Lưu ý rằng bạn phải thêm tên tệp vào lệnh để có thể svn rm --keep-local FILENAME. Có FILENAMEthể sử dụng * để khớp nhiều tệp (nếu bạn đủ may mắn để có mẫu).
Adam Badura

4
cảnh báo! - sử dụng lệnh này trong khi sử dụng svn externals cũng loại bỏ tất cả các phần bên ngoài được đính kèm ...
kostja

2
Nếu bạn cam kết điều này, liệu cam kết có bao gồm việc xóa tệp được đề cập khỏi repo không?
jwg

1
//, tôi có cùng câu hỏi với jwg. Tôi đã thực hiện một số chỉnh sửa đối với tệp do SVN kiểm soát. Tôi muốn giữ những chỉnh sửa đó tại địa phương. Tuy nhiên, tôi không muốn xóa hoàn toàn tệp khỏi kho lưu trữ. Tôi chỉ không muốn đẩy các chỉnh sửa cục bộ của mình vào tệp.
Nathan Basan

34

Nếu các tệp đó nằm trong một thư mục chưa được cam kết, bạn có thể xóa toàn bộ nội dung thư mục khỏi cam kết tiếp theo bằng cách thực hiện:

svn delete --keep-local /path/to/directory

Tuy nhiên, nếu các tệp đó đã có trong kho lưu trữ và hiện có các thay đổi mà bạn không muốn cam kết, bạn có thể cam kết phần còn lại của các tệp bằng cách sử dụng thay đổi:

svn changelist somename /file/to/be/committed
svn commit --changelist somename

7

Bạn có thể sửa thanh toán của mình theo cách sau:

  1. Sao lưu các tập tin cục bộ của bạn
  2. Hoàn nguyên kiểm tra SVN
  3. Khôi phục các tập tin

-

rsync -av --exclude .svn/ YOURDIR/ YOURDIR.bak
svn revert -R YOURDIR
rsync -av YOURDIR.bak/ YOURDIR 

Lệnh cuối cùng luôn tạo một cấp thư mục bổ sung, tức là kết thúc bằng YOURDIR/YOURDIR/, mặc dù tôi nghĩ vấn đề nằm ở việc tạo lệnh sao lưu ban đầu YOURDIR.bak/YOURDIR/.
James

Để tránh điều đó rsync yêu cầu một dấu gạch chéo trên thư mục nguồn. Tôi chỉnh sửa câu trả lời.
Brice M. Dempsey

3

Tôi gặp vấn đề tương tự, tôi vô tình thêm một thư mục / thông qua svn addđó chứa các tệp nhị phân và tệp được biên dịch. Lệnh này thực sự xóa thư mục.

svn rm --force <directory-name>

Trong trường hợp của tôi, tôi không cần thư mục để xóa nó an toàn. Nếu bạn muốn giữ các tệp / thư mục lưu thì hãy đến một nơi trước khi áp dụng lệnh và sau khi sao chép chúng trở lại

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.