2011-11-15 35 views
142

Nếu tôi muốn vứt bỏ tất cả các thay đổi của tôi, và trở về mã đó là trên các kho lưu trữ, tôi thực hiện như sau:Liệu svn có lệnh `hoàn nguyên-tất cả`?

$ rm -fr * 
$ svn up 

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

$ svn revert-all 
+0

Ai sử dụng -fr thay vì -rf? Có một lý do nó được phát âm là rimraf, chứ không phải rimfer. –

+0

@JimmyHoffa Lý do là gì? –

+1

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

Trả lời

275

Bạn có thể làm:

svn revert -R . 

này sẽ không xóa bất kỳ tệp mới nào không thuộc quyền 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 để làm điều đó như:

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

Chào mừng bạn đến với SO và cảm ơn câu trả lời kỹ lưỡng, vì 'svn revert -R' không tương đương với hai lệnh mà tôi đã cung cấp. –

+1

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

+0

Người dùng [mashzo] (http://stackoverflow.com/users/3745505/ mashzo) chỉ ra (trong một câu trả lời đã bị xóa) rằng cờ '-R' có thể cần thiết để đảm bảo rằng các thư mục không phiên bản cũng bị xóa, như một phần của việc bỏ đi * tất 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. –

23

có một lệnh

svn revert -R . 

HOẶC
bạn có thể sử dụng --depth = vô cực, mà thực sự là tương tự như trên:

svn revert --depth=infinity 

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

+6

'-R' tương đương với' --depth = infinity' –

+4

cmd của bạn " svn revert -R "thiếu thư mục hiện tại trong cú pháp .. nó phải là" svn revert -R ". – boddhisattva

+0

Có chỉnh sửa câu trả lời của tôi cho phù hợp. :-) –

17

Dùng công tắc đệ quy --recursive (-R)

svn revert -R . 
0

Để trở lại tập tin sửa đổi:

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

Tôi nghĩ rằng thay đổi định dạng của tôi đại diện cho những gì bạn muốn. Rollback nếu bạn không thích nó. Và cảm ơn, nó là tốt để nhớ những ngày cũ xấu của SVN ... :) –

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