9
votes

Comment accélérer la résolution automatique de la perforce?

J'aimerais savoir comment accélérer la résolution automatique de la perforce lors de l'intégration (fusion de la vôtre et de leur si aucun conflit n'existe).

prend actuellement des heures pour ~ 5000 fichiers lors de l'utilisation d'un serveur proxy, même si le serveur proxy a les fichiers préparé.

Aussi l'interface P4V ne vous donne aucun indice concernant les progrès de la tâche, vous ne savez pas si cela se terminera dans une seconde ou l'année suivante.


2 commentaires

"Résolution automatique (pas de fusion)" - L'algorithme le plus simple possible, alors pourquoi est-ce si lent ?! Je pense que le problème est que la perforce fait tout sur le réseau, il fait donc 5000 demandes de séquence ou quelque chose de stupide.


"Aussi, l'interface P4V ne vous donne aucun indice concernant les progrès de la tâche, vous ne savez pas si cela se terminera dans une seconde ou l'année suivante." Absurdité. Mon dialogue de fusion montre clairement que c'est 100% complet et fait depuis la dernière heure.


4 Réponses :


1
votes

Je suppose que vous pourriez faire la résolution de la ligne de commande, ce qui pourrait vous donner une idée de ce que cela progresse toujours et ne vous empêcherait pas d'autres travaux en P4V.


0 commentaires

0
votes

Si vous savez à l'avance, il sera à coup sûr être une résolution à sens unique, vous pourriez peut-être essayer de forcer l'acceptation de la version "LOIS" ou "VOTRE". Voir "Aide P4 Résoudre" à partir de la ligne de commande, en particulier les options "-AT" et "-AY".

Je ne sais pas à coup sûr si cela donnera des avantages de performance ou non, mais il est suffisamment facile de l'essayer (et de faire des analyses d'analyse comparative).


0 commentaires

2
votes

5000 fichiers n'est pas très nombreux à résoudre, pour un serveur modérément puissant.

Vos fichiers sont-ils binaires de taille significative? Si vos fichiers 5000 sont des fichiers de 5000, Autoresolve les contrôlera sur votre disque dur local pour comparer contre la somme de contrôle sur le serveur (pas le proxy, qui ne fait que relayer les informations ou les fichiers à vous), ce qui peut vous ralentir.

Si vous savez à l'avance que vous essayez une résolution à sens unique (mangez le vôtre sur votre disque dur ou mangez le leur sur le serveur), vous pouvez Utilisez les options" Accepter les vôtres "ou" Acceptez les choix des leurs "sur Autoresolve et ignorer l'opération de checksum. À partir de la ligne de commande, ce serait "P4 Résolve" avec l'option "-AY" ou "-At", respectivement.

Vous pouvez également contacter votre administrateur de Perforce DB et faire enregistrer les actions du serveur. Peut-être que des actions sont exécutées lorsque vous effectuez votre intégration et votre résolution qui détiennent des verrous de fichier, vous faisant tourner et attendre que les serrures soient libérées. Voir la référence pour ' P4 Monitor show -a '.

Par exemple, dans notre bureau, il est commun le lundi matin pour tout le monde au bureau d'intégrer jusqu'à leurs branches privées et à résoudre.


2 commentaires

À la checksum peu de gigaoctets de données à chaque fois n'est pas rapide de toute façon. Y at-il un moyen de faire de la perforce n'utiliser que l'heure de modification des fichiers? Dans 99,999% des cas, les fichiers ne sont pas modifiés sans modifier leur date / heure.


Perforce n'a pas de moyen facile de le faire. Si vous ne voulez pas détecter des modifications et utilisez simplement des heures de fichier de fichier pour déterminer si vous devez les autorropores, vous devrez script ou programmer quelque chose pour obtenir la notion de la base de données de perforce du moment où un fichier a été soumis par rapport à la durée de modification du fichier. sur votre disque dur. La valeur Modtime de votre client Workspace peut également modifier le modTime des fichiers synchronisés, alors soyez prudent si vous allez cet itinéraire.



2
votes

J'ai aussi un problème similaire à travailler avec un proxy de l'autre côté du globe. J'ai exécuté quelques expériences et le problème ne semble pas être affecté par la taille du fichier ou la méthode de la résolution (acceptation-la-les, etc.) au moins pour les fichiers plus petits.

Je suppose qu'il existe des coûts ronds par fichier car le temps total de la résolution est assez constant, que je casse la commande dans des commandes de résolution individuelles par fichier, par lot les par groupes de fichiers ou de la résolution complète. Changer la liste. Dans mon cas, la surcharge est d'environ 1 seconde par fichier pour> 10k fichiers.

Je travaille actuellement autour de la question en vous connectant à une VM Co-localisée avec le serveur distant et en effectuant la résolution de là. Vous pouvez ensuite soumettre du VM, puis synchroniser normalement. Étant donné que j'ai besoin d'abord d'exécuter des tests localement avant de soumettre, j'ente des fichiers sur la machine virtuelle, puis je les désinstalle sur ma machine locale. Ce n'est pas terriblement rapide non plus mais semble mieux.

Donc, pas une solution pour le problème, mais une solution de contournement viable dans mon cas qui sauve des heures.


0 commentaires