2012-05-14 13 views
5

Khi thư mục đã bị xóa bằng cách sử dụng cvs remove <dir>cvs commit, có cách nào dễ dàng để hoàn tác thay đổi - để khôi phục thư mục trong bản sao làm việc của tôi và trong kho lưu trữ không? Cho đến nay tôi chỉ có thể tìm thấy các gợi ý sẽ giúp ích nếu tôi chưa thực hiện cam kết, hoặc nếu đó là một tệp thay vì một thư mục. Nếu có thể, tôi muốn giữ lại lịch sử các nội dung của thư mục.Làm cách nào để khôi phục thư mục đã bị xóa khỏi CVS sau khi thực hiện thay đổi?

Trả lời

5

(Trả lời câu hỏi của riêng tôi như tôi figured it out.)

Để khôi phục thư mục bị xóa sau khi xóa đã được cam kết:

cvs update -d -R -j <rev2> -j <rev1> <dir> 

đâu:

<rev2> là phiên bản mà do cam kết xóa.

<rev1> là bản sửa đổi ngay trước rev2.

<dir> là thư mục đã xóa.

0

Giả sử bạn đã cam kết tệp, nhưng điều này đã phá vỡ một điều gì đó khủng khiếp. Dưới đây là cách hoàn tác cam kết của bạn:

Lấy số phiên bản từ sau cam kết. Bạn có thể sử dụng thẻ $ Id $ trong tệp hoặc trạng thái cvs. Giả sử phiên bản mới là 1.5. Lấy số phiên bản từ trước cam kết. Thông thường, điều này sẽ thấp hơn phiên bản hiện tại. Giả sử phiên bản cũ là 1.4. Bây giờ làm điều này:

cvs update -j 1.5 -j 1.4 filename 

cvs commit filename Trên đây là một ví dụ về một hợp nhất. Bạn đã hỏi cvs để có sự khác biệt giữa các phiên bản 1.5 và 1.4 và áp dụng chúng vào bản sao làm việc của bạn. Thứ tự của các số phiên bản là đáng kể - hãy suy nghĩ về nó như là loại bỏ các thay đổi, hoặc đi ngược lại trong lịch sử phiên bản.

+0

Như tôi đã nói trong câu hỏi, lời khuyên hoạt động cho các tệp không hữu ích, vì mục đã bị xóa là một thư mục. – bythescruff

+0

Câu trả lời từ bythescruff và Satya đã cứu tôi. Các tập tin trong thư mục tôi đã cố khôi phục tất cả đều có các bản sửa đổi khác nhau, vì vậy lần đầu tiên tôi khôi phục thư mục bằng cách sử dụng câu trả lời của bythescruff, sau đó khôi phục các tệp riêng lẻ bằng câu trả lời của Satya. Cám ơn hai bạn. – WileCau