2011-01-08 20 views
12

Tengo una vista de ClearCase con una carpeta y dos archivos. Reviso la carpeta, elimino un archivo y reviso la carpeta nuevamente. Me queda una carpeta y un archivo. ¿Hay alguna forma de recuperar mi archivo? Estoy usando el paquete de herramientas estándar de Windows, que incluye cleartool.Deshacer eliminar archivo en ClearCase

+0

[Cómo restaurar un elemento que se ha cambiado de nombre] (http://www-01.ibm.com/support/docview.wss?uid=swg21149206) – KyleMit

Respuesta

21

Sí, es posible recuperar el archivo. Esta es una característica importante de ClearCase (y un salvavidas en ocasiones).

Digamos que su directorio es /vobs/somevob/somedir. La versión del directorio con dos archivos era /main/3; la versión con un archivo era por lo tanto /main/4. El archivo caído es /vobs/somevob/somedir/crucial. Suponiendo ct es un alias para cleartool, a continuación, hacer:

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

La primera línea significa que no tengo que escribir la ruta al directorio en los otros tres comandos; de lo contrario, es opcional. La segunda línea verifica el directorio para que pueda ser editado. La última línea se comprueba en el directorio modificado. La tercera línea es donde se produce la magia ...

la línea de ct ln [email protected]@/main/3/crucial . identifica el archivo crucial que fue visto en la versión /main/3 del directorio . y lo relaciona con el directorio actual (la versión desprotegido del directorio). La versión de archivo que ve será la elegida por su cspec, pero el archivo correcto se encuentra en la vista (suponiendo que de hecho recoja /vobs/somevob/[email protected]@/main/5 con su cspec).

(Tenga en cuenta que no se limita a hacer el enlace una versión atrás, puede restablecer un archivo después de 10 años y 20 versiones si es necesario. Aunque puede vincular un archivo a dos directorios a la vez, eso es altamente unrecommended, el uso de un enlace simbólico en lugar usted podría recuperar un archivo borrado en un directorio diferente de su última ubicación conocida)

+1

Usted es, literalmente, un salvavidas, gracias! – Jono

+0

Acabo de usar esto y funciona extrañamente. ¡Gracias! – ahoka

8

para añadir a la respuesta de Jonathan:

  • que puede hacer cada paso que se describe en.. de forma gráfica, a través del árbol de versiones del directorio padre: fusionar desde versión que todavía hace referencia a su archivo a la versión de la versión actual (que ya no hace referencia a su archivo).
    Realice una combinación "gráficamente" (seleccione la opción "combinación gráfica")
    Puede seleccionar el archivo que desea restaurar.

  • también puede eliminar el efecto de su último registro (aún para el directorio padre) a través de un merge -delete:

Precaución: Si se hace más de un cambio en el directorio de esta versión, esos cambios podrían revertirse también. Use el comando cleartool lshistory para determinar qué otros cambios se realizaron en esa versión de directorio.

  1. Determine la versión en la que el elemento era rmnamed.
  2. Utilice cleartool merge -delete para eliminar los cambios aplicados en esa versión del directorio.

    Por ejemplo:

    cleartool merge -to . -delete -version \main\17 
    
  3. Si el único cambio realizado en esta versión fue la retirada del elemento deseado, el cambio debería ser automáticamente hecho (véase acerca de precaución).

0

Para añadir a los comentarios anteriores, sugeriría que en vez de "eliminar" elementos de ClearCase, simplemente rmname ellos. De esta forma, no se eliminan los archivos, sino que se ocultan. Puede usar el comando rmname nuevamente para recuperar (mostrar) los archivos en el futuro.

+1

El comando 'ct rm' es la abreviatura de' ct rmname'. Si la operación que eliminó el archivo había sido 'ct rmelem', entonces la recuperación no sería posible usando el mecanismo descrito. No use 'ct rmelem' excepto bajo coacción extrema. –