2016-07-01 5 views
1

Un utilisateur a vérifié les nouveaux fichiers sur la mauvaise branche. Je voudrais les déplacer de la manière la plus efficace possible. Ma première pensée est de retirer l'élément de la branche et de demander à l'utilisateur de revérifier les fichiers sur la branche appropriée. Mais j'espérais qu'il y avait un moyen de changer les pointeurs?Existe-t-il un moyen de déplacer un fichier d'une branche à une autre dans ClearCase?

/VOB/DIRECTORY/[email protected]@/main/1.00/1 to /VOB/DIRECTORY/[email protected]@/main/2.00/1 

Répondre

0

Chaque fois qu'il ya beaucoup de fichiers à la caisse et se déplacer, clearfsimport est une option viable.

Il vous suffit de définir une vue dans la branche de destination et d'importer les fichiers trouvés dans la vue source (et incorrecte).
Voir « How can I use ClearCase to “add to source control …” recursively? »

Ce sera la caisse, ajouter, modifier ou supprimer des fichiers dans la vue de destination afin de refléter ceux de la source (ici la source est une vue ClearCase, mais il pourrait en fait être un dossier, Vue ClearCase ou non, où sont les fichiers).

Ce sera suffisant pour « revérifier dans les fichiers sur la branche appropriée », mais cela ne supprime pas les versions de la mauvaise branche bien, et je vous conseille contre en utilisant cleartool rmver (même si I used that here).
Peut-être un subtractive merge is better.

0

Si vous savez où ils se trouvent et où vous les voulez, vous pouvez: 1) Fusionner le répertoire et les fichiers. 2) Utilisez cleartool ln dans une vue de la branche de destination pour lier dans les fichiers, puis fusionnez les fichiers individuellement. Si vous utilisez clearfsimport, et que vous ne purgez pas les fichiers ajoutés au mauvais endroit, vous pouvez vous préparer pour le «fun» de la route causé par les «jumeaux maléfiques».

Personnellement, puisque vous savez les fichiers et répertoires qui a obtenu ajoutés, où, quand et par qui, vous pourriez faire quelque chose comme ça (les lignes de commande sont hors-la-haut de ma tête:

  1. Obtenir la liste des fichiers à copier/fusion

    cleartool find -type d -element "created_by(baduser) && created_since(25-Jul-2016) && !created_since(26-Jul-2016)" -print > dirlist.txt cleartool find -type fl -element "created_by(baduser) && created_since(25-Jul-2016) && !created_since(26-Jul-2016)" -print > filelist.txt

  2. Tirez les répertoires sur en fusionnant les répertoires parents tout en CD'd/set dans une vue en utilisant le chemin de destination. Ne connaissant pas le système d'exploitation impliqué Je ne peux pas dire de quelle façon vous d besoin d'analyser cela. Si vous utilisez perl, vous pouvez saisir le décalage de la dernière instance du séparateur de répertoire et l'utiliser dans substr pour obtenir le chemin du répertoire parent. Dans la fenêtre invite de commande, vous pouvez faire quelque chose comme ceci:

    SET SRCDRIVE=D: for /f "delims==" %x in (dirlist.txt) do cleartool co -nc %~px & cleartool merge -to %~px %SRCDRIVE%~px for /f "delims==" %x in (dirlist.txt) do cleartool co -nc %~px & cleartool merge -to %~px\%~nx %SRCDRIVE%~px\%~nx

Oui, vous pouvez faire tout cela dans un seul script, et faire mieux la vérification des erreurs et ne pas essayer 40x pour vérifier la même répertoire.

0

Vous pouvez également les fusionner avec la branche 2.0 (en utilisant une vue en sélectionnant la branche 2.0).Pour identifier les éléments impliqués, vous pouvez exécuter un « cleartool trouver » commande quelque chose comme ceci:

% cd /vobs/myvob
% cleartool find -all -version 'brtype(1.0) && created_by(user_x)' -print

Le « created_since (date-heure) » requête pourrait également être utile dans la requête composé. Une fois que vous êtes convaincu que vous avez le bon jeu de versions, vous pouvez utiliser '-exec' à la place de '-print' pour effectuer la fusion. Il pourrait ressembler à ceci:

% cleartool find -all -version 'brtype(1.0) && created_by(user_x) && created_since(29-Jun)' -exec 'cleartool merge -to $CLEARCASE_PN -version $CLEARCASE_ID_STR'

Si vous êtes satisfait des résultats, vérifiez tout Il vous suffit de décider si vous devez supprimer les versions sur la branche 1.0 (que vous pouvez. faire avec une autre commande 'cleartool find ... -exec ...').