xin lỗi vì đã sử dụng hết dung lượng chỉ để nhắc lại câu trả lời đã được đưa ra trước đó - nhưng đây là điều tôi luôn gặp rắc rối.
Giả sử tôi đã cập nhật các tệp cục bộ lên bản sửa đổi mới nhất là 854. Sau đó, tôi muốn nhận bản sửa đổi cũ hơn - phiên bản của tệp từ một vài bản sửa đổi trước đó, giả sử bản sửa đổi 851.
Sao chép sẽ hoạt động:
svn copy -r 851 svn+ssh://<repository URL>/l3toks.dtx ./l3toks.dtx
.. tuy nhiên, tôi không thể bận tâm grepping cho URL repo :)
Cập nhật dường như có thể hoạt động:
svn up -r 851 ./l3toks.dtx
... tuy nhiên, nó cũng đánh dấu bản sao cục bộ là "vừa mới kiểm tra", hay đúng hơn là "giống như sửa đổi trực tuyến" (nghĩa là trong Rùa / RabbitVCS bạn có dấu kiểm OK màu xanh lá cây) - có nghĩa là bạn không thể làm svn ci -m "rolled back to r 851"
: đơn giản vì địa phương subversion
thực thi sẽ không nhận thấy bất kỳ thay đổi cục bộ nào và sẽ không bị làm phiền khi tải lên bất cứ thứ gì lên kho lưu trữ trực tuyến.
Và, như đã trả lời, hợp nhất ngược hoạt động - nhưng trong trường hợp này, người ta không nên dựa vào cú pháp phím tắt; nhưng cụ thể là:
svn merge -r HEAD:851 l3toks.dtx
--- Reverse-merging r854 through r852 into 'l3toks.dtx':
U l3toks.dtx
Tôi phải thừa nhận - Tôi sẽ không bao giờ hiểu câu "Hợp nhất ngược r854 đến r852 thành tệp " có nghĩa là " Chỉ cần nhận r851 tệp của bạn và ghi đè lên bất cứ điều gì bạn đã có trước đây - và nó được đánh dấu là khác với sửa đổi trực tuyến mới nhất, vì vậy bạn có thể kiểm tra lại trực tuyến dưới dạng sửa đổi 'rollback' mới ", nhưng tôi đoán (và hy vọng :)) đó là những gì nó làm :)
Sau này, người ta có thể sử dụng svn diff
để đảm bảo nhanh chóng nếu chúng tôi nhận được bản sửa đổi phù hợp tại địa phương; và đồng thời, tệp sẽ được đánh dấu bằng dấu chấm than màu đỏ trong Rùa / RabbitVCS (nghĩa là khác với phiên bản cam kết mới nhất) và vì vậy svn ci -m "rolled back to r 851"
có thể chạy lần này.
Ngoài ra, lưu ý rằng, cuối cùng, bạn sẽ thay đổi quyết định sau khi hợp nhất ngược lại ( tức là dù sao bạn cũng muốn tiếp tục sửa đổi bản sửa đổi mới nhất, ở đây 854 - sau khi bạn quay trở lại 851 cục bộ, nhưng vẫn chưa cam kết ), bạn không nên sử dụng svn up
, vì đơn giản là nó sẽ nói rằng "Đã sửa đổi 854 "; sử dụng thay thế svn revert --recursive .
hoặc tương tự ...
Chúc mừng!
Tham khảo: Cách khôi phục các thay đổi bằng Subversion - Jacob Wright - Flex, AIR, PHP, v.v.
EDIT: ... và rõ ràng, hiệu quả chính xác như svn merge -r HEAD:851 l3toks.dtx
, có thể đạt được với:
svn export -r 851 l3toks.dtx
A l3toks.dtx
Export complete.