Svn có lệnh `Revert-all` không?


159

Nếu tôi muốn loại bỏ tất cả các thay đổi của mình và quay lại mã có trong kho lưu trữ, tôi thực hiện như sau:

$ rm -fr *
$ svn up

Điều này là đủ dễ dàng, nhưng tôi tự hỏi nếu có một lệnh duy nhất sẽ thực hiện điều này, đại loại như:

$ svn revert-all

Ai sử dụng -fr thay vì -rf? Có một lý do nó phát âm là rimraf, không phải rimfer.
Jimmy Hoffa

@JimmyHoffa Lý do là gì?
Eric Wilson

3
hội nghị Wilson! Công ước, thưa ông! Không có kỷ luật và truyền thống văn hóa của chúng tôi, chúng tôi chỉ là những kẻ man rợ! Em nói, chúc một ngày tốt lành!
Jimmy Hoffa

Câu trả lời:


306

Bạn có thể làm:

svn revert -R .

Điều này sẽ không xóa bất kỳ tập tin mới không thuộc kiểm soát phiên bản. Nhưng bạn có thể dễ dàng viết một kịch bản shell để làm điều đó như:

for file in `svn status|grep "^ *?"|sed -e 's/^ *? *//'`; do rm $file ; done

2
Chào mừng bạn đến với SO và cảm ơn vì đã trả lời thấu đáo, vì svn revert -Rkhông tương đương với hai lệnh tôi đã đưa ra.
Eric Wilson

1
Để xóa tất cả các tệp không thuộc kiểm soát phiên bản trong dòng lệnh Windows, câu trả lời là ở đây: stackoverflow.com/a/1502365/1385429
Christiaan Westerbeek

Người dùng mashzo đã chỉ ra (trong câu trả lời đã bị xóa) rằng -Rcờ có thể cần thiết để đảm bảo rằng các thư mục không được đảo ngược cũng bị xóa, như là một phần của việc loại bỏ tất cả các thay đổi. Cân nhắc kết hợp điều này vào câu trả lời của bạn, nếu điều đó có vẻ phù hợp với bạn.
Jeremy Banks

27

Có một lệnh

svn revert -R .

HOẶC
bạn có thể sử dụng --depth = infinite, thực tế giống như trên:

svn revert --depth=infinity 

svn revertvốn dĩ rất nguy hiểm, vì toàn bộ mục đích của nó là vứt bỏ dữ liệu, cụ thể là những thay đổi không được cam kết của bạn. Khi bạn đã hoàn nguyên, Subversion không cung cấp cách nào để lấy lại những thay đổi không được cam kết đó


7
-Rtương đương với--depth=infinity
Michael Burr

4
Cmd "svn Revert -R" của bạn bị thiếu thư mục hiện tại trong cú pháp .. nó phải là "svn Revert -R."
Bồ tát

Hiện tại, bài đăng có vẻ như -Rloại trừ lẫn nhau --depth-infinitykhi không.
ahnbizcad

@ahnbizcad Không phải hai từ đồng nghĩa chính xác đó sao?
Nyerguds

Đó là quan điểm của tôi. Câu trả lời này làm cho hai âm thanh khác nhau khi không. "loại trừ lẫn nhau" = trái ngược với từ đồng nghĩa
ahnbizcad

17

Sử dụng công tắc đệ quy --recursive (-R)

svn revert -R .

0

Để hoàn nguyên các tệp đã sửa đổi:

sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'

Tôi nghĩ rằng sự thay đổi định dạng của tôi đại diện cho những gì bạn muốn. Phục hồi nếu bạn không thích nó. Và cảm ơn, thật tốt khi nhớ lại những ngày xưa tồi tệ của SVN ... :)
Eric Wilson
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.