2010-01-27 8 views
14

J'ai un fichier dans mon dépôt Clearcase. Je l'ai vérifié et l'ai modifié, puis je l'ai vérifié.Comment restaurer un fichier archivé dans Clearcase?

Je n'ai rien fait comme faire un baseline, ou rebaser, ou livrer dans mon stream/view.

Je regrette d'avoir apporté les modifications à ce fichier - j'aurais dû annuler la vérification, rétrospectivement.

Comment annuler les modifications? (Ou annuler, ou revenir, ou quelle que soit la bonne nomenclature est.)

Répondre

20

What is described byskwllsp peut être fait dans un dynamic view par l'utilisation 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 

avec xx étant le numéro de version que vous souhaitez restaurer.


Mais si vous avez plusieurs checkins, dont certains que vous voulez annuler, ClearCase vous permet d'annuler une partie des checkins précédentes par Subtractive Merge
Voir IBM "to remove contributions of some versions" (et merge man page)

Vous pouvez supprimer tous les changements d'une série de versions à la fois. Par exemple, la commande suivante supprime les révisions aux versions 14 à 16 sur la branche principale:

  • Sur le système UNIX ou Linux:
cleartool merge -graphical -to opt.c -delete -version /main/14 /main/16 
  • Sur le système Windows :
cleartool merge -graphical -to opt.c -delete -version \main\14 \main\16 

Vous pouvez également supprimer les modifications d'une version à la fois. Par exemple, les commandes suivantes suppriment uniquement les modifications dans la version 14 de la version d'opt.c vérifié la vue actuelle:

  • Sur le système UNIX ou Linux:
cleartool merge -graphical -to opt.c -delete -version /main/14 
  • Sur les systèmes Windows:
cleartool merge -graphical -to opt.c -delete -version \main\14 

Alternativement, dans l'un des exemples ci-dessus, vous pouvez omettre l'argument -version si vous utilisez le chemin de version étendu pour le contributor-version-selector.


Enfin, la seule chose à pas faire est un rmver.
Cette commande détruit irrémédiablement l'information et c'est rarement une bonne chose.

+0

Quand vous dites "détruit irrémédiablement l'information", vous parlez seulement des informations liées à la dernière arrivée (qui était de toute façon incorrecte), n'est-ce pas? Dans ce cas, pourquoi dites-vous que c'est rarement une bonne chose? L'enregistrement était une erreur après tout, alors quel est le mal à supprimer l'existence de ces versions? S'il vous plaît partagez vos connaissances. –

+2

@ArvindhMani Je parle de n'importe quelle version que vous auriez 'rmver'. Et cela laisserait des hyperliens pendants (ou les supprimerait aussi), ce qui pourrait compromettre l'intégrité d'autres objets (comme une ligne de base UCM complète). Si la dernière version n'a pas de lien hypertexte et n'est pas référencée par un autre objet, alors oui, 'rmver' est une solution. – VonC

+2

@ArvindhMani Le problème est que, même si cela fonctionne dans votre cas, tout ce dont vous vous souvenez est que "' rmver' fonctionne "... ce qui conduira à un jour où' rmver' sera utilisé avec négligence, et fera l'affaire plus de dégats. C'est pourquoi je préfère limiter son utilisation. – VonC

1

Ouvrez l'historique des versions pour ce fichier, puis ouvrez dans votre éditeur une version appropriée du fichier à partir de l'arborescence des versions, retirez le fichier une fois de plus, remplacez son avec le contenu de la version correcte précédente et l'enregistrement. N'oubliez pas de comparer la version précédente et la dernière version.

+1

Est-ce le meilleur que CC peut faire? Oy. (Je suis nouveau à CC, j'ai utilisé svn exclusivement pour les 5 dernières années.) – JXG

+0

Je ne suis pas sûr que c'est le meilleur mais il donne un résultat correct :) –

+2

Je sais que c'est un ancien, mais je suis d'accord avec JXG (Moi aussi utilise SVN depuis 6 ans et CVS depuis des années) ... est ce que CC peut faire de mieux? Supposons que vous deviez annuler une modification et que quelque 30 fichiers dans plusieurs répertoires soient affectés. Pourquoi n'aurait-il pas une commande de type "annuler les modifications de cette vérification"? – Jon

3

Clearcase peut faire beaucoup mieux que de simplement faire une nouvelle version où vous annulez le changement! Ouvrez l'historique des versions sur votre fichier, trouvez la version que vous avez enregistrée par erreur et détruisez-la (sélectionnez la version à détruire et trouvez la commande appropriée dans le menu Versions). C'est ce que rmver fait aussi, si vous voulez utiliser la ligne de commande. Comme VonC a dit que votre ceci détruit votre erreur irrémédiablement. Je ne vois pas un inconvénient à cela.

+4

@Kathy: vous ne voyez pas un inconvénient, mais c'est une très mauvaise solution. Le seul que tu ne feras jamais. Même si cela peut fonctionner dans ce cas, il est préférable d'empêcher vos utilisateurs de ** faire un rmver **. Déjà. Parce que cela fonctionne ici signifie un jour qu'ils vont l'utiliser à nouveau dans une situation où il va casser toutes sortes de choses. Sérieusement: ne fais pas ça. – VonC

+0

FWIW, dans ma situation personnelle, je n'ai pas les permissions pour supprimer des fichiers de cette manière. – JXG

Questions connexes