2011-01-08 37 views
12

Tôi có chế độ xem ClearCase với một thư mục và hai tệp. Tôi kiểm tra các thư mục, loại bỏ một tập tin và kiểm tra các thư mục trở lại in Tôi còn lại với một thư mục và một tập tin. Có cách nào để lấy lại tập tin của tôi không? Tôi đang sử dụng bộ công cụ Windows tiêu chuẩn, bao gồm cleartool.Hoàn tác xóa tệp trong ClearCase

+0

[Cách khôi phục phần tử đã được đặt tên] (http://www-01.ibm.com/support/docview.wss?uid=swg21149206) – KyleMit

Trả lời

21

Có, bạn có thể lấy lại tệp. Đây là một tính năng quan trọng của ClearCase (và một cuộc sống tiết kiệm nhân dịp).

Giả sử thư mục của bạn là /vobs/somevob/somedir. Phiên bản của thư mục có hai tệp trong đó là /main/3; do đó, phiên bản có một tệp là /main/4. Tệp bị xóa là /vobs/somevob/somedir/crucial. Giả sử ct là một bí danh cho cleartool, sau đó bạn làm:

cd /vobs/somevob/somedir 
ct co -c 'Recover file crucial' . 
ct ln [email protected]@/main/3/crucial . 
ct ci -nc . 

Dòng đầu tiên có nghĩa là tôi không cần phải gõ đường dẫn đến thư mục trong ba lệnh khác; nếu không, nó là tùy chọn. Dòng thứ hai kiểm tra thư mục để nó có thể được chỉnh sửa. Dòng cuối cùng kiểm tra trong thư mục đã sửa đổi. Dòng thứ ba là nơi sự kỳ diệu xảy ra ...

dòng ct ln [email protected]@/main/3/crucial . xác định các tập tin crucial đã được nhìn thấy trong phiên bản /main/3 của thư mục . và liên kết nó vào thư mục hiện hành (phiên bản kiểm tra ra khỏi thư mục). Phiên bản tệp bạn thấy sẽ là tệp được chọn bởi cspec của bạn, nhưng tệp đúng nằm trong chế độ xem (giả sử bạn thực tế nhận được /vobs/somevob/[email protected]@/main/5 bằng cspec của bạn).

(Lưu ý rằng bạn không bị giới hạn làm lại liên kết, bạn có thể khôi phục tệp sau 10 năm và 20 phiên bản nếu cần. Mặc dù bạn có thể liên kết tệp với hai thư mục cùng một lúc, tức là cao unrecommended; sử dụng một liên kết tượng trưng thay vì bạn có thể phục hồi một tập tin đã xóa vào một thư mục khác nhau từ vị trí được biết đến cuối cùng của nó)

+1

Bạn - đúng nghĩa đen - một trình tiết kiệm cuộc sống, cảm ơn! – Jono

+0

Tôi vừa mới sử dụng nó và nó hoạt động kỳ quặc. Cảm ơn! – ahoka

8

để thêm vào của Jonathan trả lời:

  • bạn có thể làm tất cả các bước ông mô tả trong.. một cách đồ họa, thông qua cây phiên bản của thư mục mẹ: hợp nhất từ phiên bản vẫn tham chiếu tệp của bạn tới phiên bản cho phiên bản hiện tại (phiên bản này không còn tham chiếu đến tệp của bạn nữa).
    Thực hiện hợp nhất "đồ họa" (chọn tùy chọn "hợp nhất đồ họa")
    Sau đó, bạn có thể chọn tệp bạn muốn khôi phục.

  • bạn cũng có thể loại bỏ ảnh hưởng của checkin cuối cùng của bạn (vẫn cho thư mục mẹ) thông qua một merge -delete:

Thận trọng: Nếu có nhiều hơn một sự thay đổi đã được thực hiện cho các thư mục trong phiên bản này, những thay đổi đó cũng có thể được hoàn nguyên. Sử dụng lệnh cleartool lshistory để xác định những thay đổi khác đã được thực hiện cho phiên bản thư mục đó.

  1. Xác định phiên bản trong đó phần tử là rmnamed.
  2. Sử dụng cleartool merge -delete để xóa các thay đổi được áp dụng trong phiên bản thư mục đó.

    Ví dụ:

    cleartool merge -to . -delete -version \main\17 
    
  3. Nếu sự thay đổi chỉ thực hiện trong phiên bản này là việc loại bỏ các phần tử mong muốn, sự thay đổi sẽ tự động được thực hiện (xem khoảng cách thận trọng).

0

Để thêm vào các ý kiến ​​trước đó, tôi sẽ đề nghị rằng thay vì "loại bỏ" các yếu tố từ ClearCase, chỉ cần rmname họ. Bằng cách này, bạn không thực sự xóa các tệp nhưng ẩn chúng. Bạn có thể sử dụng lệnh rmname một lần nữa để truy xuất (bỏ ẩn) các tệp trong tương lai.

+1

Lệnh 'ct rm' là viết tắt của' ct rmname'. Nếu thao tác xóa tệp đã là 'ct rmelem', thì việc khôi phục sẽ không thể thực hiện được bằng cách sử dụng cơ chế được phác thảo. Không sử dụng 'ct rmelem' ngoại trừ cực đoan. –

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