2010-01-27 16 views
14

Tengo un archivo en mi repositorio de Clearcase. Lo revisé y lo modifiqué, y luego lo revisé de nuevo.¿Cómo puedo retrotraer un archivo registrado en Clearcase?

No he hecho nada como crear una línea de base, una base de datos o entregar en mi transmisión/vista.

Lamento haber realizado los cambios en este archivo - Debería haber deshecho el pago, en retrospectiva.

¿Cómo puedo deshacer las modificaciones? (O deshacer, revertir, o cualquiera que sea la nomenclatura correcta)

Respuesta

20

What is described byskwllsp se puede hacer en un dynamic view mediante el uso de extended pathnames

cd m:/myDynamicView/MyVob/path/to/file 
cleartool lsvtree myFile 
cleartool checkout -c "cancel co" myFile 
copy [email protected]@/main/xx myFile 
cleartool checkin -nc myFile 

con xx siendo el número de versión que desea restaurar.


Pero en caso de que haya realizado múltiples confirmaciones, incluyendo algunos que desea cancelar, ClearCase le permite cancelar parte de las confirmaciones anteriores a través Subtractive Merge
Ver IBM "to remove contributions of some versions" (y merge man page)

Puede eliminar todos los cambios de un rango de versiones a la vez. Por ejemplo, el siguiente comando elimina las revisiones a las versiones de 14 a 16 en la rama principal:

  • en el sistema UNIX o Linux:
cleartool merge -graphical -to opt.c -delete -version /main/14 /main/16 
  • en el sistema Windows :
cleartool merge -graphical -to opt.c -delete -version \main\14 \main\16 

También puede eliminar los cambios de una versión a la vez. Por ejemplo, los siguientes comandos eliminan solo los cambios en la versión 14 de la versión de opt.c desprotegido la vista actual:

  • en el sistema UNIX o Linux:
cleartool merge -graphical -to opt.c -delete -version /main/14 
  • En sistemas Windows:
cleartool merge -graphical -to opt.c -delete -version \main\14 

Como alternativa, en cualquiera de los ejemplos anteriores, puede omitir el argumento de la versión si utiliza la ruta extendida de la versión para el selector de versión del colaborador.


Por último, la única cosa a no hacer es un rmver.
Este comando destruye la información irremediablemente y esto rara vez es algo bueno.

+0

Cuando dices "destruye información irremediablemente", solo estás hablando de información relacionada con el último check-in (que de todos modos era incorrecta), ¿verdad? En ese caso, ¿por qué dices que rara vez es algo bueno? El check-in fue un error después de todo, entonces, ¿cuál es el daño al eliminar la existencia de esas versiones? Por favor comparta su conocimiento. –

+2

@ArvindhMani Estoy hablando de cualquier versión que usted 'rmver'. Y eso dejaría los hipervínculos colgando (o eliminándolos también), lo que puede comprometer la integridad de otros objetos (como una línea base completa de UCM). Si la última versión no tiene hipervínculo y no está referenciada por otro objeto, entonces sí, 'rmver' es una solución. – VonC

+2

@ArvindhMani El problema es que, si bien puede estar funcionando en su caso, todo lo que recordará es que "rmver' funciona" ... lo que dará lugar a un día en el que 'rmver' se utilizará descuidadamente, y lo hará mas daño. Es por eso que prefiero limitar su uso. – VonC

1

Abra el historial de versiones para este archivo, luego abra en su editor una versión adecuada del archivo desde el árbol de versiones, revise el archivo una vez más, reemplace su con el contenido de la versión correcta anterior e ingrese. No olvide comparar la versión anterior y la última versión.

+1

¿Es esto lo mejor que CC puede hacer? Oy. (Soy nuevo en CC, he usado svn exclusivamente durante los últimos 5 años) – JXG

+0

No estoy seguro de que sea el mejor, pero da un resultado correcto :) –

+2

Sé que es uno antiguo, pero estoy de acuerdo con JXG (yo también han estado usando SVN durante los últimos 6 años y CVS durante años antes de eso) ... ¿es lo mejor que CC puede hacer? Supongamos que tiene que retroceder un cambio y se ven afectados unos 30 archivos impares en muchos directorios. ¿Por qué no tendría un comando de tipo "revertir los cambios de este registro"? – Jon

3

¡Clearcase puede hacer mucho mejor que simplemente crear una nueva versión en la que deshacer el cambio! Abra el historial de versiones en su archivo, encuentre la versión que haya registrado por error y destrúyalo (seleccione la versión para destruir y encuentre el comando apropiado en el menú Versiones). Esto es lo que rmver también, si desea usar la línea de comando. Como dijo VonC, esto destruye irremediablemente tu error. No veo una desventaja en eso.

+4

@Kathy: no está viendo una desventaja, pero esa es una muy * muy * mala solución. El único que nunca harás. Aunque es posible que funcione en este caso, es mejor evitar que sus usuarios ** realicen alguna vez **. Nunca. Porque funciona aquí significa que un día lo usarán nuevamente en una situación en la que romperá todo tipo de cosas. En serio: no hagas eso. – VonC

+0

FWIW, en mi situación personal, no tengo permisos para eliminar archivos de esta manera. – JXG

Cuestiones relacionadas