8
votes

Perforce: déplacer des modifications désunissables dans un autre flux

Y a-t-il un bon moyen de faire progresser les modifications désunissables dans un flux différent avant de les soumettre (équivalent de git Stash , Git Checkout AutresBranch , Git Stash pop )?

J'ai actuellement les fichiers vérifiés localement (non exclusivement) et édité. J'ai essayé de les étaler et essayez ensuite de les libérer dans le flux cible, mais je reçois un "fichier (s) non dans la vue client". Lorsque j'iméliore la Changeelist (étalé ou non), les fichiers ont tous des chemins incluant le flux d'origine.

Mon flux cible est celui que je viens de créer, parenté le flux d'origine. J'utilise P4V. La version de Perforce Visual Composants que j'ai installée est 123.57.9578, et lorsque j'exécute P4 de la ligne de commande, il est indiqué "Server 2012.2 / 551823". Je peux ajouter plus d'informations si nécessaire.


0 commentaires

4 Réponses :


1
votes

Je crois que la technique de l'étagère / non nécessite le serveur 2013.1, pas le serveur 2012.2.2.2. Vous devez le confirmer avec le support technique de perforce.


2 commentaires

Merci d'avoir répondu. Malheureusement, il semble que je dois attendre la semaine prochaine avant de pouvoir le confirmer, comme notre "roi perforce" est actuellement à - devine quoi - une conférence de perforce: P


Les rayonnages fonctionnent sur les anciennes versions de perforce. Cependant, vous ne pouvez affiner que sur le même chemin, qui inclut la racine de la branche, vous ne pouvez donc pas défaire dans une autre branche.



6
votes

Vous pouvez utiliser le commande P4 non fondue pour remapper les fichiers étalées dans Un changeliste à un autre flux à l'aide de l'option -s. Ex: xxx

Je ne sais pas si cela n'est disponible que dans une certaine version ou plus. Cependant, nous n'avons pas pu trouver un moyen de le faire via P4V.


0 commentaires

2
votes

Si vous êtes une raison plus confortable à l'aide de P4V que la ligne de commande, la solution AZ2TONEZ donnée peut être effectuée avec l'interface graphique, du moins en P4V 2014.2.

  1. suspendez votre contact et assurez-vous que vous n'avez pas d'autres fichiers extraites dans l'espace de travail.
  2. Dans l'onglet 'Streams', faites glisser l'icône de l'espace de travail du flux en cours dans le flux que vous souhaitez déplacer les modifications vers et obtenir les dernières modifications.
  3. invergez les fichiers dans l'onglet "En attente". Sous Options, sélectionnez "Carte non hélingue" et sélectionnez le flux que vous souhaitez déplacer la modification de et appuyez sur "non fondue".
  4. résoudre les fichiers à l'aide de la source.
  5. Soumettez vos modifications et voilà! Vos changements devraient maintenant être dans l'autre flux.

1 commentaires

Cela changera l'espace de travail vers la source une lors de la soumission des fichiers non fondu. Mais il préserve les fichiers étagères non engagés et ont engagé la liste de modifications au flux cible. Vous devez obtenir la dernière révision dans l'espace de travail de la zone cible.



4
votes

Les autres réponses ici sont correctes, mais elles ne vous avertissent pas que vous ne pouvez pas simplement vous arrêter de n'importe quel flux et non fondue sur n'importe quel flux sans rapport. En particulier, l'affiche originale a posé des questions sur le message d'erreur "Fichier (s) non dans la vue client" qui est le message d'erreur que P4V affiche lorsque vous n'avez pas sélectionné le mappage approprié.

Voici l'astuce pour trouver le mappage approprié: votre flux impropre doit avoir une relation directe parent / enfant avec le flux suspendu et vous devez sélectionner la spécification de flux décrivant cette relation dans les "fichiers non fondues de la carte ... "Une partie de la boîte de dialogue. Cela signifie que cela peut prendre plusieurs sautes pour obtenir du flux escarpé d'origine au flux cible.

Voici un exemple concret: disons que vous avez des fichiers étalées dans dev-1 que vous souhaitez passer à dev-2 . Ces deux flux de devis sont tous deux des enfants directs de principal . Vous ne pouvez pas désigné directement les fichiers dev-1 directement dans dev-2 , vous devez d'abord non fondu et temporairement rejouer dans principal , parce que les spécifications de flux de développement décrivent leur relation en termes de principal et non.

Donc, vous non hondérez les fichiers dev-1 s dans Main avec "Fichiers non fondues à l'aide du flux dev-1 " parce que cette spécification décrit la relation étant traversée. Ensuite, suspendez les fichiers dans principal , puis changez votre espace de travail vers dev-2 . Maintenant, vous pouvez défermer la version principale des fichiers étagères, avec "Fichiers non fondues à l'aide du flux dev-2 ", car cette spécification décrit la relation directe de Main à dev-2 .

Avec plusieurs sauts, vous pouvez accéder à tout autre flux connecté de votre réseau. Ceci n'est pas aussi simple que git cachette et git cache pop , mais rappelez-vous que GIT suppose que les noms de fichiers ne changent pas entre les branches Git, tandis que Perforce permet à chaque hop d'être arbitrairement. Modifiez la cartographie des fichiers et des dossiers.


1 commentaires

Merci d'avoir répondu. Je ne peux pas vraiment commenter comme je me suis déplacé et n'utilisez plus de perforce, mais je voulais juste dire que Git gains renommé et déplacé des fichiers très bien dans mon expérience dans des cas comme celui-ci. Bien sûr, Perforce a ses propres forces (vues partielles en particulier), mais cela ne semblait pas être l'un d'entre eux!