4 votes

Utilisation de libsvn pour obtenir la dernière révision d'un arbre

J'utilise donc libsvn sous Windows dans une application C++. J'ai plusieurs arbres svn avec lesquels j'utilise l'api. Je suppose que toute l'initialisation et la configuration sont correctes puisque toutes les autres opérations fonctionnent comme prévu.

J'utilise svn_client_log4 (j'ai également essayé svn_client_log avec exactement les mêmes résultats) et généralement, lorsque mon callback est appelé, j'obtiens les informations correctes. Cependant, mon problème est que, de temps en temps, le numéro de révision que je reçois est -1 au lieu du numéro complet. Ce qui est étrange, c'est que cela ne se produit que sur l'un des arbres que j'interroge, et toujours le même.

Ce n'est pas très cohérent, ça arrive généralement une fois par jour et c'est très difficile à déboguer parce que chaque fois que j'essaie de passer par le code, ça ne se produit généralement pas. Maintenant, je suppose que -1 est utilisé comme révision principale et techniquement, ce n'est peut-être pas faux, mais je cherche le nombre réel.

J'ai vu plusieurs façons différentes de récupérer la dernière révision avec l'api, je vais donc les essayer, mais je trouve toujours étrange que cela ne se produise que parfois. Peut-être que quelqu'un l'a déjà expérimenté ou sait ce qui pourrait clocher ?

3voto

Foo Bah Points 11566

Vous devez vérifier le message d'erreur de l'appel svn_client_log. Le type de retour contient des informations sur l'erreur (il y a un champ char* appelé message ).

Je soupçonne que vous sollicitez le serveur, ce qui entraînerait des problèmes sporadiques qui n'apparaîtraient pas lors du débogage (beaucoup plus lent).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X