2011-01-08 11 views
12

Ich habe eine ClearCase-Ansicht mit einem Ordner und zwei Dateien. Ich checke den Ordner aus, entferne eine Datei und überprüfe den Ordner wieder. Ich habe noch einen Ordner und eine Datei übrig. Gibt es eine Möglichkeit, meine Datei zurück zu bekommen? Ich verwende die Standard-Windows-Suite von Tools, die Cleartool enthalten.Rückgängig machen Datei in ClearCase löschen

+0

[So stellen Sie ein Element wieder her, das benannt wurde] (http://www-01.ibm.com/support/docview.wss?uid=swg21149206) – KyleMit

Antwort

21

Ja, es ist möglich, die Datei zurück zu bekommen. Dies ist ein wichtiges Merkmal von ClearCase (und gelegentlich ein Lebensretter).

Nehmen wir an, Ihr Verzeichnis ist /vobs/somevob/somedir. Die Version des Verzeichnisses mit zwei Dateien war /main/3; die Version mit einer Datei war daher /main/4. Die abgelegte Datei ist /vobs/somevob/somedir/crucial. Unter der Annahme, ct ist ein Alias ​​für cleartool, tun Sie dann:

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

Die erste Zeile bedeutet, dass ich auf den Weg in den anderen drei Befehle in das Verzeichnis nicht zu geben; Andernfalls ist es optional. Die zweite Zeile prüft das Verzeichnis, damit es bearbeitet werden kann. Die letzte Zeile prüft das geänderte Verzeichnis. Die dritte Zeile ist, wo die Magie geschieht ...

Die ct ln [email protected]@/main/3/crucial . Linie die Datei identifiziert crucial die /main/3 des Verzeichnisses . in Version gesehen wurde und verbindet sie mit dem aktuellen Verzeichnis (die ausgecheckt Version des Verzeichnisses). Die Dateiversion, die Sie sehen, wird von Ihrer cspec ausgewählt, aber die korrekte Datei befindet sich in der Ansicht (vorausgesetzt, Sie nehmen tatsächlich /vobs/somevob/[email protected]@/main/5 mit Ihrer cspec auf).

(Beachten Sie, dass Sie nicht nur eine Version zurück verlinken können; Sie können eine Datei nach 10 Jahren und 20 Versionen wiederherstellen, wenn Sie müssen. Sie können eine Datei gleichzeitig mit zwei Verzeichnissen verknüpfen hoch unrecommended, einen symbolischen Link verwenden, anstatt Sie könnten eine gelöschte Datei in ein anderes Verzeichnis von seiner letzten bekannten Position wiederherzustellen)

+1

Sie sind - im wahrsten Sinne des Wortes - ein Lebensretter, danke! – Jono

+0

Ich habe das gerade benutzt und es funktioniert merkwürdig. Vielen Dank! – ahoka

8

Jonathan Antwort hinzu:

  • Sie bei jedem Schritt tun können, beschreibt er.. Ein grafischer Weg, durch die Versionsstruktur des übergeordneten Verzeichnisses: Zusammenführen von der Version, die Ihre Datei immer noch auf die Version der aktuellen Version verweist (die Ihre Datei nicht mehr referenziert).
    Führen Sie eine Zusammenführung "grafisch" durch (wählen Sie die Option "Grafische Zusammenführung")
    Sie können dann die Datei auswählen, die Sie wiederherstellen möchten.

  • Sie auch die Wirkung Ihrer letzten checkin entfernen können (noch für das übergeordnete Verzeichnis) über einen merge -delete:

Vorsicht: Wenn mehr als eine Änderung in das Verzeichnis gemacht wurde In dieser Version können diese Änderungen ebenfalls rückgängig gemacht werden. Verwenden Sie den Befehl cleartool lshistory, um festzustellen, welche anderen Änderungen an dieser Verzeichnisversion vorgenommen wurden.

  1. Ermitteln Sie die Version, in der das Element rmnamed war.
  2. Verwenden Sie cleartool merge -delete, um die Änderungen zu entfernen, die in dieser Version des Verzeichnisses angewendet wurden.

    Zum Beispiel:

    cleartool merge -to . -delete -version \main\17 
    
  3. Wenn das einzige in dieser Version vorgenommene Änderung die Entfernung des gewünschten Elements ist, soll die Änderung automatisch (siehe etwa Vorsicht) vorgenommen werden.

0

zu den früheren Kommentare zu schreiben, würde ich, dass anstelle von „Entfernen“ Elemente von Clear vorschlagen, sie einfach rmname. Auf diese Weise werden die Dateien nicht wirklich entfernt, sondern ausgeblendet. Sie können den Befehl rmname erneut verwenden, um die Dateien in der Zukunft abzurufen (sichtbar zu machen).

+1

Der 'ct rm' Befehl ist eine Abkürzung für' ct rmname'. Wenn die Operation, die die Datei gelöscht hat, "ct rmelem" gewesen ist, wäre eine Wiederherstellung mit dem beschriebenen Mechanismus nicht möglich. Benutze 'ct rmelem' nur unter extremer Nötigung. –

Verwandte Themen