Question

je composais une branche dans Perforce de notre base de code. Voici la spécification de la branche:

//depot/code/main/... //depot/code/branch/...

Ensuite, dans la branche, disons que je déplace le fichier ramifié a.txt -> b.txt en utilisant

p4 integrate //depot/code/branch/a.txt //depot/code/branch/b.txt
p4 delete //depot/code/branch/a.txt

Maintenant, disons que certains changements sont apportés à A.TXT dans le principal que je voudrais avoir intégré dans b.txt dans la branche

Lorsque je tente d'intégrer en utilisant la spécification de la branche d'origine, il ne reflète pas les modifications apportées à A.TXT dans le principal sur b.txt - est-il possible d'avoir les modifications apportées dans la principale place du spectacle dans le fichier renommé ?

La spécification de la branche est assez grande (des centaines de changements) et tout à fait quelques fichiers ont été renommés dans la branche, donc je voudrais avoir un moyen automatisé de le faire. Permettez-moi de savoir si je peux préciser quoi que ce soit ici - il serait utile d'avoir un tableau blanc;)

Merci! Sam

Était-ce utile?

La solution

Perforce 2009.1 a renomme propres, ce qui pourrait aider à cela - probablement, et en tout cas que pour l'avenir renomme. Voir Perforce 2009.1 notes de version , en particulier:

#177023 * **
    The new 'p4 move' command allows for better support for
    renaming files.  A file must be already opened for 'edit'
    or 'add' in order to be moved.  Moved files can be synced,
    resolved and diffed against the repository just like files
    opened for 'edit'.  See 'p4 help move' for more info.

Vous pouvez ajouter le changement de nom dans la spécification de la branche. Ensuite, au moins les intégrations seront automatique -. Même si la spécification de la succursale sera encore plus longue et plus compliquée

Autres conseils

Vous pouvez ajouter « -3 » interrupteur à utiliser un nouveau moteur pour l'intégration, qui permet de détecter les fichiers cibles qui ont été précédemment déplacés avec « déplacer p4 » et se met automatiquement « recibler » à suivre ceux qui se déplacent des opérations.

p4 integrate -3 //depot/code/main/... //depot/code/branch/...

intégrera vos changements dans //depot/code/main/a.txt à //depot/code/branch/b.txt.

Ceci est la fonction « UNDOC » dans la version actuelle 2010,2, mais le comportement par défaut dans le 2011.1 à venir.

La seule façon que je connaisse avoir Perforce pour vous gérer cela est d'utiliser la spécification de branche pour cartographier l'ancien fichier dans l'original au nouveau fichier dans la branche. Peut-être que cela a changé avec la nouvelle commande de mouvement dans les dernières versions Perforce, mais pas que je l'ai connu.

script pourrait la création d'une spécification de branche pour gérer des fichiers déplacés à l'aide de la sortie de p4 fstat.

utiliser ce qui suit comme point de départ:

ROOT_PATH="//depot/books/..."
FIRST_CHANGE=91212

p4 fstat -Os -T headChange -F "headAction=move/* headChange>$FIRST_CHANGE" $ROOT_PATH|grep headChange | sort -u|while read DUMMY1 DUMMY2 change; do p4 describe $change; done|grep "moved from"|sed 's/\.\.\./\t/g; s/\#[0-9]*//g; s/ moved from//g;'

Ceci trouvera tous les fichiers // dépôt / livres / ... qui ont été déplacés dans le changement 91212 ou plus tard

Pour nous, la sortie de ce ressemble

// dépôt / livres / bar.txt //depot/books/foo.txt

Utilisez-le pour l'élaboration d'une spécification de branche.

Je ne crois pas. Comme il n'y a pas p4 rename directe, vous devez intégrer et supprimer - une fois que vous avez fait cela, intègre d'une autre branche ne vont plus au bon fichier. Au moins ça a été mon expérience.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top