web-dev-qa-db-fra.com

Comment supprimer une liste de modifications en attente dans une autre branche avant Perforce 2013?

À l'aide de Perforce Server 2012.2/538478 , comment puis-je décompresser des fichiers du tronc vers une autre branche?

En essayant de le faire, je reçois:

//filename... (not mapped to your workspace view)

Dans Perforce 2013, j'ai trouvé cette commande unshelve vraiment utile:

p4 unshelve -s <changlist#-with-shelved-files> -S //depot/streamname

Mais avec la version que j'utilise actuellement, j'ai trouvé rien pour m'aider à résoudre ce problème.

Aucune suggestion?

11
Yair Nevet

Malheureusement, sans mise à niveau vers 2013.1 et pour obtenir l'opération unshelve améliorée, vous devrez copier manuellement les données en:

  • unshelving dans le coffre, en notant les fichiers spécifiques qui ont changé
  • p4 edit les fichiers de votre autre flux/branche
  • copiez manuellement les fichiers non shélvés dans l'autre flux/branche (vous ne pouvez pas utiliser p4 copy ou p4 integrate car ils ne sont pas validés sur le tronc
  • tester et engager sur l'autre branche
5
gaige

Vous regardez la bonne commande, mais peut-être pas les bons paramètres. Voici comment je l'utilise:

p4 unshelve -s 77655 -b MY_BRANCH_SPEC

qui ouvre la liste des modifications 77655, en utilisant la spécification de branche spécifiée pour mapper les fichiers sur la nouvelle branche. 

De manière critique, vous devez vous assurer que le mappage de branche spécifié et le mappage de votre espace de travail actuel contiennent à la fois les fichiers source et cible, sinon vous obtiendrez l'erreur "fichier non mappé".

7
ninesided

Les autres réponses n'ont pas fonctionné pour moi, voici ce que j'ai fait avec forforce 2014: 

  1. Modifiez votre lieu de travail actuel de manière à ce que // dépôt/produit/B1/... et // dépôt/produit/B2/... y soient mappés (pas l'un à l'autre, ni à votre espace de travail comme les mappages normaux). 
  2. Dans P4V, allez dans "Mappages de branches" (menu Affichage-> Mappages de branches) 
  3. Ctrl + N pour démarrer un nouveau mappage (ou cliquez avec le bouton droit de la souris sur la liste et choisissez "Nouveau mappage de branche ...") 
  4. Sous "Correspondance de branche", indiquez un nom tel que B1_TO_B2. 
  5. Remplacez les mappages sous View pour être par exemple 

    //depot/product/B1/...       //depot/product/B2/...  
    
  6. D'accord 
  7. Créez une liste de modifications vide dans laquelle seront placés vos fichiers non décompressés (sinon, ils iront dans la liste de modifications "par défaut"). Le numéro de cette nouvelle liste de modifications sera <TARGET_CL> dans la commande ci-dessous. 
  8. Dans la ligne de commande, exécutez 

    p4 unshelve -s <SOURCE_CL> -c <TARGET_CL> -b B1_to_B2
    
    • Si cela ne fonctionne pas, assurez-vous que le bon espace de travail est défini dans .p4config
  9. Il ne vous reste plus qu'à résoudre les fichiers de <TARGET_CL> 
5
yair

Après avoir passé quelque temps à chercher et à lire, je ne suis pas tombé sur un exemple concret pour débloquer une liste de modifications stockée dans une autre branche. Enfin, j'ai mis en place un exemple concret.

Assuming you have a shelved changelist 324426 in Branch B1 and want to unshelve it to Branch B2.

J'ai pu créer une spécification de branche, puis décompresser une liste de modifications dans une autre branche. Voici ce que j'ai fait:

1. Create a text file named branchSpec.txt, with the content below: set you own Branch name and View.

Branch:   B1_to_B2

View:
//depot/dev/main/B1/...       //depot/release/B2/...

2. p4 branch -i < branchSpec.txt
3. p4 unshelve -s 324426 -b B1_to_B2

Viola, les fichiers mis en attente dans la liste des modifications 324426 dans B1 ne sont plus archivés en B2 et prêts à être soumis.

3
yantaq

Vous pouvez utiliser P4 unshelve pour cela, mais vous devez créer un mappage de branche, à savoir A_to_B.

1] p4 unshelve -s CL_NUM -b A_to_B

2] p4 add (files opened for add)

3] p4 resolve

Remarque: n'oubliez pas l'étape 2. P4 ne les ouvrez pas par défaut dans votre branche de destination. Vous pouvez confirmer cela avec "p4 opened" 

0
yadu_sam

Une façon de contourner cela est dans P4 2012:

  1. Copiez et écrasez manuellement la branche avec le tronc
  2. Cliquez avec le bouton droit sur la branche dans le client P4, puis cliquez sur "Réconcilier le travail hors connexion ...".

Cela vous permettra de sélectionner les fichiers nouveaux et modifiés et de les ajouter à l'ensemble de modifications.

0
Vedran

Je pense que ce dont vous avez vraiment besoin est "p4 move -f". C'est expliqué en détail ici: p4 move -f: A quoi ça sert

0
Mihail Mihaylov