2010-09-27 47 views
8

tôi nhầm lẫn cam kết thay đổi sai lầm khi tập tin, vì lợi ích của một ví dụ đơn giản của chúng ta hãy gọi nó foo.txt:svn: quay trở lại phiên bản trước

foo.txt, rev 300 (đúng):

E = mc^2 

foo.txt, rev 301 (không chính xác):

E = mc^3 

Làm cách nào để cam kết rev 300 cho cam kết tiếp theo? Nếu tôi cập nhật foo.txt thành rev 300, tôi nhận được đúng tệp nhưng trạng thái của nó là chính xác & không yêu cầu phải được cam kết.

LƯU Ý: Chỉ foo.txt mà tôi muốn hoàn nguyên. Các sửa đổi khác trong rev 301 là quan trọng và tôi cần phải giữ chúng.

+2

có thể trùng lặp của [Cách tốt hơn để hoàn nguyên về bản sửa đổi SVN trước đó của tệp?] (Http://stackoverflow.com/questions/345997/better-way-to-revert-to-a-previous -svn-revision-of-a-file) –

+0

Điều đó dường như không hiệu quả đối với tôi; hoặc là nó khác hoặc tôi đang làm gì đó sai. –

+0

oh chờ đã, tôi đã bỏ lỡ "-" trước số rev #. Vâng, đó là một bản sao. –

Trả lời

15
svn merge -r301:300 foo.txt 
svn commit -m 'revert foo.txt to 300' 
2
svn merge -c-301 . 
svn commit -m "Reverting commit 301" 
+0

Bạn không nên hoàn tác r301? và tôi nghĩ đó là chữ thường '-c' –

+0

Sander: True, fixed :) – harald

9

Nếu bạn đang sử dụng TortoiseSVN, điều này thật đáng ngạc nhiên. Chỉ cần xem nhật ký cho tệp đó, nhấp chuột phải vào bản sửa đổi 300 và chọn hoàn nguyên về bản sửa đổi này (đây là một hoạt động cục bộ). Sau đó, bạn có thể cam kết tệp cục bộ của mình là 302.

Tùy chọn, nếu điều này xảy ra khá lâu trước đây, bạn có thể chọn hoàn nguyên thay đổi từ bản sửa đổi này. Điều đó sẽ chỉ hoàn nguyên các thay đổi đã xảy ra với lần đăng ký đó (bạn thực hiện điều này trên 301).

+0

Không, tôi đã thử điều đó. Nó cho phép tôi trở lại bản sửa đổi đó nhưng không đánh dấu tệp là dơ bẩn. –

+0

Nên làm việc, chăm sóc chọn "hoàn nguyên" không "cập nhật". Đôi khi các biểu tượng lớp phủ không hiển thị trạng thái thực. Trên "commit", bạn sẽ thấy tập tin bị bẩn trong danh sách. – jdehaan

+1

@ Jason: Rất tiếc. Thời gian qua tôi đã phải hoàn nguyên một bản sửa đổi, tôi đã làm chính xác những gì JoshD đã nói và nó hoạt động tốt. –

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